虚拟化 原理

链接:https://www.jianshu.com/p/40b44441aeb5
来源:简书 //学习总结

虚拟化的概述:

虚拟化意味着 创建设备、资源 的虚拟版本

  • 系统虚拟化
  • 存储虚拟化
  • 网络虚拟化
  • GPU虚拟化
  • 软件虚拟化
  • 硬件支持虚拟化

虚拟化的实现方式:

  • 纯软件的仿真   通过模仿完整的硬件环境
  • 虚拟化层的翻译  多数的虚拟化采用虚拟机管理程序Hypervisor
  • 容器技术

一、 虚拟化技术

  • 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
    物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)

1、虚拟化技术的分类:

(1) 模拟:Emulation

Qemu, PearPC, Bochs, ...

(2) 完全虚拟化:Full Virtualization,Native Virtualization
  • 完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。
  • VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高
    半虚拟化系统性能可以接近在裸机上的性能。

VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)

(3) 半虚拟化:Para-Virutalization
  • 半虚拟化需要对运行在虚拟机上的客户机操作系统
    进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。

  • 特点:GuestOS明确知道自己运行虚拟机之上;
    xen, UML(user-mode linux)

(4) 容器级虚拟化:

LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, ...

(5) 库级别虚拟化:

wine

(6) 程序级虚拟化

jvm, pvm, ...

2、主机虚拟化:Emulation, Full Virtualization, Para-Virutalization

Type-I:Hypervisor直接运行于硬件;
Type-II:Hypervisor运行主机OS之上;

3、云栈的类别:

  • IaaS(Infrastructure-as-a-Service)基础设施服务
  • PaaS(Platform-as-a-Service)系统平台服务
  • SaaS(Software-as-a-Service)软件服务
  • FWaaS(FireWall as a Service)防火墙服务
  • DBaaS(DataBase-as-a-Service)数据库服务
  • LBaas (load-balancer-as-a-service)负载均衡服务

 KVM简介:

其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:

  • 它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
  • 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
  • 它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
  • 它需要支持虚拟化扩展的 CPU。
  • 它是完全开源的。官网

KVM安装:

环境准备:

1.Centos7系统64位

2.CPU支持硬件辅助虚拟化 HVM

svm AMD的CPU

vmx inter的CPU

KVM模块:

libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。

bridge-utils:设置网络网卡桥接(centos7默认安装)。

qemu-img:安装qemu组件,使用qemu命令来创建管理磁盘等。

virt-manager:图形化管理工具(最好直接安装yum install virt*,需要用到的virt命令工具较为方便)

模块的使用:

1.qemu-img磁盘管理命令

info  #查看镜像的信息

create  #创建镜像

check  #检查镜像

convert  #转化镜像的格式,(raw,qcow ……)

snapshot  #管理镜像的快照

rebase  #在已有的镜像的基础上创建新的镜像

resize  #增加或减小镜像大小





原文地址:https://www.cnblogs.com/gaiting/p/12294278.html