创立于 2008 年 · 数字版 · 2026年6月15日

SMB IT Journal

面向小型企业的信息技术资源

中文
最佳实践

即便只有一台服务器也要虚拟化

我发现,在涉及虚拟化的讨论中,整合(consolidation)这一概念非常常见——在服务器虚拟化的语境下,它指的是把多个原本独立的物理工作负载放到单一物理机箱上,由虚拟机的隔离边界来实现彼此分离——而这一概念常被当作虚拟化的核心要义和根本特性。毫无疑问,工作负载整合代表着虚拟化所带来的一个绝佳机遇,但极为重要的是,不要把虚拟化的价值与整合的价值混为一谈。我太常发现,整合被视为虚拟化的关键价值以及采用它的首要理由,但事实并非如此。整合是一项额外的加分特性,但在为虚拟化辩护时绝不应当依赖它。虚拟化几乎应当是一个不言而喻的既定结论,而整合则必须经过评估,并且很多时候根本不会被采用。“这些工作负载不应当被整合”这一点,绝不应当导出“这些工作负载不应当是虚拟的”这一信念。我想探讨一下虚拟化的决策空间,看看我们究竟应当如何看待这一点。

虚拟化应当被理解为硬件抽象,因为从务实的意义上讲,它本质上就是如此。虚拟化将硬件封装起来,向来宾操作系统呈现出一套可预测的、纯净的硬件集合。这听起来似乎增加了复杂性,但实际上,它反而简化了许多事情,无论是对操作系统和驱动程序的制造者而言,还是对设计系统的 IT 从业者而言。正是因为计算机、计算机外设和操作系统都是如此复杂的庞然大物,这一额外的抽象层才反而通过创建标准化的接口,最终从系统中消除了复杂性。标准化带来简单性。

这种向软件层呈现一台标准虚拟机的完全相同的理念,也存在于计算领域的其他方面,例如许多编程语言的实现方式。这是一种非常成熟且可靠的计算模型。

仅凭硬件抽象及其所带来的稳定性,就已足以构成全面将虚拟化标准化的理由,但如今我们可用的所有企业级虚拟化产品在实现硬件抽象时所具备的务实特性,还为我们带来了更多重要的功能。诚然,虚拟化的大多数益处都能以某种其他方式获得,但很少能像通过虚拟化那样完整、可靠、简单或免费地获得。

最大的一组额外功能通常来自对存储和内存的抽象,它使我们能够对存储——甚至对一台虚拟机的整个运行状态——进行快照,也就是为正在运行的系统拍下一张映像并将其存为一个文件。这种能力带来了许多极为重要的本领,例如能够在安装新软件、更改配置或打补丁之前为系统拍下一张快照;从而在出现任何差错时实现极其迅速的回滚。这一看似微不足道的功能,能够带来极大的安心感以及系统整体的可靠性。它还使得在非生产环境中测试功能、进行回滚或反复测试变得非常容易。

从抽象层进行快照的能力,还带来了进行“基于映像的备份”的能力,也就是通过快照机制在块设备层进行备份,而非从操作系统的文件系统层进行备份。这使得备份机制可以与操作系统无关,并且备份能够一次性涵盖整个系统的存储池。映像备份实现了传统上所称的“裸机恢复”(bare metal restore)——无需任何额外交互,便可将整个系统恢复到完全运行的状态——既轻松又极其迅速。并非所有的虚拟机监控程序(hypervisor)制造商都包含这一能力,或以同等的程度包含它,因此尽管从概念上讲这是一项重大功能,但关键在于必须针对具体情况逐一考量这一功能存在的程度或其许可授权的情况(值得注意的是,HyperV 完整地包含了它,XenServer 部分地包含了它,而 VMware vSphere 只在非免费的许可级别中才包含它)。在具备这一能力的情况下,基于映像的备份能够以其他备份方法论难以想象的速度实现极其迅速的恢复。从灾难到恢复,在几分钟内还原系统是完全可能的!

将虚拟机视为文件(至少在其未处于活动运行状态时)这一能力,还提供了与上文所列备份益处相关的额外好处。具体而言,就是能够在物理主机之间快速而轻松地迁移,甚至能够在异构硬件之间进行迁移。传统上,硬件升级或更换意味着一个充满风险的复杂迁移过程。借助现代虚拟化技术,从现有硬件迁移到新硬件可以成为一个可靠的、非破坏性的过程,既有安全的回退选项,停机时间又极少,甚至可能为零!那些虽不常见、但以往风险极高的任务,如今往往可以变得轻而易举。

这往往才是虚拟化和抽象机制真正的益处所在。它的意义未必在于改善系统的日常运营,而在于降低风险,并为未来提供灵活性和多种选择。为那些要么无法预测、要么在大多数常见情形下被直接忽视的未知情况做好准备。这样的规划很少会有人去做,这令那些被迫面对本可以轻松化解的、困难而危险的升级的 IT 部门懊恼不已。

虚拟化有许多功能仅适用于特殊场景。许多虚拟化产品都包含实时迁移(live migration)工具,可以在不停机的情况下,在主机之间——甚至可能在存储设备之间——移动正在运行的工作负载。高可用性和容错选项往往也是可用的,使某些工作负载能够从系统硬件故障中迅速恢复,甚至以对用户透明的方式恢复,在无需用户干预的情况下从发生故障的硬件切换到冗余硬件。尽管这更属于一种小众的益处,当然也不应被列入“几乎所有工作负载”都应当虚拟化的理由清单之中,但它仍值得一提,因为它是一个典型例子,说明只要从一开始就采用了虚拟化,那么这些往往本就可用的功能,将来一旦出现相应需求便可随时添加。否则,就需要先迁移到虚拟化,然后才能利用此类功能。

虚拟化产品通常自带大量仅在特定情况下才有意义的额外功能。其中相当多都落入一个庞大的“以备未来之需”的池子里。在所有这些功能当中,最大的一项或许就是整合这一概念,正如我在本文开头所提到的。和高可用性等其他高级功能一样,整合并非虚拟化的核心价值,却常常被误认为是。那些并不打算利用高可用性或整合的工作负载,仍然应当被虚拟化——这一点毋庸置疑。但这些功能作为未来的选项是如此潜在地宝贵,以至于即便对于那些今天不会用到它们的场景,也值得一提。

整合可以极具价值,而且不难理解为什么如此多的人会理所当然地认为它必将被采用,因为它实在是太常常如此宝贵了。一旦基础设施搭建到位,整合便可随时启用,这是应对未来工作负载之未知性时的一个关键的灵活点。即便今天完全不需要整合,但即便在最小的公司里,它也极有可能在未来某个未知的时刻派上用场。虚拟化通过让我们的系统为最大限度的灵活性做好准备,从而为我们提供了一道抵御未知的对冲屏障。任何 IT 决策最重要的一个方面,就是管理和降低风险。而虚拟化正是这样做的。

虚拟化关乎稳定性、灵活性、标准化、可管理性以及遵循最佳实践。如今没有哪一款主流的企业级虚拟化产品不是至少以某种形式免费提供的。任何采购当然都需要对价值与支出进行审慎的分析。然而,鉴于目前这一领域的四大关键产品线(Xen、KVM、HyperV 和 VMware vSphere)都有出色的企业级选项免费提供,我们无需进行此类分析。我们只需证明其实施并非负面之举即可。

让决策变得轻松的是:当我们考量名义上的情形——也就是所有企业级虚拟化都提供的最低限度,即零成本、抽象、封装以及基于存储的各项益处——时,我们发现自己在实际上所有情形下都能获得一份微小的益处,没有任何可衡量的弊端,并且在灵活性和对冲未来需求这些方面还存在着一份非常巨大的潜在益处。这就给我们留下了一个明确的胜局,以及一个简单的决定:虚拟化既然免费、且就其自身而言基本没有任何弊端,那么就应当在任何可以使用它的情形下使用它(而到了这一步,这基本上意味着所有的工作负载)。诸如整合和高可用性之类的额外的、非核心的功能,应当单独评估,并且只在虚拟化的决定已经板上钉钉之后再去评估。对那些扩展功能的任何需求上的缺失,无论以何种方式,都不意味着虚拟化不应当基于其自身的优点而被选择。

这只不过是对既有行业最佳实践的一种阐释而已——多年以来,这些最佳实践一直都是将所有潜在工作负载虚拟化。这既不新鲜,也不是方向上的转变。仅凭全面虚拟化作为行业最佳实践已有近十年之久这一事实,就足以说明这是一种何等久经验证且广为接受的方法论。总会有一些工作负载,出于这样或那样的原因,就是无法被虚拟化,但这类工作负载应当寥寥无几、屈指可数,并且应当促使人们进行一次深入审查,以查明为何会是这种情况。

在决定是否要虚拟化时,所采取的态度应当始终是:假定虚拟化是一个既定结论,只有在某个稳固的、经得起辩护的技术理由使其无法实现时,才偏离这一假定。几乎所有反对虚拟化的论点,都出自一种误解的立场,错误地认为整合、高可用性、外部存储、许可成本以及其他松散相关或毫不相关的概念,在某种程度上是虚拟化所固有的。它们并非如此,也不应被纳入“虚拟化对比物理部署”的决策之中。它们是相互独立的,应当作为彼此独立的选项来评估。

值得指出的是,正因为整合在我们为虚拟化创建基础价值的决策矩阵中并不占据一席之地,所以我们所运用的全部理由都同等地适用于一对一部署(即单一物理设备上运行单一虚拟机)和整合式工作负载(即单一物理设备上运行多个虚拟机)这两种情形。不存在任何一种工作负载“太小”而不适合虚拟化的情况。如果说有什么的话,情况恰恰相反:只有在最庞大的工作负载中——通常是对延迟极度敏感的那些——才仍然存在一种不进行虚拟化的小众场景作为边缘情况,但即便是这些情况,也随着虚拟化在延迟方面的改进以及工作负载总容量的提升而正在迅速消失。这些情况是如此罕见、消失得又是如此之快,以至于哪怕花时间提一提它们恐怕都是不明智的,因为这会暗示基于容量需求的例外情况常见到值得为之进行评估,而事实并非如此,在中小企业(SMB)市场尤其如此。工作负载越小,就越适合虚拟化,但这一点只是为了强调:拥有单一工作负载的小型企业,恰恰是全面采用虚拟化的最理想对象,而非最佳实践的一个例外;它绝不是在暗示较大的企业自己应当去寻找例外。

标签abstraction

广告

SMB IT Journal — the IT resource for small business