如何创建具有近端和远端布局选项的 mdadm RAID10?
维基百科表明这是可行的。
“近”和“远”选项可以一起使用......
mdadm 的手册页没有提及它。
我只能找到这个帖子有人的 mdadm --detail 显示了使用近端和远端布局选项的 RAID10。和另一个帖子有人问是否应该说“near=2,far=1”。不幸的是,两者都没有显示它们的数组是如何创建的。
我在创建数组时尝试使用语法。但每次都会出现这个错误:
mdadm: layout for raid10 must be 'nNN', 'oNN', or 'fNN' where NN is a number, not n2f2(or whatever syntax I tried)
我可以使用近或远创建数组,没有任何问题。
sudo mdadm --verbose --create /dev/md127 --level=10 --layout="What should go here to create an array using near=2 & far=2 layouts?" --chunks=512 --raid-devices=5 /dev/sd[b-f]1
我缺少什么?维基百科已经过时了吗?这不再可能了吗?
Linux Mint 17.3 肉桂 64 位; 5x 3.0TB Seagate NAS HDD(仅用于 RAID); 8GB 内存。
答案1
从mdadm-3.4源代码来看,它不接受任何其他输入。至于near=2,far=1
输出,这是默认值,没有任何更改,但=1
不再打印值,因为这本质上意味着“没有额外的副本”(计数从 1 开始)。如果两者都near
相等far
,1
则打印NO REDUNDANCY
。然而,您实际上也无法创建这样的对象,内核会直接拒绝它并显示错误消息。
我设法做到这一点的唯一方法是hexedit
直接获取元数据。这是带有副本的 4x 128MiB 循环设备的 RAID-10 near=2, far=2
。
# mdadm --detail /dev/md42
/dev/md42:
Version : 1.2
Creation Time : Sun May 1 01:47:59 2016
Raid Level : raid10
Array Size : 129024 (126.00 MiB 132.12 MB)
Used Dev Size : 129024 (126.00 MiB 132.12 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun May 1 01:48:00 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2, far=2
Chunk Size : 512K
Name : EIS:42 (local to host EIS)
UUID : 7fa3ba1e:dd0f2db9:aaf3977f:0e6dc2cb
Events : 17
Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 7 2 2 active sync /dev/loop2
3 7 3 3 active sync /dev/loop3
它实际上似乎也有效。 (警告,破坏性测试方法)
# yes > /dev/md42
# echo Hello World. > /dev/md42
# grep 'Hello World' -a -b --only-matching /dev/loop[0-3]
/dev/loop0:1048576:Hello World
/dev/loop1:1048576:Hello World
/dev/loop2:67108864:Hello World
/dev/loop3:67108864:Hello World
我将此字符串写入 RAID 的开头,在两个设备上,它位于 1MiB 位置(恰好是元数据偏移),这应该是近副本,另一个位于 64MiB 位置(一半磁盘容量),我猜是远程副本...
即便如此,我也不建议编辑任何 RAID 元数据。如果你这样做,没有其他人在测试它......或者也许我们都缺少一些明显的东西,谁知道呢。
更换此类 RAID 中的磁盘似乎可行。然而,增长却并非如此。
# mdadm --grow /dev/md42 --raid-devices=8 --add /dev/loop[4567]
mdadm: Cannot reshape RAID10 in far-mode
我认为缺点太多了。坚持使用标准 RAID 布局,除非您有充分的理由不这样做。