michi.0x5d Asked: 2015-09-19 11:33:14 +0800 CST2015-09-19 11:33:14 +0800 CST 2015-09-19 11:33:14 +0800 CST md raid10:如何确保复制的数据存储在正确的位置? 772 创建经典镜像 RAID 时,通常会在不同类型的磁盘上定位数据副本。在这种情况下,您将混合使用不同系列和制造商的磁盘。如果整个系列出现故障,这会降低丢失数据的风险。 假设我想用两个制造商制造的四个磁盘构建一个基于 md 的 raid 10。如何确保将数据复制到不同类型的磁盘上? 我知道可以指定布局near和far(描述offset)。这些布局指向正确的方向,但我不确定 md 如何“排序”磁盘。这可能会导致在相同类型的磁盘上复制。 mdadm 2 个回答 Voted Best Answer Kassandry 2015-09-19T12:34:35+08:002015-09-19T12:34:35+08:00 如果您真的非常想保证将制造商 1 和制造商 2 的驱动器配对,您可能应该手动设置 mdadm raid 10。 以超级用户身份使用lshw -class disk,以验证每个磁盘的逻辑名称和供应商名称。 然后为您的 RAID 10 创建底层 RAID 1 设备: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1 然后将 RAID 1 设备组装成一个 RAID 0 设备。 mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md0 /dev/md1 哪个应该为您提供 RAID 10,您可以在其中知道哪些设备与哪些设备配对。 希望有帮助。=) Joren Love 2016-07-29T21:23:09+08:002016-07-29T21:23:09+08:00 我想您现在可能已经找到了解决此问题的方法,但是以下方法应该可以解决问题: mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda missing /dev/sdc missing 其中 sda 和 sdc 来自不同的制造商。然后添加缺少的磁盘: mdadm --add /dev/md0 /dev/sdb /dev/sdd 运行 mdadm --create 命令时,顺序似乎很重要,所以我假设,只要第一个和第三个磁盘(在 4 驱动器阵列中)是不同的制造商,你就会得到相同的效果,但你应该自己测试那个。
如果您真的非常想保证将制造商 1 和制造商 2 的驱动器配对,您可能应该手动设置 mdadm raid 10。
以超级用户身份使用
lshw -class disk
,以验证每个磁盘的逻辑名称和供应商名称。然后为您的 RAID 10 创建底层 RAID 1 设备:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
然后将 RAID 1 设备组装成一个 RAID 0 设备。
mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md0 /dev/md1
哪个应该为您提供 RAID 10,您可以在其中知道哪些设备与哪些设备配对。
希望有帮助。=)
我想您现在可能已经找到了解决此问题的方法,但是以下方法应该可以解决问题:
其中 sda 和 sdc 来自不同的制造商。然后添加缺少的磁盘:
运行 mdadm --create 命令时,顺序似乎很重要,所以我假设,只要第一个和第三个磁盘(在 4 驱动器阵列中)是不同的制造商,你就会得到相同的效果,但你应该自己测试那个。