|
|
|
|
移动端

虚拟化技术的前世今生

虚拟化技术可以通俗的理解成“把一台电脑虚拟成N台电脑”。第一个流派叫做“硬件虚拟化”第二个流派叫做“软件虚拟化”第三个流派叫做“容器化”

作者:猴王无敌来源:你吖才码农|2018-01-31 11:17

【新品产上线啦】51CTO播客,随时随地,碎片化学习

虚拟化技术可以通俗的理解成“把一台电脑虚拟成N台电脑”。

第一个流派叫做“硬件虚拟化”

硬件虚拟化的机制超级复杂,我认怂。。。

这里贴上这篇科普文章,感兴趣的小伙伴请猛戳这里

科普:什么是硬件虚拟化技术

https://baijiahao.baidu.com/s?id=1573894724153924&wfr=spider&for=pc

第二个流派叫做“软件虚拟化”

其实软件虚拟化,各位小伙伴都玩过,以前为了玩某些特殊的日本游戏,我们通常会在自己的电脑上安装一个虚拟机,画了张图进行说明:

首先,我们自己的电脑,即图中最底层的“硬件”;

然后,在这台电脑上安装操作系统,即图中“物理机操作系统”;

再然后,我们在这个操作系统上安装VMWare之类的虚拟机管理软件,即图中“Hypervisor”;

再然后,在虚拟机管理软件上安装一个虚拟机,即图中“虚拟操作系统”;

最后,在虚拟操作系统上,安装那些特殊的日本游戏,即同种“应用软件”;

图中红框,就是软件虚拟化技术,从而实现了把一台真实的物理机器,切分成了N台虚拟的机器。

另外,Java虚拟机、.Net框架也是一种软件虚拟化技术。

第三个流派叫做“容器化”

容器化流派就是利用了Linux的LXC、CGroup等技术。

LXC的本质就是“进程隔离、资源隔离”——1台物理机切分成N台虚拟机成为了可能;

CGroup的本质就是LXC的资源管理机制——N台虚拟机谁占用物理机多少CPU?内存?

具体的技术讲解,贴上百度百科,有兴趣的同学请自行脑补

LXC介绍

https://baike.baidu.com/item/lxc/6014808?fr=aladdin

CGroup介绍

https://baike.baidu.com/item/Cgroup

Docker容器化的架构(如下图)

  • 关键点1:物理操作系统上安装上Docker的守护进程;
  • 关键点2:Docker上运行着N个容器;
  • 关键点3:Docker为每个容器分配指定的硬件资源(CGroup);
  • 关键点4:每个容器彼此隔离,你不知我,我不知你(LXC之Namespace);
  • 关键点5:每个容器非常小、非常小、非常小

最后,展开一下在Docker的官网上、各类书籍中常见的这张Docker架构图

这张图画的很深刻,很形象、简洁的表达了Docker的技术脉络

  • Docker daemon:docker的守护进程,一切神秘的机制都包含在此;
  • REST API:docker守护进程提供http接口,可以通过http方式操作;
  • docker CLI:docker守护进程提供的命令行接口,可以通过命令行方式操作;
  • API的分类:无论rest,还是cli,分为4类——镜像管理、容器管理、数据卷管理、网络管理
  • 镜像:打个通俗的比方,我们在物理机上安装一个windows,然后用Ghost做一个备份,如果电脑被黑了,马上把备份拿出来还原,这个“备份”在Docker的世界里叫做“镜像”。
  • 容器:上面所说的备份,你拿到第一台物理机上还原出来,那么这个还原出来的windows系统就是一个“容器”——一个镜像可以生成出N个容器
  • 数据卷:每个容器如果要把数据穿透Docker,直达物理机的硬盘,这就要用到数据卷。
  • 网络:前文说过,容器和容器,你不知我,我不知你,彼此隔离,即使在同一个物理机上的两个容器好像网络上两个孤岛,彼此不能通信,打通他们,就要用到网络

【编辑推荐】

  1. 容量管理在虚拟化环境中至关重要
  2. 说一说虚拟化绕不开的IO半虚拟化
  3. 你不需要服务虚拟化的10个原因?
  4. 虚拟化:我们如何看历史和现状
  5. VDI桌面虚拟化四大协议—虚拟化魔鬼象限
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

《网管员必读——网络管理》

本书在全面介绍微软最新网络操作系统Windows Server 2003的基础上,简要地介绍了UNIX和Linux两大操作系统的代表产品:Sun(太阳)公司的Sol...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊