Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.5. フィルターを使用した LVM デバイススキャンの制御

起動時に、vgscan コマンドを実行して、システム上のブロックデバイスをスキャンし、LVM ラベルを探して物理ボリュームを特定し、メタデータを読み取ってボリュームグループのリストを構築します。物理ボリュームの名前は、システム内の各ノードの LVM キャッシュファイル /etc/lvm/cache/.cache に保存されます。それ以後のコマンドはそのファイルを読み込み、再スキャンを防止することになります。
lvm.conf 設定ファイル内にフィルターを設定することにより、LVM がスキャンするデバイスを制御できます。lvm.conf ファイル内のフィルターは、/dev ディレクトリーのデバイス名に適用される一連の単純な正規表現で設定され、見つかった各ブロックデバイスを受け入れるか拒否するかを決定します。
以下の例は、LVM がスキャンするデバイスを制御するフィルターの使用を示しています。正規表現は完全なパス名に対して自由に照合されるため、この例の一部は必ずしも推奨される方法ではないことに注意してください。たとえば、a/loop/a/.*loop.*/ と同等で、/dev/solooperation/lvol1 と一致します。
以下のフィルターは、検出されたすべてのデバイスを追加します。これは、設定ファイル内で設定されているフィルターはないため、デフォルトの動作になります。
filter = [ "a/.*/" ]
以下のフィルターは、ドライブにメディアが入っていない場合の遅延を回避するために cdrom デバイスを削除します。
filter = [ "r|/dev/cdrom|" ]
以下のフィルターはすべてのループを追加して、その他のすべてのブロックデバイスを削除します。
filter = [ "a/loop.*/", "r/.*/" ]
以下のフィルターはすべてのループと IDE を追加して、その他のすべてのブロックデバイスを削除します。
filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]
以下のフィルターは 1 番目の IDE ドライブにパーティション 8 のみを追加して、他のすべてのブロックデバイスを削除します。
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
注記
lvmetad デーモンが実行しているときに、pvscan --cache device コマンドを実行すると、/etc/lvm/lvm.conf ファイルの filter = 設定が適用されません。デバイスをフィルタリングするには、global_filter = 設定を使用する必要があります。グローバルフィルターに失敗したデバイスは LVM では開かれず、スキャンもされません。VM で LVM を使用しているときに、VM 内のデバイスのコンテンツを物理ホストでスキャンする必要がない場合などは、グローバルフィルターの使用が必要になる場合があります。
lvm.confファイルの詳細は、付録B LVM 設定ファイル および lvm.conf (5)の man ページを参照してください。