使用Samsung 840 Pro SSD构build的软件raid1arrays出现各种问题

我正在给ServerFault带来一个折磨我6个多月的问题。 我有一台CentOS 6(64位)服务器,配有一个带有2个Samsung 840 Pro SSD(512GB)的md软件raid-1arrays。

问题:

  • 严重的写入速度问题:
 root [〜]#time dd if = arch.tar.gz of = test4 bs = 2M oflag = sync
 146 + 1的logging
 146 + 1logging
 307191761字节(307 MB)复制,23.6788秒,13.0 MB /秒

实际0m23.680s
用户0m0.000s
 sys 0m0.932s
设备:rrqm / s wrqm / sr / sw / s rsec / s wsec / s avgrq-sz avgqu -sz await svctm%util
 sda 0.00 1589.50 0.00 54.00 0.00 13148.00 243.48 0.60 11.17 0.46 2.50
 sdb 0.00 1627.50 0.00 16.50 0.00 9524.00 577.21 144.25 1439.33 60.61 100.00
 md1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
 md2 0.00 0.00 0.00 1602.00 0.00 12816.00 8.00 0.00 0.00 0.00 0.00
 md0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

它保持这种方式,直到它实际上将文件写入设备(从swap / cache / memory中)。

问题是arrays中的第二个SSD有svctm,比第二个SSD要大100倍。

  • 出于某种原因,arrays的两个成员之间的磨损是不同的
 root [〜]#smartctl --attributes / dev / sda |  grep -i穿
 177 Wear_Leveling_Count 0x0013 094%094 000预失败总是 -  180
根[〜]#smartctl --attributes / dev / sdb |  grep -i穿
 177 Wear_Leveling_Count 0x0013 070%070 000预失败始终 -  1005

第一块固态硬盘的磨损为6%,而第二块固态硬盘的磨损为30%!

这就好像arrays中的第二个SSD的工作至less比第一个迭代的iostat(重启后的平均值)所certificate的第一个硬5倍:

设备:rrqm / s wrqm / sr / sw / s rsec / s wsec / s avgrq-sz avgqu -sz await svctm%util
 sda 10.44 51.06 790.39 125.41 8803.98 1633.11 11.40 0.33 0.37 0.06 5.64
 sdb 9.53 58.35 322.37 118.11 4835.59 1633.11 14.69 0.33 0.76 0.29 12.97
 md1 0.00 0.00 1.88 1.33 15.07 10.68 8.00 0.00 0.00 0.00 0.00
 md2 0.00 0.00 1109.02 173.12 10881.59 1620.39 9.75 0.00 0.00 0.00 0.00
 md0 0.00 0.00 0.41 0.01 3.10 0.02 7.42 0.00 0.00 0.00 0.00
  • 我已经尝试过了:我已经将固件更新到DXM05B0Q(在此更新之后报告了840Ps的显着改进)。 我已经在dmesg寻找“硬重置链接”来检查电缆/背板的问题,但没有。 我已经检查了alignment,我相信他们是正确alignment的(1MB边界,下面列出)我已经检查了/ proc / mdstat和arrays是Optimal(下面第二个列表)。
 根[〜]#fdisk -ul / dev / sda
磁盘/ dev / sda:512.1 GB,512110190592字节
 255个磁头,63个扇区/磁道,62260个磁道,总计1000215216个扇区
单位= 1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/ 512字节
 I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x00026d59

设备引导启动结束块Id系统
 / dev / sda1 2048 4196351 2097152 fd Linux raid autodetect
分区1不结束于柱面边界。
 / dev / sda2 * 4196352 4605951 204800 fd Linux raid autodetect
分区2不结束于柱面边界。
 / dev / sda3 4605952 814106623 404750336 fd Linux raid autodetect


 根[〜]#fdisk -ul / dev / sdb
磁盘/ dev / sdb:512.1 GB,512110190592个字节
 255个磁头,63个扇区/磁道,62260个磁道,总计1000215216个扇区
单位= 1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/ 512字节
 I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x0003dede

设备引导启动结束块Id系统
 / dev / sdb1 2048 4196351 2097152 fd Linux raid autodetect
分区1不结束于柱面边界。
 / dev / sdb2 * 4196352 4605951 204800 fd Linux raid autodetect
分区2不结束于柱面边界。
 / dev / sdb3 4605952 814106623 404750336 fd Linux raid autodetect
 的/ proc / mdstat
 root#cat / proc / mdstat
个性:[raid1]
 md0:激活raid1 sdb2 [1] sda2 [0]
 204736块超级1.0 [2/2] [UU]

 md2:激活raid1 sdb3 [1] sda3 [0]
 404750144块超级1.0 [2/2] [UU]

 md1:活动raid1 sdb1 [1] sda1 [0]
 2096064块超级1.1 [2/2] [UU]

未使用的设备: 
  • 使用hdparm运行读取testing
根[〜]#hdparm -t / dev / sda
 / dev / sda上:
 定时缓冲磁盘读取:3.00秒内的664 MB = 221.33 MB /秒

根[〜]#hdparm -t / dev / sdb
的/ dev / sdb的:
 定时缓冲磁盘读取:3.01秒中的288 MB = 95.77 MB /秒
  • 但看看如果我添加 – 直接会发生什么
根[〜]#hdparm --direct -t / dev / sda

 / dev / sda上:
 计时O_DIRECT磁盘读取:3.01秒中的788 MB = 262.08 MB /秒
根[〜]#hdparm --direct -t / dev / sdb

的/ dev / sdb的:
 定时O_DIRECT磁盘读取:3.02秒中的534 MB = 176.90 MB /秒

两个testing都增加了,但是/ dev / sdb增加了两倍,而/ dev / sda增加了20%。 我只是不知道该怎么做。

  • 正如Wagner先生所build议的,我这次用dd做了另一个读取testing,它证实了hdparmtesting:
 root [/ home2]#dd if = / dev / sda of = / dev / null bs = 1G count = 10
 10 + 0的logging
 10 + 0logging
 10737418240字节(11 GB)复制,38.0855 s,282 MB / s

 root [/ home2]#dd if = / dev / sdb of = / dev / null bs = 1G count = 10
 10 + 0的logging
 10 + 0logging
 10737418240字节(11 GB)复制,115.24秒,93.2 MB /秒

所以sda比sdb快3倍。 或者也许sdb也做什么除了sda做什么之外。 有什么方法可以查明sdb是否比sda做得更多?

  • UPDATE

同样,正如瓦格纳先生所build议的那样,我换了2块固态硬盘。 正如他认为会发生的那样,问题从sdb移到了sda。 所以我想我会把RMA之一的SSD。 我想知道笼子是否有问题。

这个数组有什么问题? 请帮忙!

那么最后我想我至less发现了很大一部分问题:arrays中的一个SSD运行起来非常糟糕。 我已经阅读了关于三星840 Pro SSD可靠mdraid性能的报告,但是这个驱动器即使在自己使用时function也很差。 目前我已经通过使用hdparm对SSD进行安全擦除来修复它。 性能没有什么可夸耀的,但它比以前更接近体面:读取大约210-220MB / s,写入大约130-150MB / s(与之前的5-10MB / s相比)。 请注意这是SATA2,最高速度约为240MB / s。

最后,我要感谢瓦格纳先生的build议,交换驱动器certificate照亮。

总之,当你遇到SSD的性能问题时,请考虑安全的擦除! 请注意,安全擦除与格式化不一样。