【云计算基础知识1】虚拟化与容器

B站视频


一、虚拟化

定义:一种计算机资源管理技术,将各种IT实体资源抽象、转换成另一种形式的技术。

作用:将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可以运行不同操作系统,提高计算机工作效率。

云计算以虚拟化为核心技术。

  1. 虚拟化中的几个概念

在这里插入图片描述

  • Guest OS:运行在虚拟机上的OS
  • Guest Machine:虚拟出来的虚拟机
  • VMM(Virtual Machine Monitor):虚拟机监视器,即虚拟化层。相当于一个软件,安装就行。
    提供转换抽象这个核心功能,调配物理机资源
  • Host OS:运行在物理机上的OS
  • Host Machine:物理机
  1. 虚拟化特点

1、 分区:指可在一台服务器上运行多台虚拟机。
2、 隔离:分区完后的所有虚拟机之间相互隔离,每个虚拟机就像一台单独的物理机。
优点:当前虚拟机中毒崩溃并不会影响该物理机上的其他虚拟机。
3、 封装:整个虚拟机运行条件封装在独立文件夹中,可通过移动文件夹方式迁移虚拟机。
4、 相对于硬件独立:软硬件解耦。不必考虑硬件设施,解决了硬件的不兼容性。

summary:操作系统与物理服务器分离;易迁扩展,资源易于整合,易于保护;物理硬件标准化;

二、虚拟化类型

  1. 寄居虚拟化

在宿主机操作系统上安装和运行虚拟化程序(虚拟化层安装在主机操作系统上面)。eg.在windows上装一个Ubuntu虚拟机。

在这里插入图片描述

  • 特点

① 简单、易于实现。
① 安装和运行应用程序依赖于主机OS对设备的支持;
② 两层OS,管理开销、性能损耗大;
③ 虚拟机对各种物理设备(CPU、内存、硬盘等)的调用,通过虚拟化层和宿主机OS一起协调才能完成。

  • 典型

Vmware Workstation、VirtualBox

  1. 裸金属虚拟化

直接将VMM安装在硬件设备上,VMM在这种模式下又叫Hypervisor,虚拟机有指令要执行时,Hypervisor会接管该指令,模拟相应操作。

在这里插入图片描述

  • 特点

① 不依赖于主操作系统
② 支持多种操作系统多种应用(屏蔽了底部硬件的不兼容性)
① 依赖于虚拟层内核和服务器控制台进行管理
④ 需要对虚拟层内核进行开发(难度大)

  • 典型

Vmware ESX、Xen、华为FusionSphere

  1. 混合虚拟化

在现有的正常的操作系统下安装插入一个内核模块,内核拥有虚拟化能力。(相当于寄居和裸金属的混合)

在这里插入图片描述

  • 特点

① 相较于寄居虚拟化架构,性能高
② 相较于裸金属虚拟化架构,不需要开发内核
③ 可支持多种操作系统
① 需要底层硬件支持虚拟化扩展功能

  • 典型

Redhat KVM

三、虚拟化层架构

虚拟层架构有:全虚拟化、半虚拟化、硬件辅助虚拟化。

  1. 全虚拟化

所抽象的VM具有完全的物理特性,虚拟化层负责捕获CPU指令,为指令访问硬件充当媒介。(<=>混合虚拟化)

在这里插入图片描述
eg. VMware、VirtualBox、Virtual PC、KVM-x86

  • 特点

① Guest OS不需要修改(只需在Host OS中插入一个KVM模块)
② 功能和速度好,使用简单
③ 移植性好(只需移动内核)
① 效率不高

  • 典型代表——KVM

基于Linux内核的虚拟化技术,可以直接将Linux内核转换为Hypervisor,从而使得Linux内核能够直接管理虚拟机,直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机。

组成:内核态KVM + 用户态QEMU
在这里插入图片描述
将内核模块(KVM+QEMU)插入宿主机,使得宿主机具有虚拟化功能。
KVM:提供CPU和内存虚拟化功能,以及一些核心安全的功能,并向这些功能提供一些接口。
QEMU:使用接口完成设备的模拟(eg. IO虚拟化模拟、网络虚拟化模拟等等)。

物理机进程:宿主机上运行的进程
虚拟机进程:虚拟出来的虚拟机中运行的进程
虚拟机进程只是物理机进程的一个线程。 eg. 上述windows虚拟机其实是一个物理机进程,其中的虚拟机进程是其的一个线程。
进程是由CPU产生的,因此才可以虚拟出来多台虚拟机。eg. 一个CPU最多可生成16个进程,则最多可虚拟出来16台虚拟机。

  1. 半虚拟化

起初为解决全虚拟化效率不高的问题。Hypervisor直接安装在物理机上,多个虚拟机在Hypervisor上运行。(全虚拟化不修改OS,直接插入;半虚拟化修改OS,将底层直接变成虚拟化层,因此效率高) <=> 裸金属虚拟化

在这里插入图片描述
eg. Xen、VMware ESXi、微软Hype-V

  • 特点

① 架构精简,整体速度上有一定优势
① 修改开发OS,用户体验麻烦,难度大(每次升级都要修改开发一次,升级麻烦;全虚拟化升级简单)

  • 典型代表——Xen

直接修改OS内核成一个轻量级Hypervisor,在里面运行了一个管理所有资源、做资源调度的Domain0。

组成:Xen Hypervisor(虚拟化层) + Domain0(管理主机) + DomainU(用户虚拟机)
在这里插入图片描述
用户态运行调用过程(通过Domain0进行控制和转发):
在这里插入图片描述
资源分配过程正好相反。

  1. 硬件辅助虚拟化

直接修改CPU使其支持虚拟化技术。只是辅助全虚拟化和半虚拟化。

  1. 全/半虚拟化架构的对比

在这里插入图片描述
summary:
1、 Xen平台架构侧重安全性:为保证安全性,各Domain之间对共享区域的访问和映射必须通过Hypervisor授权。
2、 KVM平台架构侧重性能:VM之间以及与Host Kernel之间对共享区域的访问和映射无需Hypervisor进行授权。使用Linux 裸金属内核,故整个访问路径较短,无性能损耗。

四、容器

利用1个开源应用容器引擎,让开发者可以打包他们的应用和依赖包到一个可移植镜像中,发布到任意Linux or Windows机器上实现虚拟化。实现app与OS解耦。

镜像是可执行的独立软件包,包含软件运行的内容(代码、运行环境、系统工具…)。容器就是将OS上层的应用进行隔离。

  • 主流容器技术——Docker

Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。有了Docker就不用担心环境问题了。

将应用程序与该程序的依赖打包在一个文件里,运行这个文件就会生成一个虚拟容器,程序在这个虚拟容器中运行,就好像在真实物理机上运行一样。

核心:实现应用与运行环境整体打包以及打包格式的统一。

  • 容器的组成

客户端(Docker Client):图形化界面,与客户交流;
守护进程(Docker Daemon):接收客户端消息,与底层交流;
镜像(Docker Image):创建Docker容器;
容器(Docker Container):镜像运行的示例;
仓库(Docker Registry):存放镜像文件。

  • 容器的特点

本质上是一款轻量级的虚拟化技术。
① 用户需要高效运行环境,而非整个机器;
② 一次构建(build),到处运行;
③ 部署方便(创建速度秒级);
④ 隔离性好(相对于应用程序而非OS);
⑤ 成本低。

  • 容器和虚拟化的区别

主要:容器不用打包OS,虚拟化需要

虚拟化容器
隔离性强,有独立的Guest OS共享内核和OS,隔离性弱
虚拟化性能差(>15%)计算/存储无损耗,无Guest OS内存开销(~200M)
镜像庞大(10几G),实例化时不能共享镜像200~300M,公共基础镜像实例化时可以共享
镜像缺乏统一标准Docker提供了容器应用镜像事实标准,OCI推动进一步标准化
创建慢(>2min)秒级创建,相当于建立索引
启动慢(>30s),读文件逐个加载秒级启动(不含应用本身启动)
资源虚拟化粒度低,单机10~100虚拟机单机支持1000+容器,密度高,适合大规模部署
  • 容器应用场景

1、提供一次性环境;
2、提供弹性云服务。随开随关、动态扩容缩容;
3、组建微服务架构。一台机器通过多个容器跑多个服务。

summary:虚拟化实现底层硬件和OS解耦,容器实现app和OS解耦。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值