设置
我翻新了一个华擎 QC5000M家庭服务器的主板,在其上安装 Debian 12,目的是在 2 个硬盘上设置 RAID 1。
该主板只有 2 个 SATA 端口,因此我添加了一个晨阳SA-208-CYPCI Express 扩展卡,以便增加 2 个 SATA 端口。2 个硬盘均为 2 TB西部数据蓝色WDC WD20EZRZ-00Z自 2017 年开始运行,且没有出现 SMART 错误(已用 测试smartctl
)。
设置:
- 1 个 SSD 插入主板的端口 1
- 1 个 HDD 插入主板的端口 2
- 1 个 HDD 插入 PCI Express 卡
问题
我的问题是,启用 RAID 1 后,每次重启后文件系统都会损坏,fsck.ext4 -y /dev/md0
每次我都必须运行。起初出现了一些有关 inode 的错误,但后来情况变得更糟,它删除了几乎所有文件(幸好我有备份)。
我必须移除从 RAID 1 阵列连接的硬盘,才能拥有一个只能使用一个硬盘的 RAID 1 文件系统,这一点不太好。
因此我进行调查并发现了一些报告的问题dmesg
(参见下面的日志(1)):
ata4.00: failed command: WRITE FPDMA QUEUED
ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
我用另一条 SATA 电缆替换了它,但仍然出现同样的错误。
lspci
显示扩展卡未处于AHCI模式:
lspci -nn | grep -i sata
00:11.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7801] (rev 40)
05:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
这可以解释 RAID 1 无法正常工作的原因吗? 可以通过在 Debian 12 中配置某些内容来解决这个问题吗?
答案ubuntu.SE 上的这个问题提到 SATA 电源插头或更换 PSU 的问题,由于我现在离电脑很远,所以我没有尝试。
更新
我刚刚通过搜索错误和控制器名称(“WRITE FPDMA QUEUED” ASM1062)发现了一些有趣的东西:
我发现只有当 SATA 磁盘连接到 ASM1062 板的 COM4 端口时才会出现此问题,而如果您尝试连接到其他内部连接器(COM3),则根本不会报告任何问题。
来源:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1388559/comments/13
我会尽快尝试一下。
更新 2
使用其他端口后仍然出现错误WRITE FPDMA QUEUED
和,但在。ncq
ata3.00
(1)输出dmesg
:
[ 107.152069] ata4.00: exception Emask 0x10 SAct 0x2 SErr 0x400000 action 0x6 frozen
[ 107.152113] ata4.00: irq_stat 0x08000000, interface fatal error
[ 107.152129] ata4: SError: { Handshk }
[ 107.152148] ata4.00: failed command: WRITE FPDMA QUEUED
[ 107.152162] ata4.00: cmd 61/01:08:08:08:00/00:00:00:00:00/40 tag 1 ncq dma 512 out
res 40/00:0c:08:08:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 107.152207] ata4.00: status: { DRDY }
[ 107.152232] ata4: hard resetting link
[ 107.627952] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 107.629311] ata4.00: configured for UDMA/133
[ 107.629360] ata4: EH complete
[ 107.696032] ata4.00: exception Emask 0x10 SAct 0x81000 SErr 0x400000 action 0x6 frozen
[ 107.696076] ata4.00: irq_stat 0x08000000, interface fatal error
[ 107.696092] ata4: SError: { Handshk }
[ 107.696113] ata4.00: failed command: WRITE FPDMA QUEUED
[ 107.696127] ata4.00: cmd 61/01:60:08:08:00/00:00:00:00:00/40 tag 12 ncq dma 512 out
res 40/00:9c:00:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 107.696173] ata4.00: status: { DRDY }
[ 107.696189] ata4.00: failed command: READ FPDMA QUEUED
[ 107.696201] ata4.00: cmd 60/08:98:00:00:00/00:00:00:00:00/40 tag 19 ncq dma 4096 in
res 40/00:9c:00:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 107.696250] ata4.00: status: { DRDY }
[ 107.696273] ata4: hard resetting link
[ 108.167983] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 108.169348] ata4.00: configured for UDMA/133
[ 108.169417] sd 3:0:0:0: [sdc] tag#19 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 108.169435] sd 3:0:0:0: [sdc] tag#19 Sense Key : Illegal Request [current]
[ 108.169447] sd 3:0:0:0: [sdc] tag#19 Add. Sense: Unaligned write command
[ 108.169460] sd 3:0:0:0: [sdc] tag#19 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 108.169468] I/O error, dev sdc, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 108.169535] ata4: EH complete
[ 108.207911] md: recovery of RAID array md0
[ 108.331923] ata4.00: exception Emask 0x10 SAct 0x400000 SErr 0x400000 action 0x6 frozen
[ 108.331970] ata4.00: irq_stat 0x08000000, interface fatal error
[ 108.331988] ata4: SError: { Handshk }
[ 108.332012] ata4.00: failed command: WRITE FPDMA QUEUED
[ 108.332027] ata4.00: cmd 61/00:b0:00:10:04/0a:00:00:00:00/40 tag 22 ncq dma 1310720 ou
res 40/00:b4:00:10:04/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 108.332079] ata4.00: status: { DRDY }
[ 108.332101] ata4: hard resetting link
[ 108.811925] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 108.813266] ata4.00: configured for UDMA/133
[ 108.813317] ata4: EH complete
[ 108.887995] ata4: limiting SATA link speed to 3.0 Gbps
[ 108.888020] ata4.00: exception Emask 0x10 SAct 0x3c SErr 0x400000 action 0x6 frozen
[ 108.888053] ata4.00: irq_stat 0x08000000, interface fatal error
[ 108.888069] ata4: SError: { Handshk }
[ 108.888090] ata4.00: failed command: WRITE FPDMA QUEUED
[ 108.888105] ata4.00: cmd 61/01:10:08:08:00/00:00:00:00:00/40 tag 2 ncq dma 512 out
res 40/00:2c:00:1a:04/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 108.888156] ata4.00: status: { DRDY }
[ 108.888172] ata4.00: failed command: READ FPDMA QUEUED
[ 108.888186] ata4.00: cmd 60/08:18:08:08:00/00:00:00:00:00/40 tag 3 ncq dma 4096 in
res 40/00:2c:00:1a:04/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 108.888233] ata4.00: status: { DRDY }
[ 108.888248] ata4.00: failed command: WRITE FPDMA QUEUED
[ 108.888262] ata4.00: cmd 61/00:20:00:10:04/0a:00:00:00:00/40 tag 4 ncq dma 1310720 ou
res 40/00:2c:00:1a:04/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 108.888309] ata4.00: status: { DRDY }
[ 108.888324] ata4.00: failed command: WRITE FPDMA QUEUED
[ 108.888338] ata4.00: cmd 61/80:28:00:1a:04/00:00:00:00:00/40 tag 5 ncq dma 65536 out
res 40/00:2c:00:1a:04/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 108.888384] ata4.00: status: { DRDY }
[ 108.888408] ata4: hard resetting link
[ 109.364012] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 109.365269] ata4.00: configured for UDMA/133
[ 109.365334] ata4: EH complete
输出lspci
:
$ lspci -nnk | grep --after-context=3 SATA
00:11.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7801] (rev 40)
Subsystem: ASRock Incorporation QC5000-ITX/PH [1849:7801]
Kernel driver in use: ahci
Kernel modules: ahci
--
05:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
Subsystem: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:1060]
Kernel driver in use: ahci
Kernel modules: ahci
答案1
lspci显示扩展卡未处于AHCI模式:
这是否可以解释RAID 1无法正常工作的原因?
它处于 AHCI 模式。否则它实际上就不是“SATA 控制器”了——此设备类型仅供向操作系统提供 AHCI 接口的设备使用。(SATA 是磁盘和控制器之间的接口,AHCI 是控制器和操作系统之间的接口。)
“[AHCI 模式]”标签专门用于英特尔 SATA 控制器,它只是型号名称这是在 lspci 的设备数据库中定义的。(也就是说,Intel RST 控制器根据所处的模式使用两个不同的 PCI 模型 ID。)
这种标签的目的是因为英特尔 RST 可以处于“纯”(直通)控制器模式或者在其特殊的“硬件 RAID”模式下。您的基本 SATA 控制器没有后者,它首先只能执行普通的 AHCI。
因此,这不可能是原因。
(我不确定真正的原因是什么是,但从 dmesg 日志来看,操作系统似乎可以与控制器通信,但控制器在与磁盘通信时遇到了问题。我猜是“SATA 电缆坏了”、“SATA 端口坏了”或“控制器便宜且不可靠”。Ubuntu 错误报告让我认为是后者。)
答案2
我解决了这个问题,但是将装有操作系统的 SSD 放入 USB 外壳中,并将 2 个硬盘直接插入主板。
换句话说,我移除了 ASM1062 卡,因为它存在系统问题。