温馨提示:本文大概 3000 字,阅读需要 5 分钟。
虚拟化技术
我们主要使用Hypervisor,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)来实现服务器的虚拟化,Hypervisor它不是一款具体的软件,而是一类软件的统称。像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。
VMware大家应该很熟悉,就是VMware Workstation。学习Linux的话,很多人都是在windows系统下安装WMware,然后创建Linux虚拟机。
Linux服务器一般是使用KVM作为虚拟化工具,KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
虚拟化平台架构
虚拟化平台主要有以下三种架构:
虚拟化平台的高可用机制
虚拟化平台的高可用机制是指虚拟机所在的物理机挂了后可以将虚拟机快速切换到另外一台物理机运行。高可用的前提条件是物理机挂了,对于虚拟机内部的故障并没有检测机制,属于不完整的高可用方案,主要是基于以下两个目标:
虚拟化原则
虚拟机的出现是为了使一些大的计算资源分割成许多小的资源然后灵活调配 ,遵循的是分而治之的原则,如果一个虚拟机申请了物理机超过一半的资源就违背了这个原则,那样还不如直接使用物理机来的干脆,所以我们在使用虚拟化的时候一般要遵循以下几个原则:
Docker容器
在使用虚拟化一段时间后,发现它存在一些问题:
为了解决这些问题,我们就引入了 容器。而大家常听说的 Docker,就是创建容器的工具,是应用容器引擎。容器也是虚拟化,但是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但是,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。
虚拟化 vs 容器
虚拟化 VS 容器
相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。
我们可以通过下面这张图来看虚拟化与容器之间的性能、资源利用率差距,非常明显
资源利用率对比
容器编排
利用Docker可以很方便的创建容器,但是当容器数量达到一定规模,就需要编排工具去管理,就是容器生命周期管理工具。
容器编排工具提供调度和管理集群的技术,提供用于基于容器应用可扩展性的基本机制。这些工具使用容器服务,并编排他们以决定容器之间如何进行交互。
容器编排工具很多,有Docker Swarm,Kubernetes,Mesos,Rancher,下面用一张图来对比下这些容器编排工具的特点及各自的优势。
容器编排技术
小结
今天主要对虚拟化技术及容器做了个简单的梳理,虚拟化和容器初衷与目的都是为了更好的提高资源利用率,至于两者之间的不同大家要务必记住一点:虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。
本文分享自微信公众号 - JAVA日知录(javadaily)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。