Red Hat Training

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

4.6. LVM デバイススキャンをフィルターで制御

起動時に、vgscan コマンドは、LVM ラベルを調査するために、 システム上のブロックデバイスをスキャンします。そしてどれが物理ボリュームかを判定し、 メタデータを読んで、ボリュームグループの一覧を構成します。物理ボリュームの名前は システム内の各ノードのキャッシュファイル /etc/lvm/.cache に保存されています。 それ以後のコマンドがそのファイルを読み込んで再スキャンを防止することになります。
lvm.conf 設定ファイル内にフィルターを設定することにより、 LVM がスキャンするデバイスを制御することができます。このフィルターは簡単な正規表現の 連続で構成されており、/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|.*|" ]
以下のフィルターは一番目の IDE ドライブ上にパーティション8 のみを追加して、 そして他の全てのブロックデバイスを削除します:
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
For more information on the lvm.conf file, see 付録B LVM 設定ファイル and the lvm.conf(5) man page.