我正在重build一个8驱动器的RAID6驱动器(使用'md'Linux软件RAID),并且已经注意到它似乎没有这么快,可能是因为其中一个驱动器被发送两次其他许多IOPS:
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 155.00 77252.00 0.00 77252 0 sdb 153.00 76736.00 0.00 76736 0 sdc 154.00 77248.00 0.00 77248 0 sde 154.00 77248.00 0.00 77248 0 sdf 164.00 77288.00 0.00 77288 0 sdd 154.00 77248.00 0.00 77248 0 sdg 287.00 83160.00 0.00 83160 0 sdh 146.00 0.00 74240.00 0 74240
(sdh正在重build,sdg正在获得比我预期更多的IOPS)。
(我用mdadm / dev / md1 –add / dev / sdh4添加replace驱动器,失败/删除了现有的驱动器)。
事情,(我认为)我已经消除:
所有驱动器具有相同的分区布局(使用sgdisk复制)。
sda-sdg是具有相同型号的相同驱动器(sdh是新的)。
我已经在所有驱动器上查看了readahead,块大小,multcount,并且无法发现sdp可能与其他驱动程序相比的任何差异。
在同一台机器上的不同的重build有相同的问题(sdg访问更多),所以我这次事先删除写意图位图,但没有帮助。
该主板(ASRock P67 Extreme6)具有奇怪的异构SATA规格,具有两个SATA3端口和六个SATA6端口(两个来自芯片组,四个来自板载Marvell SE9120接口)。 sdg也可能在eSATAsockets上共享的端口上,但声称是使用UDMA6,就像其他的一样,所以我看不出有什么效果。
任何思路为什么TD(IOPS)上的SDR是其他两倍?
驱动器是3岁的3TB希捷Barracudas(虽然我通常不会涉及驱动器品牌轶事,8驱动器之一失败,另外三个(但不是sdg)显示不好的迹象(不可恢复的错误,多重新分配的部门):这些都不是我使用过的最可靠的驱动器)。我很确定他们是无聊的PMR。
一旦RAID恢复,访问现在均匀分布在所有磁盘之间,每个驱动器的IOPS数量相似。 因此,如果链接速度是相关的,我会感到惊讶(虽然MD可能会做奇怪的“优化”,我想)。
在RAID完成恢复之前,我没有机会抓住'iostat x'的输出,但是从内存来看,sdg的利用率是100%,并且请求队列的大小很大(在100s),而其他有50-60%的利用率,并有一位数的请求队列大小。
我想我需要交换sdg和另一个驱动器,以完全消除是否是控制器/ md或驱动器。
这一次我正在重buildsdb:
Device: rrqm/s wrqm/sr/sw/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 13813.00 0.00 184.50 0.00 54.06 0.00 600.11 23.60 114.11 114.11 0.00 2.49 46.00 sdb 0.00 12350.50 0.00 97.50 0.00 48.62 1021.37 0.17 1.70 0.00 1.70 1.31 12.80 sdd 12350.00 0.00 98.00 0.00 48.62 0.00 1016.16 5.47 55.82 55.82 0.00 2.82 27.60 sdc 12350.00 0.00 98.00 0.00 48.62 0.00 1016.16 5.92 60.41 60.41 0.00 2.84 27.80 sde 12350.00 0.00 98.00 0.00 48.62 0.00 1016.16 6.11 62.39 62.39 0.00 3.02 29.60 sdf 12350.50 0.00 97.50 0.00 48.62 0.00 1021.37 14.56 149.33 149.33 0.00 3.92 38.20 sdg 12350.00 0.00 98.00 0.00 48.62 0.00 1016.16 7.18 73.31 73.31 0.00 3.16 31.00 sdh 12350.00 0.00 98.00 0.00 48.62 0.00 1016.16 5.27 53.80 53.80 0.00 2.88 28.20
正如你所看到的,sda比其他人获得更多的访问(我限制它,所以sda没有达到100%的利用率,但如果我不这样做)。 有趣的是,sda的“avgrq-sz”(平均请求大小)较低,这表明额外的访问量要小得多。 现在我只需要找出一个办法来搞清楚它们是什么!
我最初的猜测是, md已经确定了sdg一个问题,并试图从“更早”的数据中提取数据,以便它可以被replace。
但是,这不是如何工作,(一些硬件控制器可能会这样做 – 不确定)。
arrays中的许多驱动器会减慢重build( pdf ) – 从重build的angular度来看,arrays中更less的驱动器“更好”。
进一步的研究可能会导致一个可能的结论和一些后续问题:
从希捷驱动器的这篇评论看来,使用SMR( 密度更高的驱动器)进行重build的速度看起来exception地不一致,因为PMR更加一致。
我的初步结论是