在 esx-Server 上安装了 Ubuntu20.04,进去系统查看日志时发现,syslog 一直刷错误:
multipathd[651]: sda: add missing path
multipathd[651]: sda: failed to get udev uid: Invalid argument
multipathd[651]: sda: failed to get sysfs uid: Invalid argument
multipathd[651]: sda: failed to get sgio uid: No such file or directory
multipathd[651]: sda: add missing path
multipathd[651]: sda: failed to get udev uid: Invalid argument
multipathd[651]: sda: failed to get sysfs uid: Invalid argument
multipathd[651]: sda: failed to get sgio uid: No such file or directory
在 Ask Ubuntu 上看到一个帖子:ubuntu-20-04-multipath-configuration
上面说到 Ubuntu20.04 默认启动了多路径,但是 VMWare 默认不提供 udev 生成 /dev/disk/by-id 条目所需要的信息,然后 multipathd 就一直再刷。
解决方法
一、修改 ESX 配置
让 VMWare 提供信息给 udev 生成 /dev/disk/by-id 条目。
在 ESX 管理页面找到对应的虚拟机,依次点击 编辑设置-》虚拟机选项-》高级-》编辑配置
然后增加一项:
disk.EnableUUID = "TRUE"
如果设置里有 disk.EnableUUID 字段,直接把值改成 TRUE 就可以了。
改完之后要重启虚拟机。
二、修改 multipathd 配置文件
修改 /etc/multipath.conf 文件,将驱动类型加入黑名单
defaults {
user_friendly_names yes
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^sd[a-z]?[0-9]*"
}
重启 multipath-tools 服务或重启操作系统
$ sudo service /etc/init.d/multipath-tools restart
建议是使用第二种, EnableUUID 可能会影响克隆的 guest system