ZFS 磁盘写入时出错

ZFS 磁盘写入时出错

我们的 ZFS 备份池在写入数据时会产生奇怪的磁盘错误。此池通过 DRBD 复制到第二台具有相同硬件的服务器上,该服务器也遇到了相同的错误。这就是为什么我不认为这是硬件问题。

设置如下(在两台服务器上):

  • Debian 10 服务器,配备 Adaptec ASR 71605 RAID 控制器卡,处于 HBA 模式。所有磁盘均显示为 RAW 磁盘。
  • 有两个池(所有磁盘都是数据中心 SSD):
    1. RAID-Z3 使用八个磁盘,工作正常
    2. 使用两个磁盘进行镜像,出现磁盘错误
  • 每个池上都创建了一个 ZFS 卷(压缩=lz4)
  • 卷通过 DRBD(协议 C)同步到第二台服务器
  • DRBD 公开的块设备上有 LVM 卷,这些卷通过 iSCSI 公开给我们的虚拟机管理程序。虚拟机管理程序 (XCP-ng) 在 iSCSI 卷上透明地管理其磁盘。

镜像池上的所有磁盘都遇到以下错误(不是同时发生,而是在不同时间发生):

Nov 10 18:00:09 st41 kernel: [240970.603991] sd 0:1:8:0: [sdi] tag#977 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
Nov 10 18:00:09 st41 kernel: [240970.603997] sd 0:1:8:0: [sdi] tag#977 CDB: Write(10) 2a 00 a8 20 31 67 00 01 00 00
Nov 10 18:00:09 st41 kernel: [240970.604000] print_req_error: I/O error, dev sdi, sector 2820682087
Nov 10 18:00:09 st41 kernel: [240970.604065] zio pool=tank2 vdev=/dev/disk/by-id/ata-SAMSUNG_MZ7KH1T9HAJR-00005_S47PNA0R101407-part1 error=5 type=2 offset=1444188179968 size=131072 flags=180880
Nov 10 18:00:10 st41 kernel: [240970.675209] aacraid: Host bus reset request. SCSI hang ?
Nov 10 18:00:10 st41 kernel: [240970.675272] aacraid 0000:82:00.0: outstanding cmd: midlevel-1
Nov 10 18:00:10 st41 kernel: [240970.675275] aacraid 0000:82:00.0: outstanding cmd: lowlevel-0
Nov 10 18:00:10 st41 kernel: [240970.675278] aacraid 0000:82:00.0: outstanding cmd: error handler-0
Nov 10 18:00:10 st41 kernel: [240970.675280] aacraid 0000:82:00.0: outstanding cmd: firmware-0
Nov 10 18:00:10 st41 kernel: [240970.675283] aacraid 0000:82:00.0: outstanding cmd: kernel-0
Nov 10 18:00:10 st41 kernel: [240970.675317] aacraid 0000:82:00.0: Controller reset type is 3
Nov 10 18:00:10 st41 kernel: [240970.675358] aacraid 0000:82:00.0: Issuing IOP reset
Nov 10 18:00:45 st41 kernel: [241005.856763] aacraid 0000:82:00.0: IOP reset succeeded
Nov 10 18:00:45 st41 kernel: [241005.879733] aacraid: Comm Interface type2 enabled
Nov 10 18:00:54 st41 kernel: [241014.950498] aacraid 0000:82:00.0: Scheduling bus rescan

上述日志的前四行出现多次,包含不同的扇区和 CDB Write(10) 数据,但其他内容相同。这总是在整点发生,这正是我们的备份脚本开始写入此池的时间。

我尝试更新 ZFSonlinux 软件包、RAID 控制器固件,并尝试将磁盘插入背板上的不同插槽。磁盘的 SMART 报告显示没有任何错误(并且磁盘相对较新)。

由于这在两台服务器和所有四个磁盘上都发生,所以我不认为这是磁盘或 RAID 控制器的硬件问题。

我发现两个池上的磁盘配置之间唯一的区别是 ARCCONF 报告写入缓存:已启用(写回)对于镜像池磁盘,但写入缓存:已禁用(直写)对于 RAID-Z3 池磁盘。我无法更改此缓存模式,因为 ARCCONF 说磁盘处于 RAW 模式并且不支持缓存,所以我不确定配置报告是否可信。

我不知道现在该怎么办,任何帮助都将不胜感激。

相关内容