【VMware vSAN】修改虚拟机名称后如何改变在 vSAN 数据存储中的名称。
如果在 vSphere 集群环境修改虚拟机的名字后,虚拟机所在的数据存储文件中的名称并不会改变,我们知道可以通过执行一下 Storage vMotion 操作,以通知虚拟机在数据存储中的改变。但是,这个操作需要环境中至少具有第二个数据存储才能执行 Storage vMotion 来往返迁移虚拟机,最好使用的是共享存储并且具有源虚拟机使用存储差不多的性能,尽管 VMware 支持在非共享存储上执行 vMotion 操作,不过这个过程可能会变得非常缓慢。
如果是 vSAN 集群环境修改虚拟机的名字,若 vSAN 集群中的主机连接了其他共享存储,当然可以按上述操作执行 Storage vMotion 来改变虚拟机在数据存储文件中的名字,不过要是 vSAN 集群环境中只有 vSAN 存储并没有其他共享存储呢,比如下图当前 vSAN 集群中只有 vSAN 存储 vsanDatastore,其他存储都是主机本地存储,没有其他共享存储可供虚拟机执行 Storage vMotion 操作。
通过修改虚拟机 vm-centos7-app 的名字为 vm-centos7-web 后,查看虚拟机所在数据存储(vsanDatastore)文件中的名称并没有改变。如果是当前情况下,我们可能就会放弃进行这个操作或者你想添加共享存储到集群主机上,再完成虚拟机的调整操作,但是这个过程可能就变得非常麻烦了。
其实针对于 vSAN 环境,还有另外一个方法可以完成这一过程,那就是添加第二个 vSAN 存储。在 vSAN 集群的 ESXi 主机上使用 esxcli vsan datastore
命令。
使用 esxcli vsan datastore add
命令,可以在 vSAN 集群的主机上添加一个新的数据存储。注意,该命令仅限于启用 vSAN 的主机。
当前环境是 vSAN 7 U3 版本,这个命令应该从 vSAN 6.7 U3 开始受支持,不过使用命令的选项有些不同,如下图所示。
当前版本增加数据存储的命令需要指定 vSAN 集群的 UUID,可以使用 esxcli vsan datastore list
或esxcli vsan cluster list
命令查看。
使用下面命令,在当前 ESXi 主机上添加新的数据存储。注意,指定 vSAN 集群的UUID 时即为当前 vSAN 数据存储的 UUID。
esxcli vsan datastore add -c 5220203f-e443-1b4c-a10c-e379f9b40c67 -n vsanDatastore2 -u 11111111-1111-1111-1111-111111111111
如果修改名称的虚拟机所在的主机为 101esxi7-a1,那可以直接使用 Storage vMotion 完成虚拟机名称的改变,否则你可能需要在其他主机都执行此命令。
esxcli vsan datastore add -c 5220203f-e443-1b4c-a10c-e379f9b40c67 -n vsanDatastore2 -u 11111111-1111-1111-1111-111111111111
现在,右击虚拟机 vm-centos7-web 选择 Storage vMotion ,选择 vsanDatastore 2 这个新添加的 vSAN 存储,完成迁移。
虽然名称不一样,但其实使用的是同一个 vSAN 存储,所以可以很快完成迁移,这时再到新添加的数据存储文件中查看虚拟机的名称已改变。
最后,再重新将虚拟机 Storage vMotion 到源 vSAN 数据存储(vsanDatastore),即可完成对虚拟机名称的修改操作。
如果想将新添加的数据存储(vsanDatastore2)删除,可以使用 esxcli vsan datastore remove
命令,如果有多台主机则都需要执行此命令。
esxcli vsan datastore remove -u 11111111-1111-1111-1111-111111111111
通过上述操作,我们可以完成在 vSAN 集群环境中只有 vSAN 存储的情况下修改虚拟机在数据存储中的名称。其实这个过程我们也可以使用 PowerCLI 来完成,特别是在集群中具有多台主机的情况下,不用一个一个登录到主机再使用命令完成添加或删除,使用 PowerCLI 一条命令即可完成操作,当然前提是你环境中已经安装 PowerCLI。
连接到 vCenter Server。
Connect-VIServer vcsa7-01.lab.com -User administrator@vsphere.local -Password Password@123
添加数据存储 vsanDatastore3。
Get-VMHost|%{($_|get-esxcli).vsan.datastore.add($null, "vsanDatastore3", "22222222-2222-2222-2222-222222222222")}
查看新添加的数据存储。
Get-VMHost|%{($_|get-esxcli).vsan.datastore.list()}
通过 vSphere Client 查看数据存储,此时你再通过 Storage vMotion 完成对虚拟机名称的修改。
如果完成了虚拟机名称的修改,想删除添加的数据存储,使用下面命令。
Get-VMHost|%{($_|get-esxcli).vsan.datastore.clear()}