OpenStack 01

KVM

KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。

Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh

  1. libvirtd是服务程序,接收和处理 API 请求;
  2. API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具,后面我们也会介绍;
  3. virsh 是我们经常要用的 KVM 命令行工具。

Ubuntu安装KVM

# sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan
# 确认 CPU 支持虚拟化
# egrep -o '(vmx|svm)' /proc/cpuinfo
  vmx
# 确认 Libvirtd 服务已经启动
# service libvirt-bin status
  libvirt-bin start/running, process 1478
# virt-manager 启动图形界面
# virt-manager
# virsh list
Id    Name              State
--------------------------------
8     kvm1              running

目录类型的 Storage Pool

  • KVM 将宿主机目录 /var/lib/libvirt/images/ 作为默认的 Storage Pool
    使用文件做 Volume 有很多优点:存储方便、移植性好、可复制、可远程访问。 远程访问的意思是镜像文件不一定都放置到宿主机本地文件系统中,也可以存储在通过网络连接的远程文件系统,比如 NFS,或者是分布式文件系统中,比如 GlusterFS。
  • 这样镜像文件就可以在多个宿主机之间共享,便于虚机在不同宿主机之间做 Live Migration;如果是分布式文件系统,多副本的特性还可以保证镜像文件的高可用。
  • KVM 支持多种 Volume 文件格式,在添加 Volume 时可以选择
  • raw 是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。
  • qcow2 是推荐使用的格式,cow 表示 copy on write,能够节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能很多。
  • vmdk 是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机可以直接在 KVM上 运行。

LVM (JD JDOS)

  • 不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上 VG 中的 LV 也可以作为虚拟磁盘分配给虚拟机使用。
  • 不过,LV 由于没有磁盘的 MBR 引导记录,不能作为虚拟机的启动盘,只能作为数据盘使用。
  • 这种配置下,宿主机上的 VG 就是一个 Storage Pool,VG 中的 LV 就是 Volume。 LV 的优点是有较好的性能;不足的地方是管理和移动性方面不如镜像文件,而且不能通过网络远程使用。
    KVM 还支持 iSCSI,Ceph 等多种类型的 Storage Pool,这里就不一一介绍了,最常用的就是目录类型,其他类型可以参考文档http://libvirt.org/storage.html

你可能感兴趣的:(OpenStack 01)