如何在vSphere数据中心之间复制VM模板?


9

背景/环境架构:

我当前的环境$corp_overlords$是在中心辐射型模型中建立的,该模型具有技术精湛的家庭办公中心(SAN,刀片中心/刀片系统ESXi群集,光纤互联网连接等),该中心连接到许多远程站点分支上,情况不太好,通常包含单个ESXi主机服务器,并通过T1连接到家庭办公室集线器。来自任何远程站点的所有流量都通过“ MPLS网络”(实际上只是将远程站点连接到家庭办公室的T1)路由回到家庭办公室。

在家庭办公室的SAN上,我们创建了许多VM模板,用于从中部署VM。它们存储在NFS卷(即vSphere数据存储)中,该卷附加到vSphere中的家庭办公室数据中心对象。

每个远程站点都有一个对应的vSphere数据中心对象,其中包含一个数据存储对象,该对象已连接到物理上位于远程站点的ESXi主机服务器上的本地连接的存储。

由于这些VM模板存在于NFS卷上,因此它们约占40 GiB(精简配置)。作为NTFS(或Linux FS)上的文件,它们占据约100 GiB。

题:

我该如何在站点之间复制这40 GiB的精简配置数据(占用100 GiB的文件系统空间)?

我受到大约5天的限制,并且不能(明显)干扰“正常的网络流量”。


您在家有一个刀锋中心吗?
Tom O'Connor 2014年

@ TomO'Connor嘿。不是我的家庭办公室,而是公司的 “家庭办公室”站点。虽然,我敢肯定,如果我问的很好,我可以将旧的EVA SAN和HP Bladesystem运走供我个人使用...希望我没有大约25,000美元,这将使我无法在家中运行这些东西。
HopelessN00b 2014年

哦 这使得更多的意义.. 只是
汤姆·奥康纳

Answers:


13

如何使用ovftool直接在主机之间复制模板?

我以前在虚拟机上使用过它,并且效果很好。不确定这是否也适用于模板,但是如果不能,则可以将模板暂时隐藏到VM中以进行复制。

说明和示例

您还可以使用ovftool将模板转换为.ovf程序包,该程序包应非常紧凑,然后使用BITS或FTP或SCP或所需的任何协议在数据中心之间传输程序包。


不错的选择!我经常忘记cli工具。
ewwhite 2014年

我编辑了您的答案,并在其中添加了最后一句话,因为这实际上是我最终要做的。将模板转换成.ovf软件包后,每个模板都需要几个GB,我可以轻松地使用BITS在站点之间进行传输。
HopelessN00b 2014年

8

选项:

我的看法是,我有三种可能的方法,尽管我非常希望我想念一个更好的方法,这里有人可以指出。(理想情况下,我只能以可恢复的“后台”或速度限制的方法移动40 GiB的实际数据。)

  1. 通过vSphere Client在数据存储之间复制文件。
    • 优势:仅移动约40 GiB,而不移动约100 GiB。
    • 缺点:其他所有内容-无法恢复,没有背景/速度限制,接口SUCKS

  2. 使用BITS在Windows guest虚拟机之间复制文件
    • 优点:可恢复的后台传输。
    • 缺点:移动大约60 GiB的数据,实际上并不存在。
    • 奖励:使用PowerShell。<3
    • 双重秘密试用期奖金:借助PowerShell Remoting,可以在一个命令中执行此操作。

  3. 通过SCP在ESXi主机之间复制文件
    • 优势:速度节流且可恢复。
    • 缺点:移动大约60 GiB的数据,实际上并不存在。不后台传输。
    • 奖励:胡须。多余的胡须可恢复。

  4. 建议在“服务器故障”上使用更好的选项。
    • 优点:可恢复,速度受限的后台传输,仅移动约40 GiB的现有数据。
    • 缺点:奖励赏金费用代表。
    • 奖励:学习新知识,证明在工作中玩ServerFault是合理的。

如何使用powerCLI缩小数据存储然后使用BITS移动文件呢?显然首先尝试使用克隆。
内森·C

@NathanC不错的想法,但家庭办公室SAN上的datatstore实际上是2TB NFS卷,它不仅包含所涉及的模板。我们还缺乏SAN上的可用空间,因此我们无法为此分配额外的NFS卷来创建新的数据存储(或四处转移以最终只包含我们需要复制的数据存储一个存储)。
HopelessN00b 2014年

呃,糟糕...任期错。收缩发生在卷上,而不是数据存储上。显然,我需要喝一杯。
弥敦道(Nathan C)

1
选项5.将模板复制到可移动存储中,然后将其发送到远程站点。
joeqwerty 2014年

@joeqwerty是的,sneakernet始终是一个选择。出于非技术原因,也许不是出于此目的,但这并不意味着它不是一般情况下的好答案。(我一直期望有人在某个时候提出联邦快递/ UPS / USPS作为对此的答案。)
HopelessN00b 2014年

5

这对您来说是一个有趣的想法。这对您最初的播种没有帮助,但是我想知道是否使用Crashplan的免费产品之类的东西会对您的模板有所帮助。

https://www.code42.com/store/

它具有重复数据删除和块级别差异,因此您可以将其作为“播种者”安装在总部的一台本地服务器上,并作为“接收者”安装在每台分支服务器上(我认为是在VM中)。将备份设置为仅包括将在HQ Server上存储模板的文件夹。它还可以备份到多个目标位置(例如每个“分支”)https://support.code42.com/CrashPlan/Latest/Getting_Started/Choosing_Destinations

步骤(在两边都设置了Crashplan应用之后)将类似于以下内容:

  1. 将模板从数据存储复制到“种子”服务器,再复制到Crashplan正在监视的目录。在千兆网络上,这可能会花费一些时间,但应该不会太糟。
  2. Crashplan应该监视并开始将文件备份到辐条/接收器。显然,这将需要一段时间。
  3. 初始播种/备份之后,当将来的模板更改时,将其从实际数据存储区复制到“种子”服务器的目录Crashplan正在监视,覆盖了原始模板副本。然后,Crashplan将进行重复数据删除,并且仅将块级更改复制到分支中。

只是一个主意...可能是一条有趣的冒险之路,看看它是否可以作为穷人的重复数据删除/块级复制这些文件。


5

我已经通过多种方式进行了这种移动,但是鉴于您所描述的...

联邦快递或UPS,与一捻...

我知道所使用的服务器是HP ProLiant和Dell PowerEdge服务器。VMware对可移动设备(例如USB)作为数据存储目标没有很好的支持。但是,可以在主站点上使用单个驱动器RAID 0逻辑驱动器(以HP表示)。您可以在HP和Dell系统上添加和删除本地连接的磁盘,并将其用作传输数据存储的方法。

作为模板,您可以通过vCenter将它们移动/复制到本地磁盘。运送磁盘。插入接收独立服务器。阵列和数据存储将通过存储系统重新扫描来识别。复制数据。利润。

我还以此为种子来复制vSphere复制,因为24小时增量比多个完全同步更容易管理。


3

在这种情况下,我经常使用这种方法。这似乎违反直觉,因为您是将文件从存储在数据存储中的VM内部上传到数据存储本身。但是,这使您可以更好地控制转移的完成方式。

  • 使用WinRAR或7Zip将模板分成1GB-2GB的块。
  • 在每个远程站点的ESXi服务器上创建VM。需要最少的资源,这只是一个临时区域。
  • 将VMDK附加到每个足以容纳要传输数据的VM上。
  • 安装您选择的操作系统和传输工具(为此,我使用SFTP服务器)。
  • 将RAR的模板上传到登台VM。
  • 解压缩RAR模板。
  • 使用vSphere或Web UI将模板从登台VM上载到ESXI数据存储。(这将是快速转移)。

优点:

通过将模板分成较小的部分,可以降低传输过程中数据损坏的风险。(如果文件损坏,则只需重新上传RAR的那一部分,而不是整个40GB的文件。)

您仅转移40GB(可能会减少,因为RAR压缩会进一步压缩)。

在您选择的操作系统内进行传输时,您可以选择传输实用程序。

缺点:

您必须创建一个临时VM。我通过使用一个小于1GB的预创建模板(仅安装裸机+ SFTP服务器)来简化此操作。

压缩/解压缩40GB模板大约需要4-6个小时,具体取决于您的CPU资源。


1

我已经处理过相同的问题好几次了,大约有一半的时间,我发现在远程位置上构建新机器要好得多。对于我称之为“模板”机器的情况尤其如此。我的版本是非常基本的机器。您的版本可能有所不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.