从传统服务器到虚拟化:虚拟机 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

使用虚拟机,可以在一台物理计算机上运行多个操作系统。

通过这种方式,可以减少物理服务器的数量并更高效地管理虚拟服务器:

  • 降低用电、制冷和维护成本
  • 留出更多时间用于创新工作
  • 提高资源的高效利用

虚拟机的服务器整合解决了成本问题。

在这里插入图片描述

小结

从传统服务器迁移到虚拟化服务器可带来许多优势。计算任务可在更少的计算机上完成,节省用电量和空间,提供了一种成本控制方法。总而言之,虚拟机让计算变得更轻松。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465307.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双向链表及如何使用GLib的GList实现双向链表

双向链表是一种比单向链表更为灵活的数据结构,与单向链表相比可以有更多的应用场景,本文讨论双向链表的基本概念及实现方法,并着重介绍使用GLib的GList实现单向链表的方法及步骤,本文给出了多个实际范例源代码,旨在帮助…

MySQL 数据库之库操作

文章目录 1. 什么是数据库2. 基础概念2.1 连接数据库2.2 服务器,数据库,表关系2.3 SQL分类 3. 库的操作3.1 创建,选择,查看数据库3.2 字符集和默认校验规则 3.3 操纵数据库3.3.1 数据库查看3.3.2 数据库删除3.3.3 数据库修改 4. 其…

Windows安装多个NodeJS版本

下载nvm管理工具,下载完成解压安装 https://github.com/coreybutler/nvm-windows/releases 选择nvm安装位置 选择nvm安装node版本的安装位置 如果提示你已经安装的有nodejs,提示你是否通过nvm管理nodejs,选择是,继续安装即可…

使用NVM自由切换nodejs版本

一、NVM介绍 在日常开发中,我们可能需要同时进行多个不同NodeJS版本的项目开发,每个项目所依赖的nodejs版本可能不一致,我们如果只安装一个版本的nodejs,就可能出现node版本冲突问题,导致项目无法启动。这种情况下&am…

parseInt 是一个内置的 JavaScript 函数,用于将字符串转换为整数。

parseInt(options.checkNumber, 10) 中的 10 表示将字符串转换为十进制整数。 解释 parseInt 函数: parseInt 是一个内置的 JavaScript 函数,用于将字符串转换为整数。它有两个参数: 第一个参数是要转换的字符串。第二个参数是转换时使用的基…

Qt中的Model与View 4:QStandardItemModel与QTableView

目录 QStandardItemModel API QTableView 导航 视觉外观 坐标系统 API 样例:解析一个表格txt文件 QStandardItemModel QStandardItemModel 可用作标准 Qt 数据类型的存储库。它是模型/视图类之一,是 Qt 模型/视图框架的一部分。它提供了一种基于…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十九集:制作过场Cutscene系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作过场Cutscene系统 1.制作基本的视频过场和动画过场2.制作决定过场系统的播放顺序Sequence以及切换场景以后的逻辑处理二、制作跳过过场Cutscene的MenuS…

【设计模式系列】桥接模式(十三)

一、什么是桥接模式 桥接模式(Bridge Pattern)是一种结构型设计模式,其核心目的是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式主要用于处理那些在设计时无法确定实现细节的场合,或者需要在多个实现之间…

基于Multisim光控夜灯LED电路(含仿真和报告)

【全套资料.zip】光控夜灯LED电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 光控夜灯LED电路 1.采用纯数字电路,非单片机。 2.通过检测周围光线,光线暗自…

html练习2

实现下列图片的效果 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>* {margin: 0;padding: 0;}#menu {background-color: #0c0048;width: 100%;height: 50px;margin: auto;…

【毫米波雷达(八)】车载毫米波前雷达遮挡检测功能

车载毫米波前雷达遮挡检测功能 一、概念二、功能指标1、遮挡检测功能2、功能流程3、实车验证 一、概念 随着汽车行业智能化发展&#xff0c;车载毫米波雷达在汽车市场应用越来越广泛。在驾驶过程中&#xff0c;当雷达受到泥土、纸巾、冰雪覆盖遮挡后&#xff0c;雷达检测性能受…

小新学习k8s第六天之pod详解

一、资源限制 Pod是k8s中的最小的资源管理组件&#xff0c;pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。k8s中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行的StatefulSet和Deployment等…

java面试2.0

一.Zookeeper 1.定义 ZooKeeper 是一个开源的分布式协调服务&#xff0c;它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集&#xff0c;并以一系列简单易用的接口提供给用户使用。 ZooKeeper 为我们提供了高可用、高性能…

游戏测试|超越QA的常规:我们如何自动化回归测试

QA测试工作并不单调乏味&#xff0c;它是一项创造性的工作&#xff0c;蕴含着丰富的机会。公平地说&#xff0c;它也有枯燥乏味的一面--回归&#xff08;regression&#xff09;。因此&#xff0c;我们决定将回归测试自动化&#xff0c;具体方法如下。 ​ 在IT行业&#xff0c…

群分解(Swarm Decomposition,SWD)

代码原理 群体分解&#xff08;SWD&#xff09;是一种用于信号处理和数据分析的新兴方法。它通过将复杂的信号分解为多个群体成分&#xff08;Swarm Components&#xff09;&#xff0c;每个成分代表信号中的特定特征或模式。SWD的主要目标是提取信号中的不同特征模式&#xf…

flink实战-- flink任务的火焰图如何使用

火焰图 Flame Graphs 是一种有效的可视化工具,可以帮助我们排查如下问题: 目前哪些方法正在消耗 CPU 资源?一个方法的消耗与其他方法相比如何?哪一系列的堆栈调用导致了特定方法的执行?y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的…

CSS基础知识六(浮动的高度塌陷问题及解决方案)

目录 1.浮动高度塌陷概念 2.下面是几种解决高度塌陷的几种方案&#xff1a; 解决方案一&#xff1a; 解决方案二&#xff1a; 解决方案三&#xff1a; 1.浮动高度塌陷概念 在CSS中&#xff0c;高度塌陷问题指的是父元素没有正确地根据其内部的浮动元素或绝对定位元素来计…

拒绝事后背锅:测试项目中的风险管理一定要知道

在博主的公司中&#xff0c;测试经理除了要管理产品线的质量保障和日常部门事务工作外&#xff0c;另一项比较重要的就是测试项目全流程的管理。 今天不聊整体的测试项目流程如何开展&#xff0c;而是想聊一聊在同行中比较高频出现的一个字眼&#xff1a;风险管理。 什么是风…

基础算法——排序算法(冒泡排序,选择排序,堆排序,插入排序,希尔排序,归并排序,快速排序,计数排序,桶排序,基数排序,Java排序)

1.概述 比较排序算法 算法最好最坏平均空间稳定思想注意事项冒泡O(n)O( n 2 n^2 n2)O( n 2 n^2 n2)O(1)Y比较最好情况需要额外判断选择O( n 2 n^2 n2)O( n 2 n^2 n2)O( n 2 n^2 n2)O(1)N比较交换次数一般少于冒泡堆O( n l o g n nlogn nlogn)O( n l o g n nlogn nlogn)O( n l…

利用pythonstudio写的PDF、图片批量水印生成器,可同时为不同读者生成多组水印

现在很多场合需要将PDF或图片加水印&#xff0c;本程序利用pythonstudio编写。 第一步 界面 其中&#xff1a; LstMask:列表框 PopupMenu:PmnMark LstFiles:列表框 PopupMenu:PmnFiles OdFiles:文件选择器 Filter:PDF文件(.PDF)|.PDF|图像文件(.JPG)|.JPG|图像文件(.png…