41

I just installed a new Ubuntu 20.04 server as a virtual machine on an esx-Server. When I look into systemlog I see lots of multipath entries.

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

I think multipath is just not configured and my question is if I can disable multipath. Since I checked this on several Ubuntu 20.04 servers multipath is enabled by default.

Does it make sense to activate multipath?

3
  • 6
    after I added "blacklist { devnode "sda" }" to /etc/multipath.conf the entries in syslog disapeared. I am still wondering why multipath is enabled by default. May 23 '20 at 8:36
  • Works for me, thanks! I also encountered another problem after setting up Ubuntu 20.04 as VM (root partition only 4 GB large), so I guess a few setup routines are a bit buggy :(
    – BurninLeo
    May 24 '20 at 11:52
  • 1
    @BurninLeo As far as I know the 4GB root partition is meant to be that small. You can use lvm to grow it to whatever size you like. Its meant to keep most space available for you to create/extend partitions as needed.
    – Sven
    May 27 '20 at 9:45
31

There is a SUSE linux KB on the topic - https://www.suse.com/support/kb/doc/?id=000016951. The problem is that VMWare by default doesn't provide information needed by udev to generate /dev/disk/by-id entries. Apart from ESX, VMWare Workstation (my case) is also affected. The resolution is to put

disk.EnableUUID = "TRUE"

to the virtual machine definition, i.e. into the *.vmx file or via Edit Settings -> Options tab -> General -> Configuration Parameters in ESX UI.

After rebooting VM with this parameter set, the disk are visible in /dev/disk/by-id and multipathd doesn't complain anymore.

2
  • This worked for me on VMware Fusion as well. (You need to right-click the VM file in the Finder and select Show Package Contents to see the .vmx file.)
    – Jo Liss
    Jul 17 '20 at 20:24
  • 6
    I had to power off the VM, and then go to Edit Settings -> VM Options -> Advanced -> EDIT CONFIGURATION... in vSphere Client version 6.5.0.
    – simlev
    Sep 23 '20 at 8:42
18

If you dont have access to your host ESX you can add the following lines to your /etc/multipath.conf file which also blacklists common other devices like CDRom drives etc.

defaults {
    user_friendly_names yes
}
blacklist {
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
}
2
  • 3
    Which is better between editing the VM configuration in ESXi and editing /etc/multipath.conf on the VM? Could you please elaborate on advantages and disadvantages of each solution?
    – simlev
    Sep 24 '20 at 9:37
  • 5
    @simlev EnableUUID can cause problems in the context of cloning the guest system Feb 6 at 17:10
7

Through this, I have resolved my issue:

  1. Run vi /etc/multipath.conf and add this to the file:

    defaults {
        user_friendly_names yes
    }
    
    blacklist {
        device {
            vendor "VMware"
            product "Virtual disk"
        }
    }
    
  2. Restart the multipath-tools service:

    service /etc/init.d/multipath-tools restart
    
1
  • 1
    blacklisting the type of drive feels more concise and makes for the sort of config that you can share around with chef or ansible.
    – ericx
    Jul 9 at 14:10
2

Adding the below into the guest vm parameters worked for me. The syslog is no longer complaining and the server appears to be staying up.

disk.EnableUUID = "TRUE"

This is added to the virtual machine definition, i.e. into the *.vmx file, or via Edit Settings -> Options tab -> General -> Configuration Parameters in ESX UI.

Ubuntu 20.04 running apache and Wordpress php-7.4-fpm

0

Here is another way to set it.

Use govc

Setup GOVC_URL first like

export GOVC_URL='https://username:password@vcenter.company.com/sdk'

and set UUID like

govc vm.change -e="disk.EnableUUID=TRUE" -vm='MY_VM_NAME'

One more thing, you have to poweroff and poweron to take effect this change

govc vm.power -off -force VM1
govc vm.power -on -force VM1
0

I'd use a:

defaults {
    user_friendly_names yes
}
blacklist {
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^sd[a-z]?[0-9]*"
}

for sda, sdb, etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.