04虚拟化

概述

定义

虚拟化是资源的逻辑表示,它不受物理限制的约束

虚拟化的产生:资源浪费

虚拟化前后对比

虚拟化前

一台主机一个操作系统

多个应用程序争抢资源,存在相互冲突的风险

业务系统与硬件强绑定,不灵活

系统的资源利用率低 5-15%

虚拟化后

一台主机多个操作系统

每个应用具有独立的CPU、内存和I/O资源,相互独立

业务系统独立于硬件,可方便在不同主机间迁移

充分利用系统资源,一般可达60%

虚拟化技术分类

服务器虚拟化

网络虚拟化

网络虚拟化以软件的形式完整再现了物理网络,应用在虚拟网络上的运行与在物理网络上的运行完全相同

桌面虚拟化

软件定义的存储

海量数据和实时应用使存储需求达到新的高度

虚拟化与虚拟机

虚拟化是一个术语

虚拟机是一种特殊的软件

虚拟化与云计算的关系

云计算是并行计算、分布式计算和网格计算的发展,或者说是这些计算机科学概念的商用实现

云计算 是虚拟化效用计算、Iaas、PaaS、SaaS等概念混合演进并跃升的结果

服务器虚拟化

关键特性

分区

隔离

封装

相对硬件独立

广泛兼容

标准接口

核心技术

服务器虚拟化必备的是对三种硬件资源的虚拟化:CPU、内存、设备与IO

为了更好的多态资源整合,当前服务器虚拟化多半都支持虚拟机的实时迁移

实时迁移

实时迁移:将整个虚拟机的运行状态完整、快速地从原来的宿主机硬件平台迁移到新的宿主机硬件平台上,并且整个迁移的过程中是平滑的,用户几乎不会察觉到任何差异

服务器虚拟化的两个 方向

  • 一变多

    将一台服务器虚拟化化为更多的虚拟机

    Intel架构服务器

    UNIX服务器

  • 多变一

    将多台服务器虚拟化 合成一台虚拟机

    网格计算

    高性能计算

VMM

Virtual Machine Monitor -- 虚拟机监控器

两种架构

  • 寄居架构:虚拟化软件层位于主机操作系统之上
  • 裸金属架构:虚拟化软件层直接位于计算机硬件资源之上

X86架构

处理效率高,运行级别Ring0最高

通过VMM可实现客户端操作系统对硬件的访问,根据原理不同,分为三类:

  • 全虚拟化
  • 半虚拟化(准虚拟化)
  • 硬件辅助虚拟化

全虚拟化

BT

二进制翻译技术简称BT,是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行

半虚拟化

半虚拟化的价值在于更低的虚拟化代码,但是相对于全虚拟化,半虚拟化的性能优势根据不同的工作负载有很大的差别,

半虚拟化不支持未经修改的操作系统

硬件辅助虚拟化

为CPU添加一个执行模式,Root根模式

三种虚拟化技术对比

  • 只有半虚拟化需要修改Guest OS(客户操作系统)
  • 半虚拟化兼容性最差
  • 性能方面:全虚拟化最差,半虚拟化相对比较高,硬件辅助虚拟化一般
  • CPU虚拟化方面:全虚拟化使用的是二进制代码翻译、半虚拟化使用的超级调用,硬件辅助虚拟化使用的是增加新指令

虚拟化的好处(优点)

  • 提高硬件资源的利用率
  • 提高劳动生产率
  • 节省大量的成本
  • 整合硬件设备
  • 改进IT管理架构的兼容性

其他优点

  • 改善可靠性
  • 自动化管理更加轻松

发展前景

  • 快速部署
  • 兼容遗留软件
  • 系统隔离
  • 灾难恢复

虚拟化技术

  • 在线资源扩展
  • 自动负载均衡
  • 高可用性工作量和能源消耗管理
  • 业务不间断维护

商用虚拟机技术

  • Xen -- 半虚拟化
  • KVM -- 全虚拟化、部分半虚拟化
  • Hyper-V -- 半虚拟化
  • VMware ESX和 ESXi -- 全虚拟化
  • VmWare Workstation -- 半虚拟化

虚拟机联网方式

  • NAT:地址转换
  • 桥接
  • host-only

轻量级虚拟化技术--容器

本质

容器是宿主机上的一个进程

docker

简介

docker是一个开源项目

docker项目的目的是实现轻量级的操作系统虚拟化解决方案

容器背后的内核知识

docker容器的本质是宿主机上的一个进程,通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制技术实现了高效的文件操作

cgroups的主要功能包括

  • 资源限制
  • 优先级控制
  • 审计
  • 控制

写时复制技术

在docker中,镜像是容器的基础,docker镜像是由文件系统叠加而成

docker容器命令

命令 描述
docker attach 容器ID 进入容器
docker create 创建、不启动容器
docker run -it 镜像 创建容器、启动、进入
docker run 创建容器、启动容器

docker三个基本概念

  • 镜像(image)
  • 容器(container)
  • 仓库(repository)

注意:docker利用容器来运行应用,镜像是只读的

Docker VS VM

容器技术 虚拟机技术
占用磁盘空间 小,甚至几十KB 非常大,上GB
启动速度 快,几秒钟 慢,几分钟
运行形态 直接运行与宿主机的内核中,不同容器共享同一个Linux内核 运行于Hypervisior上
并发性 一台宿主机可以启动上千个容器 最多几十个虚拟机
性能 接近宿主本地进程 逊于宿主机
资源利用率

上一篇:设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1<=i,j<=n,且i<=j)在B中的位置为()


下一篇:寒假笔记04