Libvirt

Libvirt简介

Libvirt是一些软件的集合(toolkit),其目的就是提供一个接口,通过这一套接口可以对虚拟化技术进行统一操作,如对虚拟机的创建和管理等功能。

Libvirt概括起来包括一个API库、一个 daemon(libvirtd)和一个命令行工具(virsh)。

Libvirt主要功能

虚拟机管理:包括不同的领域生命周期操作,比如:启动、停止、暂停、保存、恢复和迁移。支持多种设备类型的热插拔操作,包括:磁盘、网卡、内存和CPU。

远程机器支持:只要机器上运行了libvirt daemon,包括远程机器,所有的libvirt功能就都可以访问和使用。支持多种网络远程传输,使用最简单的SSH,不需要额外配置工作。

存储管理:任何运行了libvirt daemon的主机都可以用来管理不同类型的存储:创建不同格式的文件镜像(qcow2、vmdk、raw等)、挂接NFS共享、列出现有的LVM卷组、创建新的LVM卷组和逻辑卷、对未处理过的磁盘设备分区、挂接iSCSI共享,等等等等。因为libvirt可以远程工作,所有这些都可以通过远程主机使用。

网络接口管理:任何运行了libvirt daemon的主机都可以用来管理物理和逻辑的网络接口。

虚拟NAT和基于路由的网络:任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。

Libvirt架构

libvirt 比较和用例模型

 

右图是在左图的基础上增加了Libvirt库的变化。libvirt建立在linux宿主操作系统之上,管理程序通过libvirt来控制本地域,也就是VM。

当管理程序和Domain处在不同的节点上的时候,前者则需要通过远程通信的方式对Domain进行管理。远程节点上运行着一个名为libvirtd的守护进程,它会为同一个节点上的hypervisor自动安装驱动,然后管理程序就通过一种通用的协议(ssh,tcp,tls)将本地的libvirt和远程节点的libvirtd进行连接。

libvirt会为不同的虚拟化监控程序安装不同的驱动,从而提供出一套统一的管理API。

基于驱动程序的 libvirt 架构

 

Libvirt支持的虚拟机监控程序包括:

虚拟机监控程序描述
Xen 面向 IA-32,IA-64 和 PowerPC 970 架构的虚拟机监控程序
QEMU 面向各种架构的平台仿真器
Kernel-based Virtual Machine (KVM) Linux 平台仿真器
Linux Containers(LXC) 用于操作系统虚拟化的 Linux(轻量级)容器
OpenVZ 基于 Linux 内核的操作系统级虚拟化
VirtualBox x86 虚拟化虚拟机监控程序
User Mode Linux 面向各种架构的 Linux 平台仿真器
Test 面向伪虚拟机监控程序的测试驱动器
Storage 存储池驱动器(本地磁盘,网络磁盘,iSCSI 卷)

 

Virsh命令行

virsh命令行可以用来创建、管理虚拟机。在virsh后面直接跟命令参数就是命令行模式,只输入virsh回车就进入交互模式。

在输入help之后,可以看到分为了domain、monitor、host、interface、nodedev、snapshot、storage等多个方面的管理。

此外,还可以指定URI进行远程操作,如virsh -c qemu+ssh//xxx/system list等。

qemu:///session                      (local access to per-user instance)
qemu+unix:///session                 (local access to per-user instance)
qemu:///system                       (local access to system instance)
qemu+unix:///system                  (local access to system instance)
qemu://example.com/system            (remote access, TLS/x509)
qemu+tcp://example.com/system        (remote access, SASl/Kerberos)
qemu+ssh://root@example.com/system   (remote access, SSH tunnelled)

 

参考资料:

【Libvirt学习总结】http://blog.csdn.net/gaoxingnengjisuan/article/details/9674315

【Libvirt 虚拟化库剖析】http://www.ibm.com/developerworks/cn/linux/l-libvirt/

 

posted @ 2013-12-21 20:06  cubika  阅读(1191)  评论(0编辑  收藏  举报