Featured image of post 修復 multipathd 不斷報錯的問題

修復 multipathd 不斷報錯的問題

在 VirtualBox 跑 Ubuntu 24.04 時,/var/log/syslog 不斷出現以下錯誤:

1
2
3
4
Mar  5 11:43:57 ubuntu-server multipathd[726]: sda: add missing path
Mar  5 11:43:57 ubuntu-server multipathd[726]: sda: failed to get udev uid: Invalid argument
Mar  5 11:43:57 ubuntu-server multipathd[726]: sda: failed to get sysfs uid: No data available
Mar  5 11:43:57 ubuntu-server multipathd[726]: sda: failed to get sgio uid: No data available

每隔幾秒就刷一次,根本看不到其他 log。

問題原因

multipathd 是 Linux 的多路徑 I/O 管理 daemon,設計用途是管理 SAN 儲存設備的多條路徑,確保其中一條路徑掛掉時還能繼續運作。

問題在於:VirtualBox 的虛擬硬碟(VBOX HARDDISK)不是 SAN 設備,也沒有多路徑識別資訊(WWID),multipathd 卻會嘗試掃描所有 SCSI 裝置,掃到這顆虛擬碟時抓不到 uid,就不斷重試、不斷報錯。

確認裝置是 VirtualBox 虛擬磁碟:

1
sudo lshw -class disk
1
2
3
4
5
6
7
  *-disk
       description: SCSI Disk
       product: HARDDISK
       vendor: VBOX
       physical id: 0.0.0
       bus info: scsi@30:0.0.0
       logical name: /dev/sda

vendor: VBOXproduct: HARDDISK,這就是 blacklist 的對象。

解法

把 VBOX HARDDISK 加進 /etc/multipath.conf 的 blacklist,讓 multipathd 直接忽略它。

1
2
3
4
5
6
7
echo 'blacklist {
  device {
    vendor "VBOX"
    product "HARDDISK"
  }
}' | sudo tee -a /etc/multipath.conf
sudo systemctl restart multipathd.service

重啟後確認 blacklist 已生效:

1
sudo multipathd show blacklist

device rules 區段應該可以看到:

1
2
3
device rules:
- blacklist:
        (config file rule) VBOX:HARDDISK

代表設定已套用。syslog 也不會再出現那些 sda: failed to get uid 的錯誤了。


References

comments powered by Disqus