假设我有以下配置:
- 2 个 8GB 磁盘(
sdb
和sdc
) - 1 个 16GB 磁盘 (
sdd
) - 每个磁盘完全映射到 lvm pv
- 每个 pv 都添加到单个 vg(“mygroup”)
- 从“mygroup”(“myvolume”)创建 12GB 镜像 lv
数据布局的最终结果如下:
sdb
├─mygroup-myvolume_rmeta_1
│ └─mygroup-myvolume
└─mygroup-myvolume_rimage_1
└─mygroup-myvolume
sdc
└─mygroup-myvolume_rimage_0
└─mygroup-myvolume
sdd
├─mygroup-myvolume_rmeta_0
│ └─mygroup-myvolume
├─mygroup-myvolume_rimage_0
│ └─mygroup-myvolume
└─mygroup-myvolume_rimage_1
└─mygroup-myvolume
对于我来说,这种布局毫无意义。
具体来说,它似乎没有达到拥有镜像卷的目的*。例如,假设我丢失了sdd
。在这种情况下,我丢失了rimage_1
,因为它的一部分在sdd
。此外,我还丢失了rimage_0
,因为它的一部分也在sdd
。所以我想我的问题是,这种布局是否真的实现了镜像卷的目的?
* 我认为拥有(单个)镜像卷的目的是能够在丢失任何数据的情况下继续正常运行一磁盘。在这种情况下,如果我丢失了,我就会失去一切sdd
。如果我的观察有误,请纠正我。
这是我期望的布局:
rimage_1
并rmeta_1
分割在sdb
和之间sdc
rimage_0
并rmeta_0
完全包含在sdd
这样,如果我丢失了任何一磁盘,我仍然会保留数据以继续操作。
另一方面,一般建议不是以这种方式使用不同大小的磁盘?
以下是用于创建设置的具体命令:
pvcreate /dev/sd[bcd]
vgcreate mygroup /dev/sd[bcd]
lvcreate mygroup --name myvolume \
--mirrors 1 \
--regionsize 4M \
--size 12G
编辑:我再次尝试了此操作,但在执行时指定了 pv lvcreate
。似乎如果我执行了/dev/[dbc]
,则分布就是预期/期望的结果。但是,如果我执行了/dev/[bcd]
,则分布与未指定时相同(即意外/不期望的结果)。
答案1
看起来这是一个错误:https://bugzilla.redhat.com/show_bug.cgi?id=1518121
回答主要问题:不,给定的设置不能保护卷免受任何一个磁盘的丢失。
为了不让问题悬而未决,我将其标记为答案。