3.6 数据存储
在VMware中,存储空间被称作数据存储(datastore)。数据存储是保存VM、模板或者ISO映像的存储资源的虚拟表现形式。数据存储隐藏了不同技术和存储解决方案的复杂性,为ESX服务器提供一个统一的模型,无须考虑实现的存储类型。数据存储的类型有VMFS和NFS。
注意:VMware的最佳实践建议适当地将用于存储模板或者ISO映像的数据存储与用于VM的数据存储分离。我们还建议监控数据存储的可用空间。应该始终有至少25%至30%的可用空间。这些空间对快照或者备份操作以及VM交换来说是必需的。缺乏空间可能造成严重的后果,并且可能影响虚拟环境的总体性能。
数据存储群集又称数据存储池(Pool Of Datastore,POD)是一组集合起来形成单个实体的数据存储,如图3-15所示。创建数据存储群集时,可以使用存储 DRS。
数据存储群集可能包括来自不同存储阵列(从性能和容量的角度看)的卷,而且可以混合不同的VMFS(VMFS-3和VMFS-5),但是通常不建议这么做。在数据存储群集中不支持混合VMFS和NFS卷。
3.7 Storage vMotion
Storage vMotion允许不同存储空间之间VM虚拟磁盘的热迁移。组成VM的所有文件从一个数据存储迁移到同一个存储阵列或者不同存储阵列中的另一个数据存储不会造成服务中断。存储阵列可以来自不同的制造商。
注意:vMotion从一个物理服务器上将VM迁移到另一个服务器,但是不移动组成VM的文件。Storage vMotion移动虚拟磁盘。这两个操作不能同时在同一个VM上进行,除非关闭这个VM。
3.7.1 何时使用Storage vMotion
Storage vMotion用于存储阵列的预防性维护操作,对于购买新的存储阵列也可能很有用,因为它不需要服务中断。迁移很容易以完全透明的方式进行。这将管理员从这一在传统物理环境中常常很麻烦和敏感的任务中解放出来。Storage vMotion允许管理员更换存储阵列制造商和迁移VM,而不需要复杂的兼容性矩阵。
注意:在存储级活动很少时使用Storage vMotion是首选。用Storage vMotion进行迁移之前,必须确认源和目标ESXi服务器之间有足够的存储带宽。
3.7.2 Storage vMotion的工作原理
vSphere 5中对Storage vMotion进行了一些改进。过去曾经使用多种技术。在vSphere4.1中,用脏数据块跟踪(Dirty block tracking)在源和目标之间复制磁盘数据块:全复制,然后仅向目标发送修改过的块
。(脏数据块跟踪是变更数据块跟踪模式的一种形式)这种技术的问题是切换到目标VM的时间以及源VM中大量I/O负载下的故障风险。在vSphere 5中,如图3-16所示,Storage vMotion建立VM的全复制,然后使用一个镜像驱动程序在源和目标VM之间分离写入修改的数据块。
I/O镜像对于连续的磁盘复制是首选的方法,因为它的优点是即使在目标VM速度缓慢的情况下也能保证迁移成功。迁移将更简短,更可预测。
使用Storage vMotion时会发生如下现象:
1)VM的工作文件夹被复制到目标数据存储。
2)VM的一个映像(称作影子VM,shadow VM)使用复制的文件在目标数据存储上启动。影子VM处于暂停状态。
3)Storage vMotion激活一个驱动器(称作镜像驱动器,mirror driver)将已经复制的数据块镜像写入目标数据存储。
4)目标数据存储的VM磁盘文件复制完成,同时I/O被镜像。
5)Storage vMotion暂停源VM并将正在执行的源VM传送给影子VM。
6)旧的文件夹和VM磁盘文件被从源数据存储中删除。
注意:原始文件只在目标文件被正确写入且发送了确认消息之后才被删除,确保了操作的成功。
Storage vMotion在企业版中可用,可以用于具有快照的VM,也支持链接复制的迁移。
3.8 存储 DRS
存储 DRS(SDRS)能够自动化选择VM使用的数据存储,有利于更平衡的性能和更有效的存储空间利用。这节约了管理员的时间,他们不再需要花费时间选择所用的数据存储。为此,数据存储被集中到数据存储群集中。
SDRS负责如下操作:
VM初始定位
根据如下因素在数据存储之间均衡负载:
存储空间的使用
根据延时确定的I/O负载
初始定位发生在VM创立、移动或者复制的时候。根据集群数据存储的已用空间和I/O负载,SDRS提供特定的数据存储来保存vmdk。
3.8.1 数据存储负载均衡
负载均衡每两个小时根据已用空间,每8个小时根据最近24个小时的历史数据确定的I/O负载进行。如图3-17所示,在数据存储超过用户定义的磁盘已用空间(默认为80%)和I/O延迟(默认为15毫秒)阈值时,SDRS做出迁移建议。
自动化有多个级别:
手工(默认)
自动化
规划(定时)。例如,规划模式在备份期间很有趣,它不必移动虚拟磁盘,因而可以在备份操作期间禁用SDRS。
数据存储维护模式。数据存储的维护模式从数据存储中删除所有vmdk,并将它们分布到群集的其他数据存储中。
这时,你可以问,“SDRS如何检测数据存储I/O负载?”
SDRS使用SIOC功能和注入器机制选择最佳的目标数据存储。注入器用于随机地“注入”I/O以确定每个数据存储的特征,这能确定与每个数据存储的响应时间和延时。
3.8.2 亲和性规则
如图3-18所示,可以应用多种亲和性规则。
VM内vmdk亲和性:所有相同的vmdk VM被放在同一个数据存储中。
VM内vmdk反亲和性:这条规则可以用来确保vmdk被放在不同的数据存储上。这条规则很有用,例如,这条规则可以用于分离数据库VM的日志磁盘和数据磁盘。该规则适用于VM中的所有或者部分磁盘。
VM-VM反亲和性:不同VM被放在不同的数据存储中。这提供了VM在数据存储故障时的冗余性。
SDRS目前有如下限制:
SRM不支持SDRS。
SDRS只能用于ESXi5或者更高版本的主机。
3.8.3 配置驱动存储
配置驱动存储(Profile-driven storage)维护VM和规定存储需求的相容性。这种功能消除了初始定位错误,通过自动化简化了管理员的日常管理工作。管理员建立包含存储特征的配置文件。这些配置可以使用vSphere Storage 存储检测API(VASA)实施,或者与用户定义的指标关联(例如,Gold、Silver、Bronze)。
VM配置文件在部署、创建、迁移、复制等期间使用。如果VM被放在提供存储配置文件定义的容量的存储空间中,这个存储就是相容的。配置驱动存储补充了SDRS的初始定位和vmdk的自动化迁移。