您是否曾经需要为灾难恢复(DR)解决方案批量恢复Citrix Xen虚拟机,或者只是为了测试备份是否正常工作?HTG解释了如何使用xenphoenix(一个免费的bash脚本)进行VM恢复。
图片来源:Ryan McCurdy via Compfight cc
正如我们在“如何使用Xen pocalypse免费备份Citrix Xen VMs”中提到的,Citrix Xen的优点之一是它的许多特性都是免费的。也就是说,如果您想要“自动VM保护和恢复”功能,就必须开始为“Advance”许可证付费。再次强调,这并不是说我们HTG不重视真正的备份解决方案的价值,而是如果您的预算很紧,已经从虚拟机监控程序中获取了虚拟机映像,并且需要一种自动化“测试还原”/“DR刷新”过程的方法,那么在进行备份之前,您可能会发现Xen Phoenix是一个非常合理的解决方案预算承诺。
“用例”:您有几个需要恢复的vm。在“Xen Center”中使用右键单击导入可以正常工作,但是您希望此过程自动并按计划进行。这个Bash脚本使用“XE”命令来执行其职责。XE是Xen命令行界面(CLI),自动等效于在“Xen中心”中发出“右键单击”。我们将从Cron调用脚本,它将提供“调度”部分。在最简单的形式中,还原流是:
*可以完全禁用deleteallvms行为并支持异常(见下文)。
让我们开始吧:)
XenPhoenix可以使用常规git方法从github免费获得。也就是说,如果你还不精通git,你可以通过这个链接获取zip文件。由于脚本需要在一个Xen服务器上运行,因此应该在那里提取它,以便保留执行权限。
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip unzip master
虽然上面的方法可行,但是建议您使用GIT方法,这样您就可以从将来的更新中受益。
我们需要配置从何处获取VM导出。
在Citrix Xen中随机浏览时,我发现存储库(SRs)可以在“/var/run/sr mount/%UUID%”下使用,其中UUID是sr的唯一标识符,可以从GUI获得。
这意味着我们可以使用常规的“下一步->下一步->完成”向导将“装载”创建到所需的备份位置,然后让脚本使用该路径(这可能会影响从命令行装载,这超出了本指南的范围)。
要创建新的“mount”,请右键单击服务器名称并选择newsr。
在本例中,我们将Xen指向Windows共享,因此选择“Windows文件共享(CIFS)”:
完成下一步->下一步->完成。
获取SR的UUID
要获得SR的UUID,只需在Xen中心单击它的名称并转到“General”选项卡。
要复制UUID,只需右键单击它并选择“复制”。
有了这些信息,您就可以编辑设置文件了。
xenphoenix项目附带了一个“设置”文件模板。应编辑此模板以反映您的设置,并将其作为第一个参数传递给脚本。
设置文件指定以下内容:
此脚本将设置文件作为其第一个参数,并将任何其他参数作为要搜索的“V形符号”(用空格分隔)。符号是“字符串”,它支持正则表达式,这些正则表达式至少表示VM导出所需文件名的一部分。
也就是说,在最简单的形式中,对Xen phoenix的调用如下所示:
./Xen-phoenix.sh settings.cfg DevTools
在上面的情况下,我们在保存脚本的目录中&设置文件和脚本将查找的“Chevron”是“DevTools”。这将导致导入名为“DevTools”字符串的导出目录中的所有文件。
更复杂的示例可以如下所示:
./Xen-phoenix.sh settings.cfg [Aa][Dd] [Bb][iI] [Dd]ev[Tt]ools
其中,在上述示例中,将导入包含单词“devtools”拼写为大写“D”和“T”或非大写字母的文件,以及包含或不包含大写字母的“AD”和“BI”的文件。
如上所述,我们将使用Cron来安排执行。在我们进入配置之前,强烈建议您在Xen服务器上配置已经安装的SSMTP包。虽然这是一个可选步骤,但这样做会给您一个“反冲洗”收集器。拥有这样一个“反冲洗收集器”可能会提醒您脚本无法完成的事情。
通过发出以下命令进入cron的编辑模式:
crontab -e
如果您已按照上述说明进行操作,并且希望添加周日01:31(凌晨1:31)的定时备份,请输入以下内容:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa][Dd] DB [Bb][iI] [Dd]ev[Tt]ools
假设您的脚本和设置文件都在“/root/Xen phoenix master/”下,上述内容是正确的。
我们以前写过sendmail perl程序,所以这里不需要重复。可以说,它在Linux上的工作方式与在Windows上的工作方式相同。
虽然启用电子邮件是可选的,但强烈建议这样做,因为这样脚本将能够:
下载到Xen服务器并解压缩。
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz
请注意将其提取到的位置。设置文件需要它。
Xen Phoenix从它的祖先(Xen Pocalypse)获取一个页面,并允许您使用控制标记从系统范围的删除中精确地排除VM。为此,您需要定义一个新的“自定义字段”。
为此,请打开服务器甚至虚拟机的属性。在导航窗格中,选择“自定义字段”。
如果这是您第一次定义“自定义字段”(如上面的示例所示),那么您将没有“Phoenix\u keeper”字段来输入数据,因此需要创建它。为此,在弹出的对话框中单击“编辑自定义字段”,然后单击“添加…”
创建一个名为“Phoenix\u keeper”的“文本”类型字段。
注意:自定义字段的名称已被“硬编码”到脚本中,因此不能偏离上面的拼写,除非同时更改相关代码。
创建字段后,您应该看到:
关上窗户。您现在应该有“凤凰守护者”字段来填充,如下图所示。
现在,您所要做的就是用一个注释填充这个字段(任何注释都可以),这将导致Xen phoenix在删除时跳过它。
虽然我花了很多精力使脚本尽可能简单易用,尽可能简单,但“世界是一个更大的实验室”。下面的信息可以帮助你确定你的麻烦的来源。
登录中
所有“日志记录”都由运行syslog机制中脚本的Xen主机收集。当然,可以通过以下方式查看:
less +F /var/log/messages
你要找的关键词是“凤凰城”。
注意:Citrix为其服务器的syslog设置了两(2)天保留策略。你可能想在验尸时记住这一点。
调试
如设置文件段中所述,有一个指令用于启用调试。启用调试将导致脚本向控制台输出详细日志记录,并禁止它发送电子邮件和实际执行导入,除非还设置了相关标志。可能的标志在设置文件模板中有注释,它们使您能够精确地定义要调试的内容。
我希望你不需要任何调试,你正在收获我的劳动成果:)
想想所有的贫穷,仇恨和谎言,想象一下你所鄙视的一切的毁灭。慢慢地从灰烬中,凤凰会升起…
...IT基础设施资源优化的相关术语。虚拟化是云计算概念中使用的一种技术。虚拟化是根据需求使用相同的硬件基础架构来构建多个虚拟服务器。例如,假设您需要一个Windows服务器和一个Linux服务器用于不同的用途,您可以使用虚...
... 但与在虚拟机中运行操作系统不同,Qubes使用虚拟化来隔离应用程序。例如,web浏览器与文件浏览器处于不同的环境中。这样,如果漏洞被利用并在系统上执行命令,攻击就会被遏制。 ...
... 差距并没有持续太久。虽然Phoenix操作系统与Remix同时开发,但自从Remix被淘汰后,Phoenix已经成为Windows10修改后的Android仿真器环境的首选。我们有一个关于如何在Windows10系统上安装Phoenix操作系统的教...
想做一台安卓电脑吗?这很简单。基于Android-x86项目的Phoenix操作系统可以在台式机(或笔记本电脑)上安装Android。另一方面,它不会运行Chrome浏览器的完整版本(Chrome非常快)。毕竟,这是一个移动操作系统。 ...
微软团队的特点是与越来越多的第三方服务进行本机集成,包括基于云的文件存储,如Box、Dropbox Citrix ShareFile和Google Drive。将现有存储连接到团队,只需单击几下即可开始共享和协作。 默认情况下,团队允许您通过Microsoft的OneD...
...才能继续存在。一旦窗口关闭,别名将消失。 那么我们如何使我们的别名永久化呢? .bashrc文件和别名 您可能想知道预打包的别名是在哪里定义的。它位于主文件夹的“.bashrc”文件中。当您启动交互式shell时,将读取此文件并...
VirtualBox允许您在创建新的虚拟硬盘文件时选择动态分配的磁盘或固定大小的磁盘。动态分配的磁盘创建速度更快,并且可以扩展到更大的大小。固定大小的磁盘使用起来可能更快,但一旦填满磁盘就不能再大了。如果您愿意,...
...选择不同的文本颜色、背景色和粗体和下划线等格式。 如何工作 颜色方案存储在LS\u COLORS变量中。要查看当前的配色方案,可以告诉Bash打印变量的内容: echo $LS_COLORS 您将看到一长串文件类型和数字代码。我们将自己解释如何...