VMware View存储最佳实践(3):技术选择

相关阅读:VMware View桌面虚拟化存储实践(1)

VMware View 为您提供六个主要的存储选项:

• 标准共享存储,与用于基础虚拟服务器部署的存储类似

• 存储级精简配置,位于虚拟机级别或卷级别

• 单实例,又称重复数据消除

• 仅存储用户数据并通过网络引导操作系统

• 本地存储

• 分层存储

通过正确使用上述一种或多种技术,可以降低大多数 VMware View 环境的总体存储要求。您在既定环境中采用哪种技术将取决于组织的可用性及性能要求。

标准共享存储

使用标准共享存储的 VMware View 与典型虚拟服务器的存储使用类似。从共享存储上的卷创建逻辑单元号(LUN),并将其提供给 ESX 主机,ESX 主机使用该 LUN 来存储经过完全调配的各个虚拟机。

相对于用于虚拟服务器的 LUN 而言,使用标准共享存储的 VMware View 工作负载所需的 LUN 更大。桌面 工作负载的 I/O 需求通常比服务器工作负载低得多,但相对于其 I/O 需求而言,桌面占用的空间往往较大, 尤其是在应用集安装在模板虚拟机上时。服务器 LUN 可能为 300 GB,而桌面 LUN 可能高达 500 GB。但对于 VMware View,基于阵列的快照可能需要更小的 LUN,因为使用基于阵列的快照会影响存储子系统的性能。

仅对于某些具有特定要求的桌面类型,才应将标准共享存储与 VMware View 一起使用,例如用于特定用户或者信息技术人员的一次性应用集,也可能是在只需要有限数量的桌面的小型 VMware View 实施中。

精简配置

精简配置术语用于描述减少存储子系统上所用存储空间量的多种方法。主要方法包括 :

减少虚拟机磁盘文件中的空白部分。

通过在相同卷内克隆虚拟磁盘文件,仅向卷上的一小部分区域执行写入操作,大量虚拟机共享一个基础映像, 从而减少相同虚拟机所用的空间。

通过在共享存储设备内对整个卷进行精简克隆,来减少一组克隆虚拟机所用的空间。每个卷本身都有基础卷的虚拟克隆。

您可以先对某些类型的标准共享存储进行精简配置。然后克隆各个虚拟机或克隆包含这些虚拟机的整个卷。 您可以在存储层创建此克隆。虚拟机的磁盘写入可能会进入某种类型的快照文件,或者用于克隆各个虚拟机或卷的存储子系统可能会跟踪数据块级写入。

您可以在许多区域使用精简配置方法,也可以对精简技术分层使用或组合使用,但应评估这些技术在分开使 用或组合使用时对性能的影响。分层方法从理论上讲是不错,但由于存储子系统中使用了查询表,因此效果 可能并不理想。您必须在存储要求上的降低与给定解决方案为设计增加的开销这两个方面进行权衡。

虚拟机空白部分

减少虚拟磁盘文件中的空白部分是指消除虚拟磁盘文件中未使用的空间。虚拟机所用的存储取决于磁盘文件 中实际的数据量。例如,使用 ESX 时,默认情况下会对 NFS 装载上的 VMDK 文件进行精简配置,这样的话, 一个具有 24 GB 数据的 40 GB VMDK 在经过精简配置后可以使用 24 GB 的存储。

对各个虚拟机进行精简配置

一段时间以来,在虚拟化管理程序级共享基础 VMDK 虚拟磁盘一直都是一种在技术上可行的方法。通过这种 方法,您可以利用具有多个虚拟机快照的基础 VMDK 文件,无需手动配置或自定义 .vmx 文件。由于此方法利 用了虚拟机快照,因此可以大幅减少存储,无需借助任何其他存储精简技术。

您还可以在存储子系统内共享基础映像。与在虚拟化管理程序级上共享 VMFS 卷内的 VMDK 一样,某些存储 设备也可以在存储层上共享基础 VMDK 映像文件。在存储层进行共享,而不在 VMFS 卷内使用快照,这可以 大幅提高可扩展性。提高比例可以达到 1:20 甚至更高。

文件层精简配置提示

配置客户操作系统,使其可以使用 Microsoft 的 Sysprep 实用程序进行复制。

密切关注各个虚拟机如何写入数据。例如,请不要在各个虚拟机克隆中安装大型应用,而是返回至基础映像并对其进行更新。

了解 Windows 页面文件的使用情况。某些虚拟机使用情形可能会导致基于阵列的快照和性能方面的异常问题。

对整个数据存储进行精简配置

在数据存储级别利用精简配置可以提供更多的存储精简机会。您可以克隆整个数据存储,而不是各个虚拟机, 并将其作为不同的数据存储提供给 ESX 集群。但是,如果在共享存储设备的存储子系统中对存储进行虚拟克隆, 则该克隆实际上不会使用两倍的存储。

此方法的原理是,您对原始的黄金级基础数据存储进行虚拟克隆,因此可以对具有多个(20 或更多)虚拟机 的数据存储进行多次虚拟克隆。然后,您可以分别打开并使用每个虚拟机,而对于全部 100 个或更多虚拟机, 您将仅使用原始黄金级基础数据存储占用的公共存储空间。

这种类型的精简配置严重依赖于存储制造商的快照技术。有些存储供应商可提供比其他供应商更好的性能。

数据存储层精简配置提示

对于 VMFS 数据存储,在 vCenter 中启用 enableresignature 选项以使用克隆数据存储。

与文件层配置一样,基础数据存储中的虚拟机中的客户操作系统必须处于可复制的状态。使用 Sysprep,准备好在打开虚拟机时即对其进行修改,包括新主机名、SID、域成员身份和网络连接信息。

性能不会是线性的。可能需要多个基础映像数据存储。每个基础数据存储的克隆的可扩展性主要取决于存储供应商的快照方法和效率。

注意 VMFS 数据存储和 NFS 装载对每个卷上 LUN 的限制。

精简配置摘要

预计可以将多种精简配置方法结合使用来压缩 View 存储。将来,可以将映像级精简配置与数据存储虚拟克隆 结合使用。这些解决方案的可扩展性非常有前景,尤其是在使用 NFS 时。但是,对于 View 应用的真实场景, 几乎尚无准确的现场数据。

单实例

共享存储数据的单实例(即重复数据消除)的概念非常简单 :系统在共享存储设备上搜索重复数据,并通过匹配相同的数据来减少所需的实际物理磁盘空间量。重复数据消除是数据库领域的一个概念,管理员为此术 语赋予的含义是在合并数据库中搜索重复记录。在共享存储中,重复数据消除是用来查找并删除重复数据对象(文件、块或数据块)的算法。存储系统中的原始指针会被修改,以便系统仍可以查找该对象,但磁盘上的物理位置会与其他指针共享。如果写入数据对象,则写入会进入新的物理位置,并且不再共享指针。

重复数据消除的方法各种各样,而且有关重复数据消除可为一线存储带来哪些好处的可用信息也可能是误导性的。

不管是哪种方法,重复数据消除都基于两个元素 :哈希值和索引。

哈希值

哈希值是提供给每个对象的唯一数字指纹。哈希值通过一个公式产生,在该公式中,同一个哈希值不可能使用两次。但有一点需要注意,那就是两个对象可以具有相同的哈希值。某些线内系统仅使用基础哈希值,这种方法可能会导致数据损坏。缺乏对重复哈希值的辅助检查的任何系统都可能给您的 VMware View 部署带来 风险。

索引

索引使用哈希目录或查询表。 存储子系统使用哈希目录确定重复记录,即使在它们当前未执行磁盘读取和写入操作时也是如此。此方法使索引可以独立工作,而不管本机磁盘的使用情况。

存储子系统使用查询表将哈希目录扩展到不支持多个数据块引用的文件系统。查询表可以在系统 I/O 和本机文 件系统之间使用。不过此方法的劣势是,查询表可能会导致失败。

重复数据消除的应用

在备份存储市场中,重复数据消除具有明显的优势。重复数据的量可能是巨大的。20:1 甚至更高的比例都是很 常见的。备份中的相同数据甚至更多,相对于一线虚拟机工作负载而言,在备份中执行重复数据消除时的速 度往往慢得多。

两种重复数据消除方法是线内(实时)重复数据消除和写入后重复数据消除。选择哪种方法主要取决于您使 用的存储类型。写入后重复数据消除是您应在 View 体系结构中考虑的主要方法。线内重复数据消除的速度尚 未快到能够满足大型基础架构的速度要求。它主要是一种备用方法。

线内重复数据消除现在主要部署用于备份和存档,它可以实际跟踪对象记录,并仅将不重复的数据块写入(通 常是专有的)后端文件系统。这种方法需要两个文件系统,一个在前端,一个在后端。它必须在向磁盘写入 数据之前搜出重复的对象,而且必须非常快速地完成此操作。随着处理器计算能力的提高以及固态磁盘成本 的降低,线内重复数据消除将成为一线存储越来越可行的一种选择。

供应商现在也在此领域做着巨大的努力。但线内重复数据消除仍缺乏 View 存储所需的成熟度。

使用写入后重复数据消除时,将在数据写入磁盘后再执行重复数据消除。这样就可以在系统资源空闲时执行 重复数据消除过程,不会干扰一线存储的速度。但是这种方法也有劣势,那就是它需要获得足够的空间先写入所有数据,然后再整合数据,因此您必须在您的存储体系结构中规划出该临时使用的容量。

网络引导的操作系统

通过网络将操作系统直接引导至虚拟或物理设备是一个相对比较新的概念。仅在过去的几年,该技术已经成 为标准方法(即使用已安装的操作系统)的替代方法。

这种技术允许设备通过网络从一对一的映像或共享映像引导操作系统。操作系统的磁盘驱动器是远程服务器 上的一个映像文件。虚拟机通常会使用 PXE 引导至映像服务器,然后,映像服务器会通过网络为引导虚拟机 提供正确的虚拟磁盘。

此技术所用的协议与专用于网络的 iSCSI(原始本地 SCSI 封装在 TCP/IP 数据包中)非常相似。 当映像服务器提供虚拟磁盘作为只读映像(每个虚拟机实例有一个私有写入磁盘)时,流式传输增加了另一个注意事项。此写入磁盘中存有自引导计算机以来所做的全部更改。您可以将缓存存储在各个位置,包括虚拟机的 RAM、本地硬盘或者网络文件服务器上的文件。虚拟机关闭时,所做的更改将消失,除非映像被配置 为将写入映像保留在文件服务器上。

您还可以设置私有一对一映射。您仍然必须要为各个磁盘文件提供存储,但在这种情况下,存储位于映像服务器上。

通过网络引导的优势

节约 SAN 存储空间 — 每个虚拟机只需一个很小的 VMDK,因此似乎只需本地磁盘即可正常运行。

速度 — 几乎瞬间即可部署新虚拟机。

灵活性 — 您可以非常轻松地更改虚拟机正在引导和查看的内容,而且可以非常轻松地更新将许多单独的虚拟机部署在池中的一个基础映像。

通过网络引导的劣势。

目前无法脱机工作。

默认情况下仅支持非永久池。

网络流量繁重。提高了服务器硬件要求。

在大型部署中每个映像服务器都存在扩展问题。

由于只在一个位置上存放私有映像,因此引发访问问题。如果映像服务器出现故障,则这些桌面就无法访问, 这样您可能就无法满足桌面虚拟机的 SLA。

小心 :如果从单个映像主机流式传输私有唯一映像,则缺少该主机可能会导致服务中断。

本地存储

您可以使用本地存储(服务器中的内部备盘磁盘驱动器),但 VMware 不建议使用此方法。在决定是否要使用本地存储时,应考虑以下几点 :

无法与商用存储阵列性能相匹配。本地磁盘驱动器可能具有所需的容量,但却没有存储阵列的吞吐量。拥有的磁盘轴越多,吞吐量越好。

使用本地存储时,无法使用 VMware VMotion? 来管理卷。

本地存储不允许您跨资源池使用负载平衡。

本地存储不允许您使用 VMware High Availability。

您必须管理和维护本地存储和数据。

克隆模板以及从模板克隆虚拟机比较困难。

分层存储

分层存储已经问世多年,最近因其节约成本也得到关注。如果要问什么是分层存储,您可能会获得从“一种数据分类方法”到“实施新存储的技术”的不同答案。分层存储确实是硬件、软件和流程(允许公司基于数据的价值或者对公司的重要性更好地对数据进行分类和管理)的组合。 在任何公司实施分层存储环境的计划中,数据分类都是相当重要的一部分。如果不进行这种分类,几乎不可能将正确的数据放在正确的存储层中。例如,您希望将最重要的数据保存在快速的高 I/O 存储上,即固态磁盘驱动器 (SSD) 或光纤通道中,而将不太重要或者不常访问的数据保存在相对比较便宜的驱动器上,例如 SAS 或 SATA。通过做出这种更改,您可能会体验到更快的访问速度,并获得更佳的存储性能,因为您已经从那些 存储设备中有效转移了非重要数据及其访问用户。此外,网络速度的加快可以提高访问速度,进而提高响应能力。 实施分层存储环境时,并不是只有一种“正确”方法。根据公司的业务需求、公司的数据分类计划以及对存储环境的硬件、软件和日常维护的预算,实施过程也有所不同。

将 View Composer 副本和链接克隆存储在单独的数据存储上

VMware View 4.5 及更高版本提供分层存储选项。您可以将 View Composer 副本存储在 SSDD 上,而将链接克 隆存储在相对比较便宜的驱动器上,例如 SATA。借助这一新的分层存储选项,可以加快密集型操作(例如同 时调配许多链接克隆)的速度。

举例来说,您可以将副本虚拟机存储在基于固态磁盘的数据存储上。固态磁盘具有较低的存储容量和较高的 读取性能,通常支持每秒 20,000 次 I/O (IOPS)。固态磁盘也是比较昂贵的。但是,View Composer 为每个 ESX 集群上的每个 View Composer 基础映像快照只创建一个副本,因此副本不需要很多存储空间。当在许多 链接克隆上同步执行某项任务时,固态磁盘可以提高 ESX 读取副本的操作系统磁盘的速度。

链接克隆可以存储在比较传统的基于旋转介质的数据存储上。这些磁盘提供的性能较低,通常支持 200 IOPS。 它们比较便宜,可提供高存储容量,因而适合用于将许多链接克隆存储在大型的池中。ESX 不需要在链接克隆 上执行密集型的同步读取操作。

通过这种方式配置副本和链接克隆可以降低当同时创建许多链接克隆时出现的 I/O 风暴所造成的影响。

注意:此功能专用于高性能磁盘解决方案供应商提供的特定存储配置。如果您的存储硬件不支持高读取性能,请不要将副本存储在单独的数据存储上。此外,您在为链接克隆池选择单独的数据存储时,必须要遵循特定的要求 :

如果共享副本数据存储,则该数据存储必须可从集群中的所有 ESX 主机访问。

如果共享链接克隆数据存储,则必须共享副本数据存储。仅当您在同一台 ESX 主机上的本地数据存储上配 置了所有链接克隆时,副本才能位于本地数据存储上。

注意 :仅在 vSphere 模式下才支持此功能。链接克隆必须部署在运行 ESX 4 或更高版本的主机或集群上。

将副本存储在单独的数据存储或共享数据存储上时的可用性注意事项

池的可用性是需要考虑的另一个事项。将副本与链接克隆存储在相同的数据存储上时,View Composer 会在每 个数据存储上创建一个单独的副本,以提高可用性。如果某个数据存储变得不可用了,则只有该数据存储上的链接克隆会受影响。其他数据存储上的链接克隆可以继续运行。

将副本存储在单独的数据存储上时,池中的所有链接克隆都将绑定到该数据存储的副本上。如果该数据存储 变得不可用了,那么整个池都将不可用。

要提高链接克隆桌面的可用性,您可以为存储副本的数据存储配置高可用性的解决方案。