杭州网站制作机构,建站魔方极速网站建设,wordpress在本地打开,重庆it培训机构前言
大家好我是jiantaoyab#xff0c;这是我所总结作为学习的笔记第十八篇#xff0c;在这里分享给大家#xff0c;这篇文章讲虚拟技术就是大家平时用到的云服务器是什么。
虚拟机技术变迁
虚拟机#xff08;Virtual Machine#xff09;技术#xff0c;其实就是指在现…前言
大家好我是jiantaoyab这是我所总结作为学习的笔记第十八篇在这里分享给大家这篇文章讲虚拟技术就是大家平时用到的云服务器是什么。
虚拟机技术变迁
虚拟机Virtual Machine技术其实就是指在现有硬件的操作系统上能够模拟一个计算机系统的技术。而模拟一个计算机系统最简单的办法其实不能算是虚拟机技术而是一个模拟器Emulator。
解释型虚拟机
要模拟一个计算机系统最简单的办法就是兼容这个计算机系统的指令集。我们可以开发一个应用程序跑在我们的操作系统上。
这个应用程序呢可以识别我们想要模拟的、计算机系统的程序格式和指令然后一条条去解释执行。
在这个过程中我们把原先的操作系统叫作宿主机Host把能够有能力去模拟指令执行的软件叫作模拟器Emulator而实际运行在模拟器上被“虚拟”出来的系统呢我们叫客户机Guest VM。
开发机上跑的 Android 模拟器其实就是这种方式。
这种解释执行方式的最大的优势就是模拟的系统可以跨硬件。
比如Android 手机用的 CPU 是 ARM 的而开发机用的是 Intel X86 的两边的 CPU 指令集都不一样但是一样可以正常运行。
Type-2
我们需要一个“全虚拟化”的技术也就是说我们可以在现有的物理服务器的硬件和操作系统上去跑一个完整的、不需要做任何修改的客户机操作系统Guest OS。
那么我们怎么在一个操作系统上再去跑多个完整的操作系统呢
答案就是就是加入一个中间层。在虚拟机技术里面这个中间层就叫作虚拟机监视器英文叫 VMMVirtual Machine Manager或Hypervisor。 如果说我们宿主机的 OS 是房东的话这个虚拟机监视器呢就好像一个二房东。我们运行的虚拟机都不是直接和房东打交道而是要和这个二房东打交道。我们跑在上面的虚拟机呢会把整个的硬件特征都映射到虚拟机环境里这包括整个完整的 CPU 指令集、I/O 操作、中断等等。
在 Type-2 虚拟机里虚拟机监视器好像一个运行在操作系统上的软件。客户机的操作系统把最终到硬件的所有指令都发送给虚拟机监视器。而虚拟机监视器又会把这些指令再交给宿主机的操作系统去执行。
Type-1
在数据中心里面用的虚拟机我们通常叫作 Type-1 型的虚拟机。
这个时候客户机的指令交给虚拟机监视器之后呢不再需要通过宿主机的操作系统才能调用硬件而是可以直接由虚拟机监视器去调用硬件。
另外在数据中心里面我们并不需要在 Intel x86 上面去跑一个 ARM 的程序而是直接在 x86 上虚拟一个 x86 硬件的计算机和操作系统。所以我们的指令不需要做什么翻译工作可以直接往下传递执行就好了所以指令的执行效率也会很高。
所以在 Type-1 型的虚拟机里我们的虚拟机监视器其实并不是一个操作系统之上的应用层程序而是一个嵌入在操作系统内核里面的一部分。
无论是 KVM、XEN 还是微软自家的 Hyper-V其实都是系统级的程序。 Docker
Type-1 型的虚拟机有一个资源的浪费在我们实际的物理机上我们可能同时运行了多个的虚拟机而这每一个虚拟机都运行了一个属于自己的单独的操作系统。
多运行一个操作系统意味着我们要多消耗一些资源在 CPU、内存乃至磁盘空间上。
其实我们很多时候想要租用的不是“独立服务器”而是独立的计算资源。
在服务器领域我们开发的程序都是跑在 Linux 上的。其实我们并不需要一个独立的操作系统只要一个能够进行资源和环境隔离的“独立空间”就好了。使用 Docker 来搭建微服务。 mg-10N78Av6-1710751743445)]
[外链图片转存中…(img-U6YIWV1k-1710751743446)]
通过 Docker我们不再需要在操作系统上再跑一个操作系统而只需要通过容器编排工具比如 Kubernetes 或者 Docker Swarm能够进行各个应用之间的环境和资源隔离就好了。