当前任务

当前任务

当前任务

将虚拟磁盘添加到 vSphere 5 上的 Linux VM 后,我们需要识别磁盘以便自动执行 LVM 存储配置。

虚拟磁盘可能位于不同的数据存储区(例如 sas 或闪存)上,尽管它们的大小可能相同,但速度可能不同。所以我需要一种方法将 vSphere 磁盘映射到 Linux 设备。

想法

通过 vSphere API,我可以获取设备信息:

Data Object Type: VirtualDiskFlatVer2BackingInfo
Parent Managed Object ID: vm-230
Property Path: config.hardware.device[2000].backing  

Properties

Name Type Value 
ChangeId string Unset 
contentId string "d58ec8c12486ea55c6f6d913642e1801" 
datastore ManagedObjectReference:Datastore datastore-216 (W5-CFAS012-Hybrid-CL20-004) 
deltaDiskFormat string "redoLogFormat" 
deltaGrainSize int Unset 
digestEnabled boolean false 
diskMode string "persistent" 
dynamicProperty DynamicProperty[] Unset 
dynamicType string Unset 
eagerlyScrub boolean Unset 
fileName string "[W5-CFAS012-Hybrid-CL20-004] l****9-000001.vmdk" 
parent VirtualDiskFlatVer2BackingInfo parent 
split boolean false 
thinProvisioned boolean false 
uuid string "6000C295-ab45-704e-9497-b25d2ba8dc00" 
writeThrough boolean false 

在 Linux 上我可以读取 uuid 字符串:

[root@lx***** ~]# lsscsi -t
[1:0:0:0]    cd/dvd  ata:                            /dev/sr0
[2:0:0:0]    disk    sas:0x5000c295ab45704e          /dev/sda
[3:0:0:0]    disk    sas:0x5000c2932dfa693f          /dev/sdb
[3:0:1:0]    disk    sas:0x5000c29dcd64314a          /dev/sdc

如您所见,磁盘 /dev/sda 的 uuid 字符串看起来与 VMware API 中可见的字符串有些相似。只有第一个十六进制数字不同(5 对比 6),并且只出现在第三个连字符处。所以这看起来很有希望……

替代想法

按控制器选择磁盘。但是,升序的 SCSI ID 是否也与下一个 vSphere 虚拟磁盘匹配?如果我添加另一个 DVD-ROM 驱动器/USB Thumb 驱动器会发生什么?这可能会在其中引入新的 SCSI 设备。这就是我认为我会放弃这个想法的原因。

问题

  1. 有人知道更简单的方法来映射 vSphere 磁盘和 Linux 设备吗?
  2. 有人可以解释一下 uuid 字符串的区别吗?(我认为这与 SAS 寻址启动器和目标有关......类似于 WWN......)
  3. 我可以使用这些 uuid 字符串可靠地映射设备吗?
  4. SCSI 虚拟磁盘怎么样?那么就没有可见的 uuid...
  5. 这个任务看起来很明显。为什么 Vmware 不考虑这一点,而只是简单地添加一种通过 Vmware Tools 查询磁盘映射的方法?

答案1

使用 SCSI ID 来识别虚拟磁盘。您似乎认为 SCSI ID 是在虚拟机启动时动态分配的。事实并非如此。在虚拟机的属性中,您可以将虚拟磁盘的 ID 设置为您想要的任何值,除非您愿意,否则它不会改变。

相关内容