从传统服务器到虚拟化:虚拟机 VM 如何改变计算游戏规则?
目录
- VMware 数据中心虚拟化入门Ⅰ—— 虚拟机 Virtual Machine(VM)
- 1. 虚拟机 Virtual Machine, VM
- 阅读本文后可以获得以下信息
- 1.1 什么是虚拟机
- 问题思考
- (1)从传统服务器到虚拟化服务器
- (2)问题:服务器资源浪费
- (3)解决方案:虚拟机 VM
- 1.2 虚拟机的工作原理
- (1)虚拟机的组件
- (2)了解虚拟机组件
- 1.3 使用虚拟机的优势
- (1)隔离 Isolation
- (2)封装 Encapsulation
- (3)独立于硬件 Hardware Independence
- (4)服务器整合 Server Consolidation
- 小结
VMware 数据中心虚拟化入门Ⅰ—— 虚拟机 Virtual Machine(VM)
为了方便读者在手机上阅读文章,请大家关注下面的公众号,之后博文也会同步到上面,之前的文章也会慢慢整理并同步.
1. 虚拟机 Virtual Machine, VM
阅读本文后可以获得以下信息
- 什么是虚拟机
- 虚拟机的工作原理
- 使用虚拟机的优势
1.1 什么是虚拟机
问题思考
- 什么是虚拟机?
- 为什么现在还有很多企业还愿意使用虚拟机?
(1)从传统服务器到虚拟化服务器
首先,我们需要考虑传统服务器(Server)的工作原理、存在的问题以及如何解决这些问题。
服务器(Server)是为其他计算机(称为客户端, Client)提供服务的计算机,它们全都通过网络连接在一起。例如,Web 服务器为客户端计算机提供了通过互联网访问网站的功能。
通常,服务器(Server)会使用比台式机性能更强大的专用处理器、内存和其他硬件资源。但是,传统服务器(Server)上运行的操作系统并不总是能够消耗硬件资源的全部容量。
换个角度看,服务器(Server)就像只有一个座位和只能搭载一名乘客的大型公交车。这辆公交车还有很多空间来容纳更多的座位和乘客,但这些空间未能得到利用,而是被浪费了。
如果每名乘客都必须搭乘自己的专有公交车到达目的地。想象一下这得需要多少公交车。
这个例子说明了这种方式对空间、设备、时间和燃油的利用率极低,而传统服务器使用资源的方式也是如此。
(2)问题:服务器资源浪费
传统服务器(Server)的问题在于需要的服务器过多,而且很多服务器的资源最终未得到充分利用。这正是虚拟机 (VM) 发挥作用的地方。
虚拟机是物理计算机的软件展现形式。与物理计算机一样,虚拟机会运行 操作系统 (OS) 以及一个或多个 应用。
操作系统是一种控制计算机物理资源并运行应用的软件。操作系统示例包括 Windows、Linux 和 macOS。
应用是在操作系统上运行的软件。它执行任务并使用操作系统控制的物理资源。应用的示例包括 Microsoft Office 和 Chrome Web 浏览器。
主机(传统服务器)和虚拟机的关系:一台物理计算机上可以运行多个操作系统。虚拟机上的操作系统称为 客户机操作系统(Guest OS)。它们是主机(物理)服务器上的客户机。
(3)解决方案:虚拟机 VM
因此,虚拟机是运行客户机操作系统(Guest OS)的一种特殊类型的软件应用。它就像是一台计算机中运行的另一台计算机。通过在物理服务器上安装虚拟化软件,服务器可以托管多个虚拟机,每个虚拟机都有自己的操作系统。
借助虚拟机,我们可以使用同一硬件同时运行多个操作系统。想象一下,在物理服务器(计算机)中同时打开了多个应用窗口。每个应用代表一个用户可以与之交互的单独操作系统。如果没有虚拟化,运行多个系统就需要多个单独的物理设备。
在公交车的示例中,为了更高效地利用资源,我们能为公交车增设了更多座位,以便每趟都能运送更多乘客。
同样,使用虚拟化软件在一台服务器上运行多个虚拟机,这样就可以同时托管多个操作系统,并避免浪费资源。
1.2 虚拟机的工作原理
虚拟机类似于保存在文件夹中的文件。这个文件夹就像一个电脑包。这些文件代表虚拟机和设备的组件,它们连接到主板。
主板是将硬件组件连接在一起的电路板。硬件组件示例包括处理器 (CPU) 和内存 (RAM)。
在上面的示例中,虚拟化软件就像一个整理工具。它将多个虚拟机的文件整理得井井有条,就像文件柜(计算机硬件)中的文件夹一样。
(1)虚拟机的组件
我们与虚拟机的交互方式就像我们和物理服务器(计算机)的交互方式一样。启动虚拟机,加载操作系统,并使用键盘或鼠标与操作系统及其应用进行交互。每个虚拟机都提供与物理计算机相同的功能,因为它们使用相同类型的组件。
(2)了解虚拟机组件
下图是虚拟机组件架构图和其说明
项目 | 说明 |
---|---|
Application | 应用使用 CPU、内存和存储等计算机资源执行任务。 例如,当 Web 服务器应用需要访问存储空间时,它会向操作系统请求此类资源。 如果此 Web 服务器在虚拟机上运行,则客户机操作系统将为应用提供存储空间。 当客户端计算机请求访问网站时,此 Web 服务器会在不知道操作系统在虚拟机上运行的情况下响应客户端请求。 |
Operating System | 在单个服务器上运行的多个客户机操作系统共享主机的物理资源。 虚拟化软件为每个客户机操作系统提供自己的虚拟化资源份额,例如 CPU 和内存。 例如,如果一台服务器上运行两个虚拟机,则每个客户机操作系统只能访问一部分资源,并将这些资源提供给它运行的应用。 |
Drivers | 驱动程序是将计算机硬件与操作系统连接在一起的软件组件,以便它们可以相互通信。 例如,操作系统附带了用于执行基本操作(比如控制键盘)的驱动程序。 VMware 虚拟机包括 VMware Tools,这是一个驱动程序捆绑包,可帮助客户机操作系统与客户机硬件高效交互。 |
Hardware | 虚拟化软件 抽象化 物理硬件,并将其作为虚拟化资源提供给虚拟机。 客户机操作系统使用的是虚拟机的虚拟硬件设备,但不知道这些设备是虚拟设备。 虚拟机硬件设备示例: CPU 和内存设备 网络适配器 磁盘和控制器 串行和并行端口 |
抽象化某个事物的意思是隐藏它的一些细节 - 将那些不太重要的细节隐藏。以智能手机为例,用户只需知道要按哪个按钮。不需要知道创建该按钮时使用的计算细节,也不需要知道按下按钮时手机内部会发生什么。用户不感知状态。
1.3 使用虚拟机的优势
我们已经了解了虚拟机如何帮助解决资源利用率不足的问题。下面我们了解虚拟机的优势及其所面临的挑战。
在此之前,我们考虑一个问题:为什么要创建虚拟机?大部分公司会遇到了一些导致 IT 运营效率低下的问题:
- 多个操作系统
- 硬件兼容性
- 物理服务器数量有限
(1)隔离 Isolation
如果客户机操作系统因运行超出其规格限制而发生故障,则其他虚拟机不会受到影响。
虚拟机隔离解决了因一台虚拟机故障而牵连该主机上其他虚拟机使用的问题。
隔离为什么解决虚拟机故障问题?
因为每个虚拟机都是一个具有应用和操作系统的隔离软件容器。影响一个客户机操作系统的问题不会影响在同一主机上运行的其他虚拟机。
(2)封装 Encapsulation
组成虚拟机的文件通常一起存储在同一文件夹中。使用这些文件,可以执行以下操作:
- 将虚拟机的完整状态保存到封装在一起的文件中。
- 复制虚拟机文件以创建虚拟机的多个副本。
- 将虚拟机从一台主机移动到另一台主机,以对物理服务器执行日常维护。
虚拟机封装解决了虚拟机从一台主机不能迁移到另一个主机的问题(移动性)。
(3)独立于硬件 Hardware Independence
- 可以将任何虚拟机移动到任何物理服务器,而无需担心虚拟机与底层硬件的兼容性。
- 虚拟化为客户机操作系统提供所需的虚拟硬件。
- 如果要使用需要特定硬件的操作系统,可以为虚拟机置备基于软件的标准化硬件。
虚拟机独立于硬件解决了虚拟机从一台主机迁移到另一个不同硬件配置主机产生的兼容问题(兼容性)。
(4)服务器整合 Server Consolidation
使用虚拟机,可以在一台物理计算机上运行多个操作系统。
通过这种方式,可以减少物理服务器的数量并更高效地管理虚拟服务器:
- 降低用电、制冷和维护成本
- 留出更多时间用于创新工作
- 提高资源的高效利用
虚拟机的服务器整合解决了成本问题。
小结
从传统服务器迁移到虚拟化服务器可带来许多优势。计算任务可在更少的计算机上完成,节省用电量和空间,提供了一种成本控制方法。总而言之,虚拟机让计算变得更轻松。