配置虚拟机实例以实现快速恢复

作者:Jeffrey McDonald

我们都经历过——当你成为某个领域的“专家”后,人们就开始敲你的隔间门。对我来说,这种特殊的情况最近就发生了。

那是一个典型的星期三下午,我像往常一样处理着 IT 系统工程师的日常任务。你知道的,重启 Windows 服务器,应用没完没了的安全补丁等等。Linux 服务器一切正常。没什么可做的,只是检查日志、备份,然后暗自窃笑它们的正常运行时间。

所以我正坐在我那豪华的 8 英尺 x 8 英尺的隔间里,惬意地喝着一杯星巴克,这时它发生了。我听到身后传来急促的呼吸声。有点像达斯·维达,但没有闪亮的黑色头盔。你知道在这种情况下你的脑海中会闪过什么:有人遇到了紧急问题,并且指望我为他们解决。

一位新晋的项目经理站在我面前,开始滔滔不绝地说,某个业务部门需要在一个半天内准备好一个新的开发/测试环境——计划得真好,是吧?我的脑海中已经开始想到深夜和可能被毁掉的周末。你看,他们希望我在场,以便在他们测试项目最后开发阶段的不同代码版本时,构建和重建 Windows 服务器。如果程序或活动搞砸了服务器,他们需要有人快速重建和配置服务器,以便继续进行测试。好吧,没问题。

现在,我是一个拿工资的人。这里不可能有额外的加班费,只有一句热情的“你可以帮我们处理这件事,对吧?很好。我得走了!”那么,解决方案是什么呢?你猜对了——Linux 来拯救了。如果你读过我之前在 Linux Journal 网站上发表的关于使用和配置 Linux 与 VMware GSX 服务器的文章,你可能已经知道我要说什么了。通过使用在 Red Hat Linux 服务器上运行的 VMware GSX 服务器产品,我可以托管几乎任何操作系统的多个实例。为了解决这位“最后一分钟”项目经理的问题,我们可以使用在 Linux 主机服务器上运行的 Windows 2000 AS 虚拟实例来处理请求业务部门的所有测试需求。

除了能够在单个 Linux 主机服务器上运行多个虚拟服务器实例很酷之外,能够轻松管理或回滚虚拟服务器实例内的操作系统和应用程序更改就更酷了。

VMware 在其服务器和工作站产品中都使用了一种称为磁盘模式的东西。这些模式使您能够控制哪些更改被写入虚拟实例内的磁盘,以及哪些更改可以被撤销或回滚。可用的三种磁盘模式是持久模式、可撤销模式和非持久模式。第一种模式,持久模式,顾名思义就是这样。在实例上安装或更改的任何内容(应用程序、配置更改等)都会像正常情况一样提交到磁盘。一旦操作系统将数据提交到磁盘,它就会永久存在(好吧,直到它崩溃)。

使用可撤销模式,您可以选择保留或放弃在工作会话期间对服务器所做的任何更改。所有更改都保存在一个重做日志中,该日志允许您将更改提交到磁盘或完全回滚更改。使用这种模式比卸载您添加的所有内容并尝试清理注册表中的混乱要快得多。

最后,我们有非持久模式,也称为管理器或测试器模式。这种模式真正可以为我们那位仍然在我们耳边唠叨的项目经理朋友节省时间和头痛。将虚拟机实例置于非持久模式可以让测试人员用他们的测试代码和应用程序随意折腾。如果他们搞砸了服务器或需要重新开始,我们所做的就是关闭服务器并重新启动它,一切都焕然一新。你看,一旦虚拟机服务器按照我们想要的方式构建和配置好,我们就将磁盘置于非持久模式。这样,我们每次虚拟机服务器启动时都有一个干净的构建。如果测试人员破坏了服务器或者代码行为异常,我们只需重启实例并重新开始。

作为额外的奖励,一旦创建、配置并准备好第一个虚拟机服务器实例,我们就可以停止该实例并克隆它。这为我们提供了精确的克隆备份实例,以备不时之需。如果需要更多服务器,它也适用。这些备份实例可以在几分钟内上线并准备就绪。我们说的是五分钟与每台服务器两小时或更长时间的对比;用物理硬件或 Norton Ghost 试试看。

要利用这些磁盘模式(同样,这适用于 GSX/ESX 或 VMware 工作站环境中的虚拟机实例),请在 VMware 远程控制台中打开虚拟机实例的配置编辑器。请务必在虚拟机服务器关闭的情况下执行此操作。接下来,选择适当的磁盘设备列表(SCSI 或 IDE)和活动磁盘。在右侧的框中,选择“模式”下拉菜单,然后选择您要使用的特定模式。如果您在 Windows 下使用远程控制台,则此步骤看起来略有不同(图 1)。单击“确定”并重新启动虚拟机服务器。就这么简单。

Configuring a Virtual Server Instance for Quick Recovery

图 1. Windows 下的虚拟机服务器远程控制台

请记住,您可以随时根据需要更改模式。例如,如果您当前在持久模式下运行,但需要测试服务包,您可以停止实例并将磁盘置于非持久模式。这样,如果出现问题,您可以将其回滚。否则,如果一切顺利,您可以在确认安全后提交更改。非持久模式的另一个用途是创建一个安全的环境,看看新病毒会对 Microsoft 操作系统以及最终对您的生产服务器造成什么影响。

最后,一个警告。如果您计划在 Linux 上运行 GSX 虚拟机服务器,请务必使用 VMware 支持的最新内核版本和 ext3 文件系统。相信我,您不希望所有虚拟机服务器都运行在 ext2 文件系统上,尤其是在断电时。我丢失了一个完整的分区,并且找不到可用的超级块来恢复(不,这不是生产环境的机器,UPS 已经更换了)。使用 ReiserFS,我从未遇到过问题。

再次衷心感谢 Linux 和 VMware 的好人们。结果证明我的周末并没有泡汤,测试也顺利进行(再次感谢可撤销模式)。

凭借 Linux 提供的性能和稳定性,我可以在一台服务器上运行多个虚拟机服务器,为我们的 IT 部门节省大量资金,而且没有人知道其中的区别。事实上,除非业务合作伙伴或客户询问,否则他们甚至不知道他们正在使用虚拟机服务器。不问,不说。

资源

VMware

Red Hat, Inc.

Jeffrey McDonald 是加利福尼亚州中部一家财富 500 强公司的 UNIX 系统工程师。

加载 Disqus 评论