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 ページを参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。