![RAID 和 SATA 控制器存在许多有趣的问题](https://linux22.com/image/1276806/RAID%20%E5%92%8C%20SATA%20%E6%8E%A7%E5%88%B6%E5%99%A8%E5%AD%98%E5%9C%A8%E8%AE%B8%E5%A4%9A%E6%9C%89%E8%B6%A3%E7%9A%84%E9%97%AE%E9%A2%98.png)
几个月前,我在 ebay 上买了一张二手 3ware 磁盘阵列卡,并在 RAID5 中设置了四个 1TB 的 caviar blacks。如果没有写入缓存,硬件磁盘阵列只能处理大约 5MB/s 的写入,而且我没有 UPS,因此保持写入缓存开启似乎不是一个好主意。因此,我从工作单位借了一个备用的 2TB 驱动器,将我的数据复制到该驱动器上,然后在全新安装的 Debian 6 上设置 mdadm 磁盘阵列。这运行良好*大约两周,然后我开始收到读取错误。mdadm 说两个驱动器发生故障。因此,我将其关闭,启动到 debian 安装程序并开始读取系统日志。
我首先看到的是这样的:
5 月 18 日 10:31:14 osiris 内核:[937288.579972] kswapd0:页面分配失败。顺序:5,模式:0x4020 5 月 18 日 10:31:14 osiris 内核:[937288.579978] Pid:47,通信:kswapd0 未受污染 2.6.32-5-686 #1 5月18日 10:31:14 osiris 内核:[937288.579981] 调用跟踪: 5月18日 10:31:14 osiris 内核:[937288.579994] [] ?__alloc_pages_nodemask+0x484/0x4d9 5月18日 10:31:14 osiris 内核:[937288.580000] [] ? __get_free_pages+0xc/0x17 5月18日 10:31:14 osiris 内核:[937288.580037] [] ? __kmalloc+0x30/0x128 5月18日 10:31:14 osiris 内核:[937288.580049] [] ? pskb_expand_head+0x4f/0x157 5月18日 10:31:14 osiris 内核:[937288.580059] [] ? __pskb_pull_tail+0x3f/0x1fb 5月18日 10:31:14 osiris 内核:[937288.580071] [] ? sock_wfree+0x17/0x4b 5月18日 10:31:14 osiris 内核:[937288.580084] [] ? dev_queue_xmit+0xe4/0x38e 5月18日 10:31:14 osiris 内核:[937288.580096] [] ?neigh_resolve_output+0x1df/0x227 5月18日 10:31:14 osiris 内核:[937288.580109] [] ?ip_finish_output2+0x187/0x1c2 5月18日 10:31:14 osiris 内核:[937288.580121] [] ?ip_local_out+0x15/0x17 5月18日 10:31:14 osiris 内核:[937288.580132] [] ?ip_queue_xmit+0x31d/0x378 5月18日 10:31:14 osiris 内核:[937288.580145] [] ?bictcp_cong_avoid+0x14/0x2c9 5月18日 10:31:14 osiris 内核:[937288.580157] [] ? tcp_write_xmit+0x3e7/0x874 5月18日 10:31:14 osiris 内核:[937288.580167] [] ? tcp_ack+0x1611/0x1802 5月18日 10:31:14 osiris 内核:[937288.580178] [] ? tcp_transmit_skb+0x595/0x5cc 5月18日 10:31:14 osiris 内核:[937288.580189] [] ? tcp_write_xmit+0x7a3/0x874 5月18日 10:31:14 osiris 内核:[937288.580200] [] ? tcp_ack+0x1611/0x1802 5月18日 10:31:14 osiris 内核:[937288.580210] [] ? tcp_established_options+0x1d/0x8b 5月18日 10:31:14 osiris 内核:[937288.580221] [] ?tcp_current_mss+0x38/0x53 5月18日 10:31:14 osiris 内核:[937288.580232] [] ? __tcp_push_pending_frames+0x1e/0x50 5月18日 10:31:14 osiris 内核:[937288.580243] [] ? tcp_data_snd_check+0x1b/0xd2 5月18日 10:31:14 osiris 内核:[937288.580254] [] ? tcp_rcv_established+0xd2/0x626 5月18日 10:31:14 osiris 内核:[937288.580266] [] ? tcp_v4_do_rcv+0x15f/0x2cf 5月18日 10:31:14 osiris 内核:[937288.580276] [] ? tcp_v4_rcv+0x3d2/0x602 5月18日 10:31:14 osiris 内核:[937288.580288] [] ?ip_local_deliver_finish+0x10c/0x18c 5月18日 10:31:14 osiris 内核:[937288.580299] [] ?ip_rcv_finish+0x2c4/0x2d8 5月18日 10:31:14 osiris 内核:[937288.580310] [] ? netif_receive_skb+0x3bb/0x3d6 5月18日 10:31:14 osiris 内核:[937288.580340] [] ? e1000_clean_jumbo_rx_irq+0x4f8/0x5bb [e1000] 5月18日 10:31:14 osiris 内核:[937288.580356] [] ? e1000_clean+0x29f/0x40d [e1000] 5月18日 10:31:14 osiris 内核:[937288.580370] [] ? e1000_clean_jumbo_rx_irq+0x579/0x5bb [e1000] 5月18日 10:31:14 osiris 内核:[937288.580382] [] ?net_rx_action+0x96/0x194 5月18日 10:31:14 osiris 内核:[937288.580395] [] ? __do_softirq+0xaa/0x156 5月18日 10:31:14 osiris 内核:[937288.580406] [] ?do_softirq+0x31/0x3c 5月18日 10:31:14 osiris 内核:[937288.580416] [] ?irq_exit+0x26/0x58 5月18日 10:31:14 osiris 内核:[937288.580429] [] ?do_IRQ+0x78/0x89 5月18日 10:31:14 osiris 内核:[937288.580440] [] ? common_interrupt+0x30/0x38 5月18日 10:31:14 osiris 内核:[937288.580452] [] ? free_hot_cold_page+0x182/0x1a3 5月18日 10:31:14 osiris 内核:[937288.580463] [] ? __pagevec_free+0x4e/0x58 5月18日 10:31:14 osiris 内核:[937288.580473] [] ?release_pages+0xe7/0x124 5月18日 10:31:14 osiris 内核:[937288.580484] [] ? __pagevec_release+0x15/0x1d 5月18日 10:31:14 osiris 内核:[937288.580495] [] ?invalidate_mapping_pages+0x6a/0x98 5月18日 10:31:14 osiris 内核:[937288.580505] [] ? shrink_icache_memory+0xd7/0x1d3 5月18日 10:31:14 osiris 内核:[937288.580515] [] ? shrink_slab+0xe6/0x13f 5月18日 10:31:14 osiris 内核:[937288.580525] [] ?kswapd+0x3d8/0x54f 5月18日 10:31:14 osiris 内核:[937288.580536] [] ?isolate_pages_global+0x0/0x1bc 5月18日 10:31:14 osiris 内核:[937288.580550] [] ?autoremove_wake_function+0x0/0x2d 5月18日 10:31:14 osiris 内核:[937288.580564] [] ? 完成+0x28/0x36 5月18日 10:31:14 osiris 内核:[937288.580574] [] ?kswapd+0x0/0x54f 5月18日 10:31:14 osiris 内核:[937288.580584] [] ?kthread+0x61/0x66 5月18日 10:31:14 osiris 内核:[937288.580595] [] ?kthread+0x0/0x66 5月18日 10:31:14 osiris 内核:[937288.580606] [] ? kernel_thread_helper+0x7/0x10 5月18日 10:31:14 osiris 内核:[937288.580612] 内存信息: 5月18日 10:31:14 osiris 内核:[937288.580618] 每 CPU DMA: 5月18日 10:31:14 osiris 内核:[937288.580625] CPU 0:hi:0,btch:1 usd:0 5月18日 10:31:14 osiris 内核:[937288.580632] CPU 1:hi:0,btch:1 usd:0 5月18日 10:31:14 osiris 内核:[937288.580639] CPU 2:hi:0,btch:1 usd:0 5月18日 10:31:14 osiris 内核:[937288.580647] CPU 3:hi:0,btch:1 usd:0 5月18日 10:31:14 osiris 内核:[937288.580654] 每个 CPU 正常: 5月18日 10:31:14 osiris 内核:[937288.580660] CPU 0:hi:186,btch:31 usd:157 5月18日 10:31:14 osiris 内核:[937288.580668] CPU 1:hi:186,btch:31 usd:93 5月18日 10:31:14 osiris 内核:[937288.580676] CPU 2:hi:186,btch:31 usd:91 5月18日 10:31:14 osiris 内核:[937288.580683] CPU 3:hi:186,btch:31 usd:167 5月18日 10:31:14 osiris 内核:[937288.580690] 每个 CPU 的 HighMem: 5月18日 10:31:14 osiris 内核:[937288.580697] CPU 0:hi:186,btch:31 usd:155 5月18日 10:31:14 osiris 内核:[937288.580704] CPU 1:hi:186,btch:31 usd:173 5月18日 10:31:14 osiris 内核:[937288.580711] CPU 2:hi:186,btch:31 美元:85 5月18日 10:31:14 osiris 内核:[937288.580718] CPU 3:hi:186,btch:31 usd:165 5月18日 10:31:14 osiris 内核:[937288.580730] active_anon:22503 inactive_anon:10669isolated_anon:0 5月18日 10:31:14 osiris 内核:[937288.580733] active_file:25150 inactive_file:287773isolated_file:0 5月18日 10:31:14 osiris 内核:[937288.580737] 不可驱逐:0 脏:0 写回:52 不稳定:0 5月18日 10:31:14 osiris 内核:[937288.580741] 空闲:20455 slab_reclaimable:8509 slab_unreclaimable:7454 5 月 18 日 10:31:14 osiris 内核:[937288.580744] 映射:5500 shmem:1407 页表:627 跳出:0 5 月 18 日 10:31:14 osiris 内核:[937288.580759] DMA 可用:3588kB 最小:64kB 低:80kB 高:96kB active_anon:0kB inactive_anon:0kB active_file:1116kB inactive_file:288kB unevictable:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:15784kB mlocked:0kB dirty:0kB writeback:0kB 映射:0kB shmem:0kB slab_reclaimable:176kB slab_unreclaimable:528kB kernel_stack:0kB pagetables:0kB 不稳定:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?否 5月18日 10:31:14 osiris 内核:[937288.580781] lowmem_reserve[]: 0 861 2015 2015 5 月 18 日 10:31:14 osiris 内核:[937288.580810] 正常 空闲:42680kB 最小:3720kB 低:4648kB 高:5580kB active_anon:12kB inactive_anon:780kB active_file:46720kB inactive_file:188384kB 不可驱逐:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:881880kB mlocked:0kB 脏:0kB 回写:0kB 映射:76kB shmem:0kB slab_reclaimable:33860kB slab_unreclaimable:29288kB kernel_stack:1408kB 页表:124kB 不稳定:0kB 反弹:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?否 5月18日 10:31:14 osiris 内核:[937288.580833] lowmem_reserve[]: 0 0 9234 9234 5 月 18 日 10:31:14 osiris 内核:[937288.580862] HighMem 可用:35552kB 最小:512kB 低:1756kB 高:3004kB active_anon:90000kB inactive_anon:41896kB active_file:52764kB inactive_file:962420kB unevictable:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:1182056kB mlocked:0kB 脏:0kB 回写:208kB 映射:21924kB shmem:5628kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB 页表:2384kB 不稳定:0kB 反弹:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?否 5月18日 10:31:14 osiris 内核:[937288.580885] lowmem_reserve[]: 0 0 0 0 5月18日 10:31:14 osiris 内核:[937288.580908] DMA:13*4kB 4*8kB 13*16kB 1*32kB 1*64kB 1*128kB 2*256kB 1*512kB 0*1024kB 1*2048kB 0*4096kB = 3588kB 5月18日 10:31:14 osiris 内核:[937288.580956] 正常:8286*4kB 356*8kB 85*16kB 160*32kB 2*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 42600kB 5月18日 10:31:14 osiris 内核:[937288.581007] HighMem:1248*4kB 2476*8kB 620*16kB 8*32kB 5*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 35552kB 5 月 18 日 10:31:14 osiris 内核:[937288.581062] 共 315224 个页面缓存页面 5 月 18 日 10:31:14 osiris 内核:[937288.581068] 交换缓存中有 947 个页面 5 月 18 日 10:31:14 osiris 内核:[937288.581075] 交换缓存统计信息:添加 7675,删除 6728,查找 14833/15430 5月18日 10:31:14 osiris 内核:[937288.581082] 可用交换 = 3900340kB 5月18日 10:31:14 osiris 内核:[937288.581089] 总交换空间 = 3905528kB 5月18日 10:31:14 osiris 内核:[937288.594263] 524144 页 RAM 5月18日 10:31:14 osiris 内核:[937288.594268] 297858 页 HighMem 5月18日 10:31:14 osiris 内核:[937288.594270] 保留 5625 页 5月18日 10:31:14 osiris kernel: [937288.594272] 共享了 123757 个页面 5月18日 10:31:14 osiris 内核:[937288.594275] 454801 个页面未共享
看起来这可能只是一个内核错误,并没有真正造成任何问题。
下一个值得注意的事件是:
5月18日 13:13:03 osiris 内核:[946997.132469] ata4:异常 Emask 0x10 SAct 0x0 SErr 0x10000 操作 0xe 冻结 5月18日 13:13:03 osiris 内核:[946997.132507] ata4:SError:{PHYRdyChg} 5月18日 13:13:03 osiris 内核:[946997.132536] ata4:硬重置链接 5月18日 13:13:06 osiris 内核:[947000.544016] ata4:COMRESET 失败(errno=-19) 5月18日 13:13:06 osiris 内核:[947000.544044] ata4:重置失败(errno=-19),7 秒后重试 5 月 18 日 13:13:08 osiris 内核:[947002.255353] 3w-9xxx:scsi0:AEN:警告(0x04:0x0019):驱动器已移除:端口=2。 5 月 18 日 13:13:08 osiris 内核:[947002.255525] 3w-9xxx:scsi0:AEN:警告(0x04:0x0019):驱动器已移除:端口=3。 5月18日 13:13:13 osiris 内核:[947007.132027] ata4:硬重置链接 5 月 18 日 13:13:18 osiris 内核:[947012.040156] 3w-9xxx:scsi0:AEN:INFO(0x04:0x001A):驱动器已插入:端口=3。 5月18日 13:13:19 osiris内核:[947012.896015] ata4:链接响应较慢,请耐心等待(ready=-19) 5 月 18 日 13:13:20 osiris 内核:[947013.913066] 3w-9xxx:scsi0:AEN:INFO(0x04:0x001A):驱动器已插入:端口=2。 5月18日 13:13:20 osiris 内核:[947014.352032] ata4:SATA 链接速度达到 1.5 Gbps (SStatus 113 SControl 310) 5月18日 13:13:20 osiris 内核:[947014.377670] ata4.00:已配置为 UDMA/100 5月18日 13:13:20 osiris 内核:[947014.377680] ata4:EH 完成
当时没有人实际接触过这台机器,因此我将其解释为控制器出现故障——考虑到它相对较旧且是二手的,这可以理解。
我连夜弄了一个新的控制器,第二天就安装好了。SMART 报告称所有驱动器均无错误,所有简短测试均通过,因此我执行了mdadm --assemble --force
,清除了所有驱动器的故障标志并顺利启动了阵列。fsck 表示文件系统是干净的,安装时没有问题。
于是我说“太棒了!”然后重启。机器直接跳转到网络启动屏幕,似乎忽略了可启动硬盘。(请注意,/boot 不在 mdadm 阵列上 - 阵列只有 /home)。
这就是我被困住的地方。我不知道为什么 bios 不想从这个驱动器启动。没有 grub,什么都没有。在安装程序的 chrooted 环境中拥有一个功能齐全的系统,然后却无法启动它,这真是令人沮丧。