我在 esxi 环境中运行 ubuntu 16.04 机器,我正在通过 linux 上的 zfs常问问题由于 /dev/sdX 名称的性质不一致,它建议对家庭服务器使用 /dev/disk/by-id,但是当我在 /dev/disk 上列出文件时,by-id 上仅有 cdrom 设备符号链接。
root@sandbox1:/usr/lib# ls -l /dev/disk/*
/dev/disk/by-id:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 -> ../../sr0
/dev/disk/by-label:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 ISOIMAGE -> ../../sr0
/dev/disk/by-partuuid:
total 0
lrwxrwxrwx 1 root root 10 Mar 23 14:01 0ab37a34-0257-4619-b03e-d0d517ae81b0 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 23 14:01 117b8f72-31ce-453c-96ad-1c3a6a7254ca -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 23 14:01 13901c1b-5f31-4ec8-82d4-a6f90867cb0c -> ../../sda9
lrwxrwxrwx 1 root root 10 Mar 23 14:01 321d414b-3d47-4545-acc5-36e5ecf8d3b8 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 23 14:01 6d13446d-9d6f-4ca3-825e-c505f244e73c -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 23 14:01 94e037c9-ee9e-40b2-b634-2382734e7fdc -> ../../sda3
/dev/disk/by-path:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 pci-0000:00:07.1-ata-2 -> ../../sr0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 23 14:01 pci-0000:00:10.0-scsi-0:0:0:0-part9 -> ../../sda9
/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 9 Mar 23 14:01 2017-06-18-10-12-11-00 -> ../../sr0
在虚拟化和非虚拟化环境中,推荐使用哪种方法(按 ID、按路径等)来创建 zfs 池或任何其他文件系统,其中 /dev/sdX 块设备可能会发生变化?
答案1
看起来所使用的 SCSI 设备类型与任何 udev 规则都不匹配,因此by-id
无法创建正常的符号链接。您可能想让 Ubuntu systemd/udev 维护人员知道您的 ESXI SCSI 磁盘设备无法正常工作。
作为一种解决方法,您可以创建一个持久名称为您的设备创建一个新的自定义 udev 规则文件。本指南是我发现的最容易阅读的,尽管它是为 Oracle Linux 编写的。我认为 Ubuntu 16.04 使用的是较新的版本,udevadm
而不是udevinfo
。
例如,您可以尝试udevadm test /block/sda
查看您的设备匹配哪些 udev 规则,以及正在创建哪些符号链接。然后,您可以创建自己的规则以匹配设备的序列号,并创建您想要的任何符号链接 - /dev/disk/by-id/...
、/dev/disk/by-uuid/...
,甚至/dev/mySCSIDevice
。