在小型VMware环境当中,为了最大限度地发挥HA和DRS的作用,虚拟机使用的所有存储都必须对集群中的每一台ESXi服务器保证可用。错误配置共享存储的情况并不少见。花费一些时间来纠正这些错误可以在ESXi主机超过负载或者宕机时避免很多问题。

一个成功的vSphere部署需要包含三个基本部分:多个相同的ESXi服务器、共享存储和vCenter。任何具有多个ESXi服务器的数据中心都应该使用共享存储,并且对于所有服务器集群都保证一直可用。

对于一些vSphere核心技术来说,比如vMotion、分布式资源调度(DRS)和高可用性(HA),共享存储是一个前提条件。vMotion可以在不产生宕机时间的情况下,将一个运行中的虚拟机从一台ESXi主机迁移到另一台上。DRS利用vMotion技术将虚拟机移动到其他的ESXi主机上,以避免产生CPU和内存不足的情况。如果一台ESXi服务器发生故障,vSphere HA会在集群中的其他ESXi主机上重启正在运行的虚拟机。DRS和HA只能用于存放在共享存储上的虚拟机;不论是HA还是DRS迁移,虚拟机在存储上的位置都不会发生改变。

为了最大限度地发挥HA和DRS的作用,虚拟机使用的所有存储都必须对集群中的每一台ESXi服务器保证可用。连续的共享存储使用的配置取决于存储网络类型:光纤通道(FC)、iSCSI还是网络文件系统(NFS)。对于FC和iSCSI存储,需要确保存储阵列对于每个ESXi主机都使用相同的逻辑单元号(LUN)。一些阵列通过使用分组可以轻松实现这个需求,但是其他阵列就需要你为每个主机都单独进行配置。

对于FC,你需要将FC交换机配置在一致的分区当中,以使得所有的主机都能够找到阵列。如果使用的是iSCSI,那么ESXi主机需要使用同样的发现设定、同样的动态发现IP地址列表。

如果使用的是NFS,那么大部分的设定都可以在ESXi服务器上完成。确保在每个ESXi主机上都使用相同的NFS服务器主机名和共享路径。如果一个ESXi主机使用NFS服务器的IP地址,另外一个使用主机名,而第三台ESXi主机使用全限定名,那么vCenter将认为它们使用的是不同的数据存储。NFS服务器主机名和共享路径在所有的主机上都必须是相同的,这样vCenter才能将它们识别为同一个数据存储。可以使用vSphere Command Line或者PowerCLI脚本对ESXi主机的NFS和iSCSI进行自动配置,这样可以更为轻易地确保使用同样的命令来部署每个主机。

在vSphere Client中的Maps标签页下,可以轻松地查看集群的一致性存储。在vSphere Client的主机和集群视图中,选择集群——而不是ESXi主机——点击Maps标签,之后关闭所有从主机到数据存储的依赖关系联线,点击应用关系。现在,就可以看到主机和数据存储的网状连接图了。

如果每一个数据存储都连接到每一台主机上,那么一切都不会有问题。那些只连接到一部分主机的数据存储会引发问题。如果只有一部分主机能够找到数据存储,那么只有这些主机可以使用数据存储来运行虚拟机。没有连接到这些数据存储的主机可能进行了错误的配置。一些数据存储只连接到一台ESXi主机;这通常是ESXi主机内部的本地磁盘,不能进行共享。注意不要将虚拟机放置在本地数据存储上,除非虚拟机只是在ESXi主机上使用,比如vShield代理虚拟机。

开启虚拟机到数据存储的关系会使得网络关系图更加复杂,但是可以显示出哪些虚拟机位于共享存储上,哪些在使用非共享数据存储。如果你的一些虚拟机位于非共享存储上,想一想是否能够通过存储vMotion将这些虚拟机迁移到一个另外的数据存储当中;需要确保目的存储上有足够的空余空间。从VM菜单中选择Change Datastore,选择目标数据存储进行迁移,之后等待。