S / W RAID6和4k扇区格式 – 慢速重新同步

我正在寻找为什么Linux软件RAID-6重新同步比我预期的要慢得多的原因。

我已经使用了6个WDC WD40EFRX硬盘(4k物理扇区)来创buildRAID-6arrays。

$ sudo mdadm -v -C /dev/md6 -l6 -e1 -n6 /dev/sd[af] 

当重新同步过程开始时,我发现它意想不到地慢。

 Personalities : [raid1] [raid6] [raid5] [raid4] md6 : active raid6 sdf[5] sde[4] sdd[3] sdc[2] sdb[1] sda[0] 15627548672 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU] [========>............] resync = 44.6% (1743624744/3906887168) finish=1056.3min speed=34129K/sec 

CPU负载远不是100%:

 $ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14499 root 20 0 0 0 0 S 24.3 0.0 173:26.29 md6_raid6 16789 root 20 0 0 0 0 D 21.6 0.0 162:51.05 md6_resync 

硬盘的操作强度也不算太高:

 $ sudo iostat -dkx sd{a,b,c,d,e,f} 5 Linux 3.2.0-4-amd64 (mrs) 05/24/2014 _x86_64_ (4 CPU) Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 2700.46 950.79 3361.95 42.59 24260.48 3974.70 16.59 4.40 1.29 1.25 4.44 0.09 31.80 sdd 2779.61 963.48 3281.19 29.14 24254.07 3971.56 17.05 4.50 1.36 1.31 6.54 0.10 32.88 sde 2819.95 964.17 3240.85 29.26 24254.00 3974.75 17.26 4.63 1.42 1.37 6.43 0.10 33.73 sdc 2714.32 949.45 3346.47 43.88 24254.02 3974.64 16.65 4.41 1.30 1.26 4.38 0.09 31.96 sdb 2856.48 1913.76 3204.31 71.79 24254.02 7945.13 19.66 4.87 1.49 1.38 6.03 0.12 38.66 sdf 2988.96 1922.34 3071.82 63.27 24253.94 7944.90 20.54 5.34 1.70 1.57 8.06 0.13 41.73 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 4000.40 1311.20 4308.20 70.60 33234.40 5528.80 17.70 6.39 1.46 1.42 3.75 0.11 46.88 sdd 4093.80 1367.80 4213.80 38.60 33185.60 5565.60 18.23 6.02 1.42 1.38 5.10 0.11 46.88 sde 4189.20 1353.80 4125.80 46.20 33394.40 5617.60 18.70 5.98 1.45 1.41 4.78 0.11 46.80 sdc 3970.60 1327.20 4338.20 54.00 33235.20 5525.60 17.65 5.55 1.26 1.23 3.73 0.10 43.20 sdb 4156.60 2670.40 4158.00 91.60 33322.40 11055.20 20.89 6.50 1.54 1.46 5.18 0.13 53.20 sdf 4370.20 2670.20 3937.80 93.40 33205.60 11080.80 21.97 7.51 1.86 1.73 7.43 0.15 60.40 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 3808.80 1286.20 4317.00 70.20 32426.40 5427.20 17.26 6.03 1.38 1.36 2.61 0.10 42.40 sdd 3930.80 1289.20 4193.20 43.00 32465.60 5390.40 17.87 6.68 1.58 1.55 4.76 0.11 47.68 sde 4006.20 1300.20 4123.40 49.60 32394.40 5324.80 18.08 6.46 1.55 1.46 8.84 0.11 46.24 sdc 3713.20 1295.40 4412.40 60.80 32442.40 5427.20 16.93 5.65 1.26 1.23 3.33 0.09 42.00 sdb 3664.20 2595.20 4462.00 117.40 32444.00 10854.40 18.91 6.22 1.36 1.26 5.02 0.10 47.84 sdf 4050.80 2620.20 4075.00 92.60 32458.40 10858.40 20.79 8.04 1.93 1.77 8.75 0.14 59.28 

阅读testing显示硬件performance良好:

 $ sudo hdparm -T -t /dev/md6 /dev/md6: Timing cached reads: 12684 MB in 2.00 seconds = 6349.46 MB/sec Timing buffered disk reads: 1490 MB in 3.00 seconds = 496.21 MB/sec $ sudo hdparm -T -t /dev/sda /dev/sda: Timing cached reads: 12582 MB in 2.00 seconds = 6298.96 MB/sec Timing buffered disk reads: 438 MB in 3.01 seconds = 145.72 MB/sec 

所以恕我直言,唯一需要担心的是块到块的alignment。 我想问任何人如何确定RAID块到块alignment是否正确。

我可以确定有关我的RAID-6arrays布局的以下信息:

 $ sudo mdadm --examine /dev/sda /dev/sda: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 17f8705f:e4cf176a:514d669c:04ae747f Name : mrs:6 (local to host mrs) Creation Time : Fri May 23 22:46:54 2014 Raid Level : raid6 Raid Devices : 6 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB) Array Size : 15627548672 (14903.59 GiB 16002.61 GB) Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB) Data Offset : 262144 sectors Super Offset : 8 sectors State : active Device UUID : efb373eb:cd5cd27e:fee8f9cc:0e59ff15 Update Time : Sat May 24 09:04:04 2014 Checksum : 608b32d8 - correct Events : 6 Layout : left-symmetric Chunk Size : 512K Device Role : Active device 0 Array State : AAAAAA ('A' == active, '.' == missing) $ sudo mdadm --detail /dev/md6 /dev/md6: Version : 1.2 Creation Time : Fri May 23 22:46:54 2014 Raid Level : raid6 Array Size : 15627548672 (14903.59 GiB 16002.61 GB) Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB) Raid Devices : 6 Total Devices : 6 Persistence : Superblock is persistent Update Time : Sat May 24 09:04:04 2014 State : active, resyncing Active Devices : 6 Working Devices : 6 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Resync Status : 36% complete Name : mrs:6 (local to host mrs) UUID : 17f8705f:e4cf176a:514d669c:04ae747f Events : 6 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb 2 8 32 2 active sync /dev/sdc 3 8 48 3 active sync /dev/sdd 4 8 64 4 active sync /dev/sde 5 8 80 5 active sync /dev/sdf 

非常感谢!

用于重新同步的I / O带宽量可以通过/proc/sys/dev/raid/speed_limit_min/proc/sys/dev/raid/speed_limit_max