20.04.2 在写入 RAID 6 阵列时完全锁定

20.04.2 在写入 RAID 6 阵列时完全锁定

我可以连续重现问题(并且只需几分钟),但我在日志中找不到任何有用的消息。该问题发生在 RocketRaid 3740C HBA 和专有 nvidia 驱动程序上,但现在发生在 LSI/Broadcom 9305-16i HBA 和 nouveau 驱动程序上。我已将 Broadcom 卡刷新到最新固件和 BIOS。主机总线适配器连接到 9 个驱动器(共 10 个,RAID 6 降级,直到替换磁盘到达)。网卡是 Mellanox ConnectX3,在光纤上运行 10G 以太网。在我更换 RocketRaid 卡之前,我记得看到专有驱动程序写入内核日志,说在崩溃前预期有 18 条消息,但实际却有 20 条消息。但我似乎再也找不到这些消息了(感谢您提供如何找到它们的指示!)。

重现步骤:

将大量内容写入磁盘(写入速度 > 700MB/s)。例如,从另一台计算机打开 3 个 scp 会话,并以 ~250MB/s 的速度并行写入 3 个文件。不到五分钟,Ubuntu 屏幕就冻结/锁定,ssh 无响应。硬重置似乎是唯一的选择。此后,mdadm 认为阵列已脏(即使所有驱动器上的事件计数相同)。mdadm assemble --force 有效,但阵列需要一天时间重新同步。

我对此已经束手无策了。我正在考虑看看 TrueNAS 或 Alma Linux 会发生什么。我也对主板 (ASRock Tachi X570) 有点好奇。系统似乎在任何不涉及大量写入阵列的负载下都表现良好,包括 CPU (5700x) 和密集的网络流量(我可以反复发送/接收 10 GB 的网络流量并获得 ~70 Gbit/s 的带宽)。

根据@heynnema 的评论进行编辑

$ sudo free -h
              total        used        free      shared  buff/cache   available
Mem:           62Gi        12Gi       442Mi       372Mi        50Gi        49Gi
Swap:         975Mi        44Mi       931Mi
sudo sysctl vm.swappiness 
vm.swappiness = 60
phil@omni:~$ sudo dmidecode -s bios-version
P4.30
Tasks: 428 total,   2 running, 426 sleeping,   0 stopped,   0 zombie
%Cpu(s): 34.8 us,  2.0 sy,  0.0 ni, 61.1 id,  0.0 wa,  0.0 hi,  2.0 si,  0.0 st
MiB Mem :  64242.9 total,   1192.4 free,  14388.3 used,  48662.3 buff/cache
MiB Swap:    976.0 total,    915.5 free,     60.5 used.  48780.6 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                  
  15919 fooo      20   0 4083880   3.6g  12520 S 312.5   5.7  77:36.68 chia                                                                                                                                                                     
  15560 fooo      20   0 4083904   3.6g  12544 S  93.8   5.7  77:43.99 chia                                                                                                                                                                     
   4764 root      20   0       0      0      0 S  18.8   0.0  93:17.25 md0_raid6                                                                                                                                                                
   1375 unifi     20   0 4028748 180588  21888 S   6.2   0.3   0:04.47 launcher                                                                                                                                                                 
   2154 unifi     20   0 1078716 132904  39776 S   6.2   0.2   0:25.11 mongod                                                                                                                                                                   
   4776 root      20   0       0      0      0 R   6.2   0.0  18:39.73 md0_resync                                                                                                                                                               
  15419 root      20   0       0      0      0 I   6.2   0.0   0:01.07 kworker/0:1-events                                                                                                                                                       
      1 root      20   0  168296  11728   7896 S   0.0   0.0   0:01.02 systemd                                                                                                                                                                  
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd                                                                                                                                                                 
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                                                                                                                   
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                                                                                                               
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                                                                                                                                                     
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                                                                                                             
     10 root      20   0       0      0      0 S   0.0   0.0   0:06.43 ksoftirqd/0                                                                                                                                                              
     11 root      20   0       0      0      0 I   0.0   0.0   0:04.24 rcu_sched                                                                                                                                                                
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.02 migration/0                                                                                                                                                              
     13 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0 
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/vgubuntu-root /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=3C3E-4180  /boot/efi       vfat    umask=0077      0       1
/dev/mapper/vgubuntu-swap_1 none            swap    sw              0       0
#192.168.1.192:/storage     /storage  nfs  defaults 0 0 
UUID=ddc550d2-7f93-4ecf-ac2e-d754c5eee6c9 /storage xfs defaults 0 0 
UUID=BCB65C49B65C05F4 /var/ExChia1 ntfs defaults 0 0
UUID=3A10-3FE7 /var/ExChia4 exfat defaults 0 0
UUID=0EF0-7586 /var/ExChia5 exfat defaults 0 0 
UUID=3837-E26A /var/ExChia6 exfat defaults 0 0
UUID=73338b75-d356-4e7f-9757-948f1078f04e /var/ExChia13 xfs defaults 0 0

答案1

所以,我遇到了和你完全一样的问题。

通过 mdadm 设置 11 个磁盘软件 RAID6,带有 XFS 分区。磁盘通过主板 SATA 和 broadcom HBA SATA 端口组合连接。

在 Ubuntu 20.04.3 LTS 上,每当我在足够短的时间内进行足够高的带宽写入时,系统就会完全冻结。

为了排除任何其他设备或网络问题,我发现通过将 1TB 垃圾文件写入阵列 dd if=/dev/zero of=testfile bs=1024 count=1024000000 status=progress是重现该问题的最可靠方法。

解决方案是升级到 Ubuntu 21.10。Ubuntu 21.04 需要更长的时间才能冻结,但仍然会冻结。在 Ubuntu 21.10 上,我可以毫无问题地执行 3 次完整的 1TB 测试文件。导致此问题的任何错误最终都已修复。

相关内容