LVM2、LV生成時にPVを指定するかどうかを確認する方法

LVM2、LV生成時にPVを指定するかどうかを確認する方法

LVを作成するときに、LV(データ)が特定の物理デバイスにのみ書き込まれるように指定できます(lvmが適切であると判断された場所にデータを配置することを許可するのではなく)。

例えば。

lvcreate -L 100G -n lvOnSdb1 theVG /dev/sdb1

lvcreateのマニュアルページから:

新しいLVで使用するPVを制御するには、コマンドラインの最後に1つ以上のPVを位置引数として指定します。 lvcreate は、指定された PV でのみ物理拡張領域を割り当てます。

しかし、それが完了した後でどうやって知ることができますか? LVは特定のPVに制限されていますか?

編集この質問は私の誤解によって引き起こされました。 LVサイズ/サイズ調整が必要だったので/LVが使用されたので、プールのさまざまな部分で実際のメディアを使用するLVMだと思いました。 。したがって、後で別途指示しない限り、現在リストされているPVのみを使用してください。 (この問題を明確にしてくれたVojtech Trefnyに感謝します!)

答え1

これを使用して、そのlvdisplay -mセグメントが割り当てられているLVセグメントとPVを表示できます。

  --- Logical volume ---
  LV Name                root
...
 Segments               1
...
  --- Segments ---
  Logical extents 0 to 17916:
    Type                linear
    Physical volume     /dev/mapper/luks-dfcda59b-1322-4705-bb04-e09a72b2d678
    Physical extents    210601 to 228517

私の論理ボリュームにはセグメントが1つだけあり、暗号化されたPVに配置されていることがわかりますroot(複数のPVにまたがる複数のLVを持つ物理ボリュームが1つだけあり、ここにはより多くのセグメントが表示されます)。

2つのセグメントを持つ論理ボリュームの例(1つのPVにのみ適しています):

# lvdisplay -m test/lvol0
  --- Logical volume ---
  LV Name                lvol0
...
  Segments               2
...
  --- Segments ---
  Logical extents 0 to 123:
    Type                linear
    Physical volume     /dev/sdb
    Physical extents    0 to 123
   
  Logical extents 124 to 162:
    Type                linear
    Physical volume     /dev/sdc
    Physical extents    0 to 38

編集:LVがリストされているPVに手動で配置されているかどうかはわかりません。lvcreateオプションのパラメータは、生成されたLVではなく「生成」操作にのみ影響します。指定されたPVを使用して生成されたLVとLVの間に違いはありません。特定のPVに割り当てられたLVのLVMによって作成されます。同様のコマンドを使用する将来の操作には影響しませんlvresize(PVを指定することもできますlvresize)。

どの lvm コマンドが実行されたかを確認するには、ロギングとログファイルを設定できます。lvm.conf

関連情報