lui*_*son 6 software-raid lvm thinpool
我们正在将安装从带有 LVM 的 mdadm raid 迁移到纯 LVM,因此我们会将原始 raid 分区作为独立分区添加到 LVM 组\n类似:
\nlvcreate -L 240G -n thin pve /dev/nvme0n1p2\n Logical volume "thin" created.\n
Run Code Online (Sandbox Code Playgroud)\n然后我们在另一个磁盘/分区上添加一个镜像
\nlvconvert \xe2\x80\x93type raid1 \xe2\x80\x93mirrors 1 pve/thing /dev/nvme1n1p2\n Logical volume pve/thin successfully converted.\n
Run Code Online (Sandbox Code Playgroud)\n当我们为 LXC 使用精简池存储系统时,我们假设我们可以将其转换为精简池\nlvconvert --type Thin-pool pve/thin\n将 pve/thin 转换为精简池。
\n一切似乎都有效,但问题是我们不确定最后一次转换是否会影响前一次转换。原因是当我们用 lvs 列出时我们得到:
\n thin pve twi-a-tz-- 240,00g 0,00 10,42\n
Run Code Online (Sandbox Code Playgroud)\n属性 1 a 7 显示这是一个 Thinpool,但没有提及 raid1 或同步中的值。
\n虽然 lvs -a -o +devices 确实显示它被镜像到两个分区上:
\n[thin_tdata] pve rwi-aor--- 240,00g 24,17 thin_tdata_rimage_0(0),thin_tdata_rimage_1(0)\n [thin_tdata_rimage_0] pve iwi-aor--- 240,00g /dev/nvme0n1p2(67074) \n [thin_tdata_rimage_1] pve Iwi-aor--- 240,00g /dev/nvme1n1p2(67075) \n [thin_tdata_rmeta_0] pve ewi-aor--- 4,00m /dev/nvme0n1p2(128514) \n [thin_tdata_rmeta_1] pve ewi-aor--- 4,00m /dev/nvme1n1p2(67074) \n [thin_tmeta] pve ewi-ao---- 120,00m /dev/sdd2(0) \n
Run Code Online (Sandbox Code Playgroud)\n因此,现在的疑问是,在精简池“后面”,raid 是否仍在工作,或者只是已分配但现在未使用。创建精简池并将其转换为 --raid1 类型会返回错误。
\n我们还没有找到任何有关此场景的文档,并且在这种情况有效的情况下,我们完全不知道如何监视 lvm-raid 状态,因为我们计划通过返回类型为“r”的 lvs 来监视驱动器状态。
\n是的,可以有一个带有 RAID 1 的精简池,并且您的设置几乎是正确的。问题在于元数据不是 RAID 1,而是线性的,因此在丢失一个驱动器后,您的精简池就会损坏。您需要为元数据创建一个单独的 RAID 1 LV,然后--poolmetadata <vg>/<metadata lv>
在使用 将 RAID LV 转换为精简池时使用lvconvert
。
有关更多详细信息,请参阅lvmthin 联机帮助页部分使用 raid 容忍设备故障。
手册页中的示例:
# lvcreate --type raid1 -m 1 -n pool0 -L 10G vg /dev/sdA /dev/sdB
# lvcreate --type raid1 -m 1 -n pool0meta -L 1G vg /dev/sdC /dev/sdD
# lvconvert --type thin-pool --poolmetadata vg/pool0meta vg/pool0
Run Code Online (Sandbox Code Playgroud)
使用此设置的输出lvs -a
:
$ sudo lvs raid_test -a
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
[lvol0_pmspare] raid_test ewi------- 12,00m
pool0 raid_test twi-a-tz-- 100,00m 0,00 10,29
[pool0_tdata] raid_test rwi-aor--- 100,00m 100,00
[pool0_tdata_rimage_0] raid_test iwi-aor--- 100,00m
[pool0_tdata_rimage_1] raid_test iwi-aor--- 100,00m
[pool0_tdata_rmeta_0] raid_test ewi-aor--- 4,00m
[pool0_tdata_rmeta_1] raid_test ewi-aor--- 4,00m
[pool0_tmeta] raid_test ewi-aor--- 12,00m 100,00
[pool0_tmeta_rimage_0] raid_test iwi-aor--- 12,00m
[pool0_tmeta_rimage_1] raid_test iwi-aor--- 12,00m
[pool0_tmeta_rmeta_0] raid_test ewi-aor--- 4,00m
[pool0_tmeta_rmeta_1] raid_test ewi-aor--- 4,00m
Run Code Online (Sandbox Code Playgroud)
属性输出的问题lvs
是,只有第一位用于指定 LV 的类型,看起来 LV(r)aid
和(t)hin pool
精简池都获胜,而您只能到达t
那里。