环境说明:redhat7.9
虚拟机:VMware 17.5.1
问题场景:
现在需要在两台虚拟机c1和c2上搭建共享磁盘。
打算采用targetcli来创建target用来管理多个LUN
开始在c1虚拟机设置页面添加虚拟磁盘,添加为永久的独立虚拟磁盘。分别为sdb和sdc。
c1创建target完毕之后,c2使用iscsiadm命令成功连接上c1,在使用 /usr/lib/udev/scsi_id -u -g /dev/sdb
查看/dev/sdb的WWN的时候出问题了,发现无法显示WWN(SCSI World Wide Name )。
查阅资料后,需要在关机状态下,c1和c2两台虚拟机的物理存储位置中的c1.vmx和c2.vmx文件中分别加入如下代码,才能启用WWN
disk.locking = "false"
disk.EnableUUID = "TRUE"
OK,加上上述代码重启虚拟机c1和c2后,WWN可以显示了,但是新的问题出现了:共享磁盘中的同一个设备块WWN显示不一致
如图所示:
虚拟机c1:
虚拟机c2(没改hostname前的截图):
为什么?
我们来分析原因,大概有以下几种可能:
(1)确保你比较的是同一个磁盘映像的WWN
(2)两个虚拟机应该共享同一个磁盘,确保它们都连接到同一个磁盘映像
原因1是排除了,只有原因2是错误原因。
查阅相关资料后得知:
虚拟机c1和c2可能连接到不同的磁盘。即使是共享的磁盘,如果它们是两个不同的磁盘映像文件,它们也会有不同的WWN。
看似是c1和c2连接到了共享的磁盘,由于VMware环境中的虚拟化层可能会对存储进行抽象,这可能导致两台机器看到的磁盘WWN不同。这是因为VMware可能会为每台虚拟机提供不同的虚拟化存储视图,从而影响了WWN的识别。这种情况下,虚拟机c2中会看到不同于虚拟机c1中的WWN。
OK,问题清晰了。
查看c1虚拟机的磁盘设置,确实应该指向同一个映像文件。
虚拟机c1设置如下:
虚拟机c2在添加磁盘的时候,需要注意的是要选择 使用现有的虚拟磁盘。
c2虚拟机设置如下:
总结
(1)VMware环境下,虚拟机要想显示块设备的WWN,需要在vmx文件中开启UUID显示
(2)使用共享磁盘的时候,确保多个虚拟机都连接到同一个磁盘映像,WWN才能保持一致