我在一个软件RAID 1中使用两个硬盘在Ubuntu 10.04.4 LTS(Linux xxxx 2.6.32-67-server#134-Ubuntu SMP Wed Sep 24 18:55:00 UTC 2014 x86_64 GNU / Linux)上运行服务器。
我反复有这样的问题,即系统在大量时间(> 1小时)内完全没有响应,从而有效地closures了服务器。 raid让麻烦的磁盘保存在arrays中,有时候会开始重build。 我有三个单独的机器(相同的设置)相同的问题。
有一个简单的方法来防止这种停机时间? 失败的磁盘本身并没有打扰我(他们都在不停地跑了几年),但是由此产生的停机时间却困扰着我。 我的印象是RAID 1即使在一个硬盘出现故障时也能保持系统正常运行。 如果RAID控制器只是从磁盘arrays中popup磁盘,系统就会继续工作,那就太好了。 更好的办法是,如果试图在后台解决问题,而不是冻结。 只要系统保持可操作性,一些性能下降也不是问题。
以下是来自这种事件的示例日志条目:
Nov 14 14:00:10 xxxx kernel: [2137088.775542] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 Nov 14 14:00:10 xxxx kernel: [2137088.788591] ata2.00: irq_stat 0x40000001 Nov 14 14:00:10 xxxx kernel: [2137088.801879] ata2.00: failed command: READ DMA EXT Nov 14 14:00:10 xxxx kernel: [2137088.814988] ata2.00: cmd 25/00:80:d1:b9:89/00:00:16:00:00/e0 tag 0 dma 65536 in Nov 14 14:00:10 xxxx kernel: [2137088.814991] res 51/40:00:d3:b9:89/00:00:16:00:00/e0 Emask 0x9 (media error) Nov 14 14:00:10 xxxx kernel: [2137088.867197] ata2.00: status: { DRDY ERR } Nov 14 14:00:10 xxxx kernel: [2137088.880205] ata2.00: error: { UNC } Nov 14 14:00:10 xxxx kernel: [2137088.906336] ata2.00: configured for UDMA/133 Nov 14 14:00:10 xxxx kernel: [2137088.906345] sd 1:0:0:0: [sdb] Unhandled sense code Nov 14 14:00:10 xxxx kernel: [2137088.906347] sd 1:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE Nov 14 14:00:10 xxxx kernel: [2137088.906351] sd 1:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor] Nov 14 14:00:10 xxxx kernel: [2137088.906356] Descriptor sense data with sense descriptors (in hex): Nov 14 14:00:10 xxxx kernel: [2137088.906358] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 Nov 14 14:00:10 xxxx kernel: [2137088.906367] 16 89 b9 d3 Nov 14 14:00:10 xxxx kernel: [2137088.906371] sd 1:0:0:0: [sdb] Add. Sense: Unrecovered read error - auto reallocate failed Nov 14 14:00:10 xxxx kernel: [2137088.906376] sd 1:0:0:0: [sdb] CDB: Read(10): 28 00 16 89 b9 d1 00 00 80 00 Nov 14 14:00:10 xxxx kernel: [2137088.906385] end_request: I/O error, dev sdb, sector 378124755 Nov 14 14:00:10 xxxx kernel: [2137088.919172] ata2: EH complete
这是RAID设置(猫/ proc / mdstat):
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath] md2 : active raid1 sda3[0] sdb3[1] 726266432 blocks [2/2] [UU] md1 : active raid1 sdb2[1] sda2[0] 2104448 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 4200896 blocks [2/2] [UU] unused devices: <none>
提前感谢!
您正在使用软件RAID。 您没有“RAID控制器”来“从arrays中踢磁盘”。 相反,你有内核pipe理ATA控制器,当磁盘不响应(因为他们有媒体错误,在这种情况下)内核等待。 这种情况并不总是产生明显的症状,但肯定可以。
简单的事情是使用硬件RAID控制器。 即使如此,古怪的边缘案例总是有可能产生明显的症状,但这种可能性要小得多。 即使面对媒体错误,真正的硬件RAID控制器也能保持机器的响应。