简单介绍虚拟化技术vs容器化_容器 硬件级 虚拟化 操作系统级虚拟化(1)

30 阅读7分钟

虚拟化依赖软件来模拟硬件功能并创建虚拟计算机系统。这使 IT组织能够在单个服务器上运行多个虚拟系统以及多个操作系统和应用。由此带来的好处包括规模经济和更高的效率。

简单来讲,虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率和经济控制。

什么是虚拟机

虚拟计算机系统称为"虚拟机"(VM),它是一种严密隔离且内含操作系统和应用的软件容器。每个自包含虚拟机都是完全独立的。通过将多台虚拟机放置在一台计算机上,可仅在一台物理服务器或"主机"上运行多个操作系统和应用。

名为"hypervisor"的精简软件层可将虚拟机与主机分离开来,并根据需要为每个虚拟机动态分配计算资源;

虚拟机的主要特性

1. 分区

​ 可在一台物理上运行多个操作系统。

​ 可在虚拟机之间分配系统资源。

2. 隔离

​ 可在硬件级别进行故障和安全隔离。

​ 可利用高级资源控制功能保持特性。

3. 封装

​ 可将虚拟机的完整状态保存到文件中。

​ 移动和复制虚拟机就像移动和复制文件一样轻松。

4. 独立于硬件

​ 可将任意虚拟机调配或迁移到任意物理服务器上。

虚拟化技术有那些

KVM、Xen、Vmware、Hyper-V、VirtualBox

笔者只在本地用过VMware workstations,在本地开启2个虚拟机后,笔记本的Cpu和内存使用率飙升。

虚拟化技术有哪些实现(基本都是网上了解的)

1. cpu虚拟化

​ 简单说来,CPU的虚拟化技术就是单CPU串行模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

2. 网络虚拟化

​ 没理解,不做解释…

3. 桌面虚拟化

​ 桌面虚拟化是一种在本地数据中心或云端发布终端用户桌面和应用,并在端点设备上呈现的软件技术。使终端用户能够安全地访问企业资源,以及随时随地在任何设备上工作。精简的现代桌面虚拟化方法使客户的企业能够交付、保护和管理桌面和应用,同时控制成本。

4. 服务器虚拟化

​ 服务器虚拟化是将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。

5. 存储虚拟化

​ 所谓虚拟存储,就是把多个存储介质模块(如硬盘、RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池(Storage Pool)中得到统一管理,从主机和工作站的角度,看到就不是多个硬盘,而是一个分区或者卷,就好象是一个超大容量(如1T以上)的硬盘。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输性能的存储系统,就称之为虚拟存储。个人理解"LVM逻辑卷"就是一种实现方式。

6. 应用虚拟化

​ 官方解释是这么说的,应用程序虚拟化是将应用程序与操作系统解耦合,为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。

​ 笔者balabala几句,和桌面虚拟化技术一样,应用程序不是存在本地电脑上,也是在后台的数据中心里,只是桌面虚拟化推送的是整个桌面,而应用程序虚拟化推送的是某个应用程序,用户只能看到应用程序。

容器vs虚拟机

容器和虚拟机都依赖于宿主机才能运行。宿主机可以是笔记本,是数据中心的物理服务器,也可是公有云的某个实例。

虚拟机

​ \1. 在虚拟机中,首先要开启物理机并启动Hypervisor引导程序,一旦Hypervisor启动,就会占用机器上的全部资源,如CPU、RAM、存储等。Hypervisor会将这些物理资源划分为虚拟资源,并且看起来与与真是物理资源完全一致。然后Hypervisor会将这些资源打包进一个叫做虚拟机(VM)的软件结构当中。

​ \2. 每个虚拟机都需要有自己的操作系统,因为操作系统本身都是有额外的开销。例如每个操作系统都需要消耗一点CPU、一点RAM、一点存储空间。相比于Docker虚拟机使用的额外开销更多。

​ \3. 每个虚拟机都有自身的操作系统,操作系统启动涉及到BIOS启动引导以及初始化过程,所以启动的时间相比于Docker来说更耗时。

​ \4. 同时每个虚机的操作系统为了提升安全性,有可能面临打补丁升级,也会面临被攻击的风险。

简单介绍虚拟化技术vs容器化(2)_Linux、容器化、Docker、虚拟化

容器

​ \1. 而容器模型则有些不同,服务器启动后,所选择的操作系统会启动,操作系统会占用全部的硬件资源。在操作系统上层只需要安装Docker引擎,Docker就可以获取系统资源,接着将资源分割为安全的互相隔离的资源结构,称之为容器。

​ \2. 同一台宿主机上的所有容器共享操作系统,这意味着只有1个操作系统消耗CPU、RAM和存储空间。简而言之,就是只有一份操作系统损耗资源。

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!