创建 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
。