链接: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 #增加或减小镜像大小