NetApp Tech OnTap NetApp 标识
NetApp Tech OnTap
     
基础知识回顾:FlexClone

本文是介绍常用 NetApp 技术基础知识的“基础知识回顾”系列中的第三篇文章。

在 IT 世界里,会遇到数不清的需要创建数据集副本的情况,最常见的情况是开发和测试应用程序以及配置新虚拟机。遗憾的是,传统副本并不是轻而易举就能获得的。传统副本要占用大量的存储容量、服务器和网络资源,还要花费管理员宝贵的时间和精力。最终,您可能会使用少于真正需要的数量且时间更早的副本来勉强执行操作。

这正是 NetApp FlexClone® 技术旨在解决的问题。FlexClone 最早在 Data ONTAP® 7G 中引入,以支持您为灵活卷(FlexVol® 卷)和 LUN 快速创建节省空间的副本。之前的一篇 Tech OnTap® 文章介绍了一个 IT 团队如何使用以 FlexClone 技术为基础的 NetApp 快速克隆功能(现已纳入 NetApp 虚拟存储控制台 [VSC]),借助灵活快速的重新配置部署了一个 9,000 席位的虚拟桌面环境,而所用存储只是通常所需存储的一小部分。NetApp 在自己的数据中心使用相同的方法进行服务器配置。

使用 FlexClone 技术创建数据副本与采用传统方法创建数据副本。

图 1) 使用 FlexClone 技术创建数据副本与采用传统方法创建数据副本。

使用 FlexClone 技术来代替传统副本,可带来以下显著优势:

  • 快速。创建传统副本需要花费数分钟或数小时的时间。使用 FlexClone 技术,即使是最大的卷,在几秒钟内也可以完成克隆。
  • 节省空间。克隆时元数据会占用少量的空间,以后仅当更改或添加数据时,才占用额外的空间。
  • 降低成本。FlexClone 技术可以将开发/测试或虚拟环境所需的存储减少 50% 甚至更多。
  • 提高开发/测试的质量。可以根据需要为完整生产数据集创建任意数量的副本。如果测试损坏了数据,几秒钟内即可重新开始。开发人员和测试工程师等待访问数据集的时间减少了,真正从事生产性工作的时间增加了。
  • 支持您更加充分地利用灾难恢复环境。使用 FlexClone,您可以克隆并完整地测试灾难恢复流程,或使用灾难恢复环境来进行开发/测试,而不会干扰正在进行的复制。您只需克隆灾难恢复副本,然后在克隆副本上进行开发/测试即可。
  • 加快虚拟机和虚拟桌面配置。几分钟内即可部署数十台或数百台新 VM,所用存储只有少量的增加。

大多数 Tech OnTap 读者可能对使用 FlexClone 对卷进行克隆有所了解。而人们不太了解的是:从 Data ONTAP 7.3.1 开始,NetApp 还支持使用 FlexClone 来克隆单个文件并改进了克隆 LUN 的功能。

本篇“基础知识回顾”文章将介绍如何实施 NetApp FlexClone 技术、最常见的用例、实施 FlexClone 的最佳实践等内容。

如何在 Data ONTAP 中实施 FlexClone

克隆卷

FlexClone 卷具备任何其他 FlexVol 卷具有的所有功能,其中包括增长和缩减功能,并能作为 Snapshot® 副本甚至另一个 FlexClone 卷的源卷。使这一切成为可能的 FlexClone 技术对于 Data ONTAP 管理存储不可或缺。NetApp 存储系统使用任意位置写入文件布局 (WAFL®) 来管理磁盘存储。写入卷的任何新数据不必存储在磁盘的特定位置上,而是可以在任意位置写入。WAFL 只需更新元数据,即可整合新写入的数据。

Snapshot 副本仅创建与卷关联的元数据的副本。随着在 FlexVol 父卷中更改数据,原始数据块仍保持与 Snapshot 副本的关联状态,而不会被标记以进行重新使用。发生的所有元数据更新都只是指针变化。

您可以将 FlexClone 卷视作位于 Snapshot 副本前面的透明可写层。因为 FlexClone 卷可写,所以它需要物理空间来存储写入克隆的数据。Snapshot 副本只是与在父卷中已改写的现有数据相关联;FlexClone 卷将写入其中的数据存储在磁盘上(使用 WAFL),然后也与新数据相关联。Snapshot 副本和 FlexClone 卷所关联的磁盘空间的计算与 FlexVol 父卷中的数据是分开的。

卷级克隆。

图 2) 卷级克隆。

创建 FlexClone 卷时,需要能够识别 FlexVol 父卷,还需要该父卷的 Snapshot 副本以用作基础。Snapshot 副本可以是已经存在的副本,也可以自动创建。FlexClone 卷将获得 Snapshot 元数据的副本,然后在创建克隆卷后更新其元数据。创建 FlexClone 卷只需很短的时间,因为与实际数据相比,复制的元数据非常少。

可以独立于 FlexClone 卷,对 FlexVol 父卷进行更改,因为 Snapshot 副本会记录更改,并且当 Snapshot 副本存在时,会阻止释放原始父卷的数据块。Snapshot 副本的属性为只读,可重新用作多个 FlexClone 卷的基础。由于只有少量元数据需要新的磁盘空间,或是对 FlexVol 父卷或 FlexClone 卷进行更新和(或)添加时才使用额外的磁盘空间,因此非常节省空间。

此克隆卷的方式也可以用于克隆包含 LUN 的卷。通常,在克隆之前,您需要确保卷中的目标 LUN(一个或多个)处于一致状态。NetApp TR-3347:《A Thorough Introduction to FlexClone Volumes》对此进行了详细介绍,此外还提供了更多信息。不过,对于 LUN 克隆,卷级克隆方式在很大程度上已被下述方式所取代。

文件和 LUN 克隆

从 Data ONTAP 7.3.1 开始,您可以在 NAS 环境的 FlexVol 卷中创建文件克隆,或在 SAN 环境中克隆 LUN,而不需要备份 Snapshot 副本。

与卷级克隆类似,克隆文件和 LUN 非常节省空间,因为克隆的副本与源共享相同的物理空间,并且初始元数据所占用的空间微乎其微。仅当改写数据或将数据添加到源或克隆时,克隆的文件或 LUN 才占用额外的空间。由于不需要进行物理数据复制,因此克隆创建是一个快速、节省时间的流程。

文件级或 LUN 级克隆。需要 Data ONTAP 7.3.1 或更高版本。

图 3) 文件级或 LUN 级克隆。(需要 Data ONTAP 7.3.1 或更高版本。)

无论是在为现有文件或 LUN 创建克隆副本期间还是完成克隆之后,创建流程都对客户端访问没有任何影响。在执行克隆流程期间,客户端可以写入源文件或 LUN。克隆流程完成之后,可以从客户端访问克隆文件或 LUN,并像处理任何其他文件或 LUN 那样处理它们。可以删除源文件、源 LUN、克隆文件和克隆 LUN,而不会带来负面影响。

将这些新功能与上述卷级克隆功能结合使用,可以为许多需要同一数据集的多个副本的数据中心问题提供节省空间和时间的解决方案。因为所有冗余文件或 LUN 共享同一底层物理存储,所以可以在卷级、文件级和 LUN 级联合使用 FlexClone 来创建节省时间和空间且功能强大的解决方案,以存储冗余数据集。

FlexClone 还可用来在 SAN 环境的 LUN 中克隆单个文件。Data ONTAP 提供了 API 来支持此功能。不过,还需要主机端支持,以将克隆文件整合至主机文件系统,并使克隆文件对客户端可用。关于此流程以及文件级和 LUN 级克隆各方面的信息,请查看 TR-3742:《Using FlexClone to Clone Files and LUNs》

用例

几乎在需要文件副本、LUN 副本或卷副本的任何情况中,您都可以利用 FlexClone 技术。一些公司甚至通过使用 FlexShare® 管理克隆延迟,在生产环境中成功应用了 FlexClone 技术。如果您拥有大型数据库,那么您会发现,在数据仓库操作以及开发/测试中结合使用 FlexClone 会特别有用。

在本部分中,我将谈一谈两个最普遍的用例:

  • 开发/测试 — 卷级克隆
  • 虚拟环境配置 — 文件级或 LUN 级克隆

开发/测试

因为创建克隆不会造成任何影响,所以您可以更加频繁地更新用于开发工作的克隆生产数据,以便始终使用最新数据而不是陈旧数据来进行测试;相比之下,大多数公司每隔 90 天才更新一次数据。

此外,您的开发人员和测试人员不用共享测试数据库的一个或两个副本,您只需创建黄金副本并多次克隆该副本,让每个人都拥有属于自己的克隆副本,从而方便地开展工作。您还可以执行破坏性测试,而不会对克隆副本之外有任何影响。完成测试后,您只需删除克隆,然后在几分钟内即可创建全新、干净的克隆映像。在最近一篇关于 Oracle11g(TM) 开发的 Tech OnTap 文章中介绍了此方法,文中还介绍了如何将数据屏蔽(用于去除机密用户数据)集成到开发流程中。

您可能拥有一个大多数时间处于闲置状态的灾难恢复环境。使用 FlexClone 技术,您可以克隆与生产环境对应的灾难恢复卷,并将该基础架构投入使用。当您的开发/测试团队处理生产数据的克隆时,可以毫无阻碍地继续对克隆源卷进行复制。

最终结果是大大改善了开发和测试功能,从而能够提高应用程序质量、更加快速地交付应用程序,还可以降低成本。例如,对于一个 100 GB 生产数据库的开发/测试通常是从完整镜像开始,然后为开发人员和测试人员分别提供若干副本。如果我们保守地假定开发人员和测试人员分别需要三个副本,那么存储总需求(包括生产数据库)为 800 GB。保留完整镜像(避免对生产存储造成任何影响)并使用 FlexClone 来创建开发/测试副本可将存储总需求减少到仅 260 GB — 需要的存储减少了 67%。(假设开发/测试卷中的平均更改率在 10% 左右。)快速创建和清理克隆还意味着用户花在等待副本上的时间减少,可以有更多的时间用来工作。

虚拟环境配置

虚拟服务器和桌面环境中的配置也可以受益于 FlexClone 技术。传统配置需要完整副本,并且对于一般大小的 VM,需要 20 到 30 分钟才能完成整个流程。而利用 FlexClone 进行配置,从开始到结束的时间可缩短至大约 3 分钟。

对于 VMware® 环境,文件级克隆可用来创建存储在 VMware 数据存储库(通过 NFS 访问)中的 VMDK 文件的克隆。如果 VMDK 文件存储在通过 FCP 或 iSCSI 访问的 LUN 中的 VMFS 数据存储库内部,则可以使用 LUN 级克隆。可以使用 NetApp 虚拟存储控制台中集成的快速克隆实用程序从 VMware vCenter(TM) 中访问该功能。VSC 不仅处理克隆,而且提供适当的 vCenter 配置和注册。VSC 还支持重新部署现有虚拟机,利用最新修补程序或其他更改使其保持最新。有关使用 NetApp 存储在 VMware 环境中执行配置以及其他管理任务的更多信息,请查看最近的一篇 Tech OnTap 文章

为了在 Microsoft® Hyper-V(TM) 环境中集成克隆,NetApp 提供了 ApplianceWatch PRO for Microsoft System Center。克隆与 XenServer 的集成通过共同开发的 Citrix StorageLink Adapter for NetApp Data ONTAP 提供。

使用 FlexClone 技术

下面几个最佳实践可帮助您成功使用 FlexClone 技术。有关完整详情,请参阅 NetApp TR-3347:《A Thorough Introduction to FlexClone Volumes》TR-3742:《Using FlexClone to Clone Files and LUNs》。一些最佳实践汇总如下。

对于卷级克隆:

  • 一个卷的最大克隆数是 255。
  • 了解如何进行空间预留,并在使用 FlexClone 卷时监控可用空间。可以在许多工具中设置警报,以便在空间变少时发送通知。
  • 克隆卷后,FlexClone 卷包含的数据具有与源卷相同的所有权和权限。可以访问 FlexClone 卷的用户和应用程序也可以访问父卷。对于开发/测试和生产,最好使用单独的用户帐户。这意味着,您应该允许访问 FlexClone 卷,而不是父卷。一种方法是首先在管理主机上挂载/映射每个 FlexClone 卷,按照授权的开发/测试用户的权限更改文件权限和(或)所有权,然后将 FlexClone 卷重新挂载到合适的服务器。
  • 不要克隆通过 NetApp SnapLock® 进行保护的卷。
  • 对于手动创建的 Snapshot 副本,使用的名称最好能够清楚地表明 Snapshot 副本是一个克隆。由于 Snapshot 副本无法重命名,因此您需要知道有哪些以前存在的 Snapshot 副本也用于备份克隆卷。
  • Data ONTAP 将锁定用于备份克隆卷的任何 Snapshot 副本,直到克隆被拆分或毁坏。与 Snapshot 副本卷关联的任何磁盘块都将保持锁定状态,直到删除 Snapshot 副本,才会将其释放供重新使用。
  • 不要删除初始 Snapshot 副本。此快照的存在有助于限制在 FlexClone 卷中可以更改的数据量,并加快对 FlexClone 卷中数据的某些客户端操作。
  • 当 FlexClone 卷被拆分或毁坏时,Data ONTAP 不会自动删除父卷中的备份 Snapshot 副本,因为不知道在什么时候,将来的工作就可能会需要 Snapshot 副本。在删除 FlexClone 卷之后,由您来检查现有 Snapshot 副本,并选择要删除的副本。

对于文件级和 LUN 级克隆:

  • 当前最多可有 255 个指针指向 WAFL 中的块。这意味着您在一个 FlexVol 卷中最多可以将文件或 LUN 克隆 255 次。如果您创建超过该数量的克隆,则将创建物理副本。
  • 创建之后,不会自动为 FlexClone 文件预留空间。无论对源文件预留了多少空间,克隆文件都不具有任何预留空间。要对文件克隆启用空间预留,请使用 file reservation 命令。
  • FlexClone LUN 从源继承空间保证设置。如果在提供与源相同空间保证的情况下,卷中没有足够的空间来创建克隆,克隆流程将失败。请注意,即使启用了空间保证,源和克隆 LUN 也会共享磁盘上的块。
  • 在逻辑一级计算克隆的配额用量。因此,在创建克隆的配额中额外空间所用的空间量等于克隆的总逻辑大小。例如,如果您创建一个 10 GB 文件的克隆,那么源文件和克隆文件在配额中所占的空间总量为 20 GB(源文件和克隆文件分别使用 10 GB)。
  • 因创建文件的 FlexClone 实例使得超出配额限制会给 Qtree 配额及用户或组配额带来不同的结果。创建克隆后,如果所占用的总逻辑使用空间超出 Qtree 所允许的树配额,则克隆操作将失败。
  • 创建克隆后,如果所占用的总逻辑使用空间超出该用户或组所允许的配额,但 FlexVol 卷具有足够的空间来保留元数据或克隆数据,那么克隆操作仍将成功进行。不过,在成功克隆之后,该用户或组的配额将处于“超额申请”状态。
  • 如果 FlexClone 操作所针对的源文件具有访问控制列表或流,则不会克隆 ACL 和流,因此克隆文件也不会存在 ACL 和流。如果您希望克隆文件具有与源文件相同的基于 ACL 的权限,或希望将流附加到克隆文件,则您必须在克隆流程完成之后,单独地对克隆文件进行相应操作。
  • DU -k 命令对于识别文件或 LUN 克隆中的特有块非常有帮助。

将卷级克隆与文件级/LUN 级克隆相结合:

  • 如果您需要为单个文件或 LUN 创建大量克隆,您可以将卷级克隆与文件级/LUN 级克隆两种方法相结合来进行克隆。方法是:在原始卷中创建最大数量的文件或 LUN 克隆(255 个),然后根据需要创建任意数量的克隆卷,从而获得需要的克隆数量。
  • 对于同一卷中的大量文件/LUN 副本,可以创建 255 个克隆。第 256 个克隆将是一个完整副本。然后,您可以克隆该副本 255 次,重复此过程,直至达到需要的数量。
  • 有关这些步骤的完整详情,请参阅 TR-3742:《Using FlexClone to Clone Files and LUNs》

FlexClone 与其他 NetApp 技术的结合使用

当涉及与其他 NetApp 产品的集成时,NetApp FlexClone 技术与 NetApp 重复数据删除有许多相似之处。这是因为两项技术都是通过允许单个存储块有多个指针来指向自身以减少使用的存储量。下面介绍 FlexClone 如何与重复数据删除及一些其他 NetApp 技术结合使用:

  • 重复数据删除。经过重复数据删除的卷的 FlexClone 卷将继承使用重复数据删除所节省的空间。您也可以创建未经过重复数据删除的卷的 FlexClone,并对克隆进行重复数据删除来实现节省,而不用触及父副本。在虚拟环境中,您可以使用 FlexClone 技术来创建非常节省空间的虚拟机,并将其与重复数据删除结合使用,以随时间的推移最大程度地节省空间。
  • 闪存闪存提供智能缓存,可加快 I/O 操作。NetApp FlexClone 技术可提高缓存命中率。如果存在于闪存中的某个块被许多文件或卷共享,那么再次请求此块的几率要高得多。这种效应称为“缓存放大”,对服务器和桌面虚拟化特别有用。

SnapMirror。如果结合使用卷 SnapMirror® 与 FlexClone 技术(在文件级或 LUN 级使用),将会维持空间的节省,这是因为无论您拥有多少副本,克隆都仅复制一次。如果使用 Qtree SnapMirror 和 SnapVault®,则无法节省空间,最终得到克隆文件的完整副本。重复数据删除可用于恢复目标上的空间。

在某些情况下,节省空间的卷克隆将包含有必要进行复制的关键数据。在 Data ONTAP 8.0.1(7 模式)之前,如果使用 Volume SnapMirror 来复制 FlexClone 卷,则会失去节省的空间。目标上的 FlexClone 卷需要的容量与父卷大小相等。从 Data ONTAP 8.0.1 开始,当在标准模式(7 模式)下操作时,只要也复制了 FlexClone 卷的父卷,就可以使用 Volume SnapMirror 来复制 FlexClone 卷,在目标系统上无需额外容量。有关详细信息,请参阅 TR-3446:《SnapMirror Best Practices》

结论

NetApp FlexClone 技术是一个重要的存储效率工具,可以单独使用,也可以与其他解决方案(如 NetApp 闪存、重复数据删除等)结合使用。要了解关于 NetApp FlexClone 的更多信息,请参阅 NetApp TR-3347:《 A Thorough Introduction to FlexClone Volumes》TR-3742:《Using FlexClone to Clone Files and LUNs》

 对 FlexClone 有任何见解?

请在 NetApp 社区中在线提出问题、交流观点、分享看法。

Carlos Alvarez
NetApp 高级技术营销工程师
 


Carlos 于 2008 年加入 NetApp,专门从事存储效率的研究,在重复数据删除、数据压缩和精简配置领域拥有深厚的专业知识。他经常提供将最有效、最合适的 NetApp® 存储效率技术集成到客户配置中的相关指导。Carlos 拥有二十余年的从业经验,曾受邀编写过大量的实施指南、技术白皮书、参考架构、最佳实践和解决方案指南。


Tech OnTap
立即订阅
Tech OnTap 每月发布一次,为用户提供 IT 见解,以及对实际应用的最佳实践、技巧和工具、幕后技术访谈、演示、同行评论等的独家访问。

访问 NetApp 社区中的 Tech OnTap,立即订阅。

相关内容
相关内容
更多“基础知识回顾”

了解 NetApp® 核心技术的基础知识。此系列目前提供了以下三期内容:

相关内容
 
Go further, faster TRUSTe
联系我们   |   如何购买   |   反馈   |   招聘  |   订阅   |   隐私政策   |   © 2011 NetApp