手头的任务
将虚拟磁盘添加到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拇指驱动器会发生什么?这可能会介绍两者之间的新SCSI设备.这就是为什么我认为我会抛弃这个想法的原因.
问题
>有人知道映射vSphere磁盘和Linux设备的更简单方法吗?
>有人可以解释uuid字符串的差异吗? (我认为这与SAS地址发起人和目标…… WWN有关……)
>我可以通过使用那些uuid字符串可靠地映射设备吗?
> SCSI虚拟磁盘怎么样?那时没有可见的uuid ……
>这项任务似乎非常明显.为什么Vmware没有想到这一点,只是添加了一种通过Vmware Tools查询磁盘映射的方法?
解决方法
使用SCSI ID标识虚拟磁盘.您似乎认为在VM启动时动态分配SCSI ID.不是这种情况.在VM的属性中,您可以将虚拟磁盘的ID设置为您想要的任何值,除非您需要,否则它不会更改.