LVM2;如何判断创建LV时是否指定了PV

LVM2;如何判断创建LV时是否指定了PV

创建 LV 时,您可以指定该 LV(的数据)只能写入特定的物理设备(而不是让 lvm 将数据放在它认为合适的任何位置)。

例如。

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

来自 lvcreate 手册页:

要控制新 LV 将使用哪些 PV,请在命令行末尾指定一个或多个 PV 作为位置参数。 lvcreate 将仅从指定的 PV 分配物理盘区。

但是事后你如何判断是否已经完成了即。 LV 是否仅限于特定 PV?

编辑这个问题是由于我的误解而产生的 - 我认为它是 LVM 使用来自其池各个部分的实际媒体,因为它是必需的/因为 LV 被使用,而它在它的时候将其预先分配给 LV调整大小/调整大小。因此,它只会使用当前列出的 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

您可以看到我的root逻辑卷只有一个段,并放置在我的加密 PV 上(我只有一个物理卷,多个 LV 跨越多个 PV,您会在此处看到更多段)。

具有两个段的逻辑卷示例(仅适合一个 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 没有影响——使用创建的 LV 之间没有区别指定的 PV 和恰好由 LVM 在特定 PV 上分配的 LV。这不会影响未来使用类似命令的操作lvresize(您也可以为 指定 PV lvresize)。

如果您希望能够检查运行了哪些lvm命令,您可以设置日志记录和日志文件lvm.conf

相关内容