openstack已经成为云计算的事实标准,其依赖的一个重要的核心就是虚拟化技术
(1)虚拟化的概念
所谓虚拟化就是在物理设备上同时运行多台虚拟机,这些虚拟机共享物理设备的CPU,内存和网络,但是这些虚拟机之间是相互隔离的。
物理机被称为host(宿主机),虚拟机被称为guest。
(2)虚拟化分类
虚拟机的调度管理依赖于hypervisor软件,根据hypervisor所处的位置,可以分为2大类:
1、直接在硬件上安装hypervisor,该软件通常是一个订制化的linux系统。比较常用的有Xen,VmWare iSxxx。
2、在常规操作系统上安装hypervisor软件,再在其上创建虚拟机,比较常用的有KVM,VirtualBox,VmWare workstation。
(3)KVM
KVM全程为Kernel-Based Virtual Machine ,也就是KVM是基于linux内核实现的,
(4)libvirt
谈到KVM,不得不提及libvirt,它是KVM的管理工具。libvirt不仅能够管理KVM,还能够管理Xen,VirtualBox。openstack底层也是使用libvirt。它包含3个东西:
第一部分就是daemon程序libvirtd,用来出来hypervisor发来的请求。
第二部分就是api库,开发人员可以基于libvirt开发高级工具,例如,例如图形化界面virt-manager。
第三部是virsh 就是KVM的命令行工具。