了解虚拟化
- 11 分钟
IT 数据中心使用虚拟化将专用服务器用作虚拟机的主机,从而将其合并为更具成本效益的硬件。 云服务提供商还使用它通过将物理服务器分区为虚拟机来隔离共享单个硬件层的用户。 例如,在 AWS 中预配 EC2 实例时,Amazon 会在其一个数据中心的服务器上预配虚拟机,并开始对你的使用情况计时,以便在月底向你收费。
我们来看看虚拟化的优势,并了解为什么虚拟化对云计算如此重要。
启用云计算系统模型:虚拟化的主要用例是云计算。 我们知道,云计算采用一种将软件、计算资源和存储作为服务提供的模型。 这些服务包括 Google Docs 等成熟的应用程序(软件即服务或 SaaS)、Azure 应用服务等用于运行应用程序的平台(平台即服务或 PaaS)以及 Amazon EC2 实例等虚拟机(基础结构即服务或 IaaS)。 预配虚拟机包括创建每个物理计算机组件(CPU、内存、I/O 和存储)的虚拟版本,并且可以通过依赖于软件和固件的虚拟机监控程序来实现。 主要的虚拟机监控程序的示例包括 Xen、VMware 和 Hyper-V。 Amazon EC2 使用 Xen 为用户预配 VM。 Azure 使用称为 Azure 虚拟机监控程序的自定义版本 Hyper-V1。
弹性:云的一个主要优势是弹性,或能够通过动态扩展和缩减资源来快速响应用户的需求。 此优势适用于所有云服务模型,即 SaaS、PaaS 和 IaaS。 如图 4 所示,虚拟化通过允许提供商和用户动态增减用于任务的云资源来增强弹性。 例如,Google App Engine 在需求高峰时自动扩展服务器,在需求降低时自动缩减服务器。 Amazon EC2 使用户可以手动或自动扩展和缩减虚拟群集,后者使用 Amazon Auto Scaling 来实现。 Azure 对虚拟机规模集执行相同的操作。 简而言之,虚拟化是实现云中弹性的一项关键技术,因此确保可以快速创建和删除 VM 是实现弹性的关键。

图 4:在物理系统上预配 VM。
沙盒:VM 可提供沙盒来将一个环境与其他环境隔离开,从而确保了普通操作系统可能无法实现的安全级别。 首先,在专用计算机上运行应用程序的用户可能不愿意将其应用程序迁移到云中,除非可以保证其他云用户无法访问或监视其应用程序和活动。 虚拟化通过使每个用户都无法查看或更改其他用户的数据或活动,从而在确保每个用户的安全方面起着关键作用。 其次,如果在一个 VM 上运行的应用程序出现故障,在其他 VM 上运行的应用程序也不会受影响,即使这些 VM 在同一主机上运行也是如此。 此属性称为“故障包容”,它增加了系统的可靠性。 相比之下,在非虚拟化环境中,一个应用程序的不稳定行为可能导致整个系统崩溃。
如图 5 所示,沙盒化也提供了其他有趣的可能性。 特定的 VM 可以用作沙盒,借助沙盒可以安全地允许和监视安全攻击,例如,拒绝服务攻击或插入合法 IP 通信流中的恶意数据包。 借助该技术,研究人员可以检查此类攻击的影响、发现其特定行为并重现这些行为,以便他们可以设计防御体系来抵御未来的攻击,而不必担心会损害物理服务器。 此外,安全团队还可以将可疑的网络数据包或输入发送到特定的测试 VM,然后再将其转发到目标 VM,以防止任何潜在的不良影响。 VM 可以在达到其目的后丢弃,而重新预配物理服务器既昂贵又耗时。

图 5:使用虚拟机隔离和分析攻击。
提高系统利用率并降低成本和能耗:众所周知,计算机硬件资源常常未得以充分利用。 资源共享概念已成功应用于多任务操作系统中,以提高系统利用率。 此类资源共享基于进程抽象,即将运行的应用程序分区为单独的进程,各进程相互隔离。
虚拟化进一步创建一种完整系统的假象,认为该系统可以同时承载多个 VM,每个 VM 运行其自己的操作系统映像和应用程序。 例如,在诸如 Amazon EC2 的云服务中,可以在单个服务器上预配七个或更多 VM,从而提供约 60% 至 80% 的资源利用率。 相比之下,在非虚拟化数据中心2中,平均资源利用率通常约为 5% 至 10%。 虚拟化允许将多个 VM 托管在单个物理服务器上,从而将物理服务器合并为在更少的物理服务器上运行的虚拟服务器。 此概念称为“服务器合并”。 合并可以提高系统利用率并降低成本。 VM 也可以从一个服务器迁移到另一个服务器,以均衡数据中心内服务器上的负载。
服务器合并的另一优势是降低了云数据中心的能耗。 承载云应用程序的数据中心会消耗大量能源,从而产生高昂的运营成本和大量的二氧化碳排放3。 服务器合并是一种通过减少所需的物理服务器数量来提高数据中心能效的有效方法。 一个物理服务器使用 80% 的时间比八个服务器使用 10% 的时间消耗的能源更少。 研究表明,服务器合并可节省多达 20% 的数据中心能耗4、5。
减少云数据中心的能耗是云计算面临的一项关键挑战。 这催生了一些创新,例如将数据中心放置在水下,以便利用绿色能源并降低冷却成本6,7。 多达 40% 的典型数据中心的电力都用于冷却系统。 (运行数千台服务器会产生大量热量。)据 Google 公司 2012 年的报告显示,它通过将其数据中心的环境温度从 68 华氏度提高到 80 华氏度,节省了 1,000,000,000 的冷却成本。8.
混合 OS 环境:如图 6 所示,承载虚拟机的单个硬件平台可以同时支持多个操作系统。 通过允许用户安装自己的操作系统、库和应用程序,此功能为用户提供了极大的灵活性。 例如,用户可以在同一台式计算机或云中安装一个用于办公软件的操作系统,以及另一个用于应用程序开发和测试的操作系统。

图 6:系统虚拟化提供的混合 OS 环境。
促进研究:在 VM 中运行 OS 可使虚拟机监控程序检测对硬件资源的访问并统计特定事件类型(如页面错误)。 可以在 VM 级别执行跟踪和各种兴趣点的计算机状态转储。 在本机系统上根本无法执行这一操作。 最后,可以在 VM 上从已保存状态重现系统执行,以分析各种方案中的系统行为。 可以保存、克隆、加密、移动和还原 VM 的完整状态,这些操作对于物理计算机而言并非易事9。 因此,操作系统研究人员现在通常使用 VM 而非本机硬件平台来执行大多数试验10。
软件测试:虚拟化为工程师提供了一种在可预测、可复制、隔离且与平台无关的环境中测试软件的方法,从而在软件开发中扮演着重要的角色。
- 与平台无关:借助虚拟机,你可以通过在 VM 中承载 Linux 来在 Windows PC 上测试为 Linux 编写的软件。
- 隔离:如果软件崩溃,基础系统不会受到损害
- 可复制:可以快速删除并重新启动 VM
- 可预测:重新启动后,VM 处于与上次启动时相同的状态,并且在每台计算机上均以相同的方式运行
参考资料
Microsoft (2019)。 Windows Azure 虚拟机监控程序背后的设计原理。
Michelle Bailey (2009)。 “虚拟化经济学:迈向基于应用的成本模型。”VMware 赞助的白皮书。
答: 贝洛拉佐夫和R.布亚(2010年)。 “云数据中心中虚拟机的节能分配。”CCGrid。
硅谷领导小组(2008年)。 “Accenture,数据中心能源预测报告。”技术报告。
Y。 金、温、陈(2012年)。 “数据中心的能源效率和服务器虚拟化:实证调查。”计算机通信研讨会 (INFOCOM WKSHPS)。
Microsoft (2018)。 Microsoft 在海底测试快速部署的数据中心是否可以常年提供 Internet 连接。 https://news.microsoft.com/features/under-the-sea-microsoft-tests-a-datacenter-thats-quick-to-deploy-could-provide-internet-connectivity-for-years/。
Microsoft (2016)。 Microsoft 研究项目首次在海底部署云服务。 https://news.microsoft.com/features/microsoft-research-project-puts-cloud-in-ocean-for-the-first-time/。
AirPac (2012 年)。 Google 如何节省 10 亿美元的数据中心冷却成本。 https://www.airpacinc.com/blog/bid/83313/How-Google-Saved-1-Billion-Dollars-in-Data-Center-Cooling-Costs。
陈和诺布尔(2001年)。 “当虚拟优于实际时。”美国华盛顿特区 IEEE 计算机协会
杰·史密斯和奈尔(2005年)。 “虚拟机:系统和流程的通用平台。”Morgan Kaufmann。