Scenario 1) LUN numbers 0 and 1 only. $ dmesg | grep Hypervisor [ 0.000000] Hypervisor detected: Microsoft Hyper-V
$ uname -r 5.4.0-1094-azure $ lsscsi | grep sd [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc [0:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd [1:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb $ ls -d /sys/bus/vmbus/devices/*/host*/target*/*/block/sd* /sys/bus/vmbus/devices/f8b3781a-1e82-4818-a1c3-63d806ec15bb/host0/target0:0:0/0:0:0:0/block/sdc /sys/bus/vmbus/devices/f8b3781a-1e82-4818-a1c3-63d806ec15bb/host0/target0:0:0/0:0:0:1/block/sdd /sys/bus/vmbus/devices/f8b3781b-1e82-4818-a1c3-63d806ec15bb/host1/target1:0:0/1:0:0:0/block/sda /sys/bus/vmbus/devices/f8b3781b-1e82-4818-a1c3-63d806ec15bb/host1/target1:0:0/1:0:0:1/block/sdb Before: (non-unique ID_PATHs; some disks missing by-path symlinks) ------ $ dpkg -s udev | grep Version: Version: 237-3ubuntu10.56 $ for sd in /sys/block/sd*; do udevadm test-builtin path_id $sd; done 2>/dev/null | grep ID_PATH= | sort | uniq -c 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:0 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:1 $ ll /dev/disk/by-path total 0 drwxr-xr-x 2 root root 180 Nov 18 20:16 ./ drwxr-xr-x 9 root root 180 Nov 18 20:16 ../ lrwxrwxrwx 1 root root 9 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:0 -> ../../sdc lrwxrwxrwx 1 root root 10 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:0-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 11 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:0-part14 -> ../../sdc14 lrwxrwxrwx 1 root root 11 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:0-part15 -> ../../sdc15 lrwxrwxrwx 1 root root 9 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:1 -> ../../sdd lrwxrwxrwx 1 root root 10 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:1-part1 -> ../../sdd1 lrwxrwxrwx 1 root root 9 Nov 18 20:16 acpi-VMBUS:00-scsi-0:0:0:2 -> ../../sr0 After: (non-unique ID_PATHs by default; unique ID_PATHs w/ opt-in) ----- Install test packages: $ sudo add-apt-repository ppa:mfo/lp1996958 $ sudo apt install $(dpkg -l | awk '$3 == "237-3ubuntu10.56" { print $2 }') $ dpkg -s udev | grep Version: Version: 237-3ubuntu10.56+lp1996958.1 No change by default (opt-in disabled): $ sudo reboot $ for sd in /sys/block/sd*; do udevadm test-builtin path_id $sd; done 2>/dev/null | grep ID_PATH= | sort | uniq -c 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:0 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:1 $ cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-5.4.0-1094-azure root=UUID=898098a3-2c50-49fd-ac32-98a16d91c16b ro console=tty1 console=ttyS0 earlyprintk=ttyS0 Enable opt-in: $ cat <<EOF | sudo tee /etc/default/grub.d/99-new-vmbus-path-id.cfg GRUB_CMDLINE_LINUX="\$GRUB_CMDLINE_LINUX udev.new_vmbus_path_id" EOF $ sudo update-grub $ sudo reboot $ cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-5.4.0-1094-azure root=UUID=898098a3-2c50-49fd-ac32-98a16d91c16b ro console=tty1 console=ttyS0 earlyprintk=ttyS0 udev.new_vmbus_path_id Fixed: (unique ID_PATHs; no disks missing by-path symlinks) $ for sd in /sys/block/sd*; do udevadm test-builtin path_id $sd; done 2>/dev/null | grep ID_PATH= | sort | uniq -c 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-1 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-0 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-1 $ ll /dev/disk/by-path total 0 drwxr-xr-x 2 root root 220 Nov 18 20:39 ./ drwxr-xr-x 9 root root 180 Nov 18 20:39 ../ lrwxrwxrwx 1 root root 9 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0 -> ../../sda lrwxrwxrwx 1 root root 10 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-1 -> ../../sdb lrwxrwxrwx 1 root root 10 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-1-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-2 -> ../../sr0 lrwxrwxrwx 1 root root 9 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-0 -> ../../sdc lrwxrwxrwx 1 root root 9 Nov 18 20:39 acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-1 -> ../../sdd (Note the UUIDs/GUIDs match the sysfs paths.) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1996958 Title: [Azure] 18.04 - non-unique ID_PATH for SCSI disks Status in systemd package in Ubuntu: Fix Released Status in systemd source package in Bionic: In Progress Bug description: [Impact] * The PATH_ID for SCSI disks on Azure/Hyper-V might not be unique with the systemd/udev version in Ubuntu 18.04 LTS (Bionic Beaver). * This cause issues on applications that require unique PATH_IDs; for example Veritas Dynamic Multi-Pathing (DMP). * The fix introduces changes to PATH_ID format/values for VMBUS, which would break stable names/links, so it must be an opt-in. * The kernel command line option 'udev.new_vmbus_path_id' (boolean) can be used to opt in to (different) unique PATH_IDs. * It's not used by default (i.e., no behavior change by default). [Test Plan] 1. Launch an Ubuntu 18.04 VM on Azure 2. Add extra disks to the VM 3. Check the disks PATH_ID for (non-)unique values 4. (Opt-in for the fix with kernel cmdline option; repeat 3.) * Before: $ lsscsi | grep /dev/sd [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc [0:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd [1:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb $ for sd in /dev/sd?; do \ udevadm test-builtin path_id /block/${sd#/dev} \ 2>/dev/null | grep ID_PATH=; \ done | sort | uniq -c 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:0 2 ID_PATH=acpi-VMBUS:00-scsi-0:0:0:1 * After: Opt-in mechanism: $ cat <<EOF | sudo tee /etc/default/grub.d/99-new-vmbus-path-id.cfg GRUB_CMDLINE_LINUX="\$GRUB_CMDLINE_LINUX udev.new_vmbus_path_id" EOF $ sudo update-grub $ sudo reboot $ for sd in /dev/sd?; do \ udevadm test-builtin path_id /block/${sd#/dev} \ 2>/dev/null | grep ID_PATH=; \ done | sort | uniq -c 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-0 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781a1e824818a1c363d806ec15bb-lun-1 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-0 1 ID_PATH=acpi-VMBUS:00-vmbus-f8b3781b1e824818a1c363d806ec15bb-lun-1 [Where problems might occur] * The PATH_ID property of SCSI disks on Azure/Hyper-V (ie, on VMBUS) might display problems, and impact applications/userspace that use /dev/disk/by-path. * There are no functional changes in the existing code path (see patch for '37' and related math). The new code path is guarded with an opt-in option (not used by default). [Other Info] * upstream patch: https://github.com/systemd/systemd/commit/cf3fabacaa141a1224a2ad239806a1fa28b51687 * present in Focal and later: systemd.git$ git describe --contains cf3fabacaa141a1224a2ad239806a1fa28b51687 v239~511 $ rmadison -a source systemd systemd | 204-5ubuntu20 | trusty | source systemd | 204-5ubuntu20.31 | trusty-security | source systemd | 204-5ubuntu20.31 | trusty-updates | source systemd | 229-4ubuntu4 | xenial | source systemd | 229-4ubuntu21.27 | xenial-security | source systemd | 229-4ubuntu21.31 | xenial-updates | source systemd | 237-3ubuntu10 | bionic | source systemd | 237-3ubuntu10.56 | bionic-security | source systemd | 237-3ubuntu10.56 | bionic-updates | source systemd | 245.4-4ubuntu3 | focal | source systemd | 245.4-4ubuntu3.15 | focal-security | source systemd | 245.4-4ubuntu3.18 | focal-updates | source systemd | 245.4-4ubuntu3.19 | focal-proposed | source systemd | 249.11-0ubuntu3 | jammy | source systemd | 249.11-0ubuntu3.6 | jammy-updates | source systemd | 251.4-1ubuntu7 | kinetic | source systemd | 251.4-1ubuntu7 | lunar | source To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1996958/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp