Linux下虚拟化工具llibvirt安装步骤:
by TANG Jia
本测试通过的版本号为:ubuntu12.04、libvirt1.1.2
安装libvirt:
1,安装virtinst
apt get installvirtinst
安装libvirt之前首先安装virtinst目的是为了使后面编译安装libvirt时,覆盖安装virtinst时自带的libvirt的版本,这点很重要。之后才能编译安装libvirt.
2,下载libvirt1.1.2,解压缩,切换至libvirt1.1.2目录
下载libvirt压缩包网址:ftp://libvirt.org/libvirt/
3,如果你直接执行./configure,会提示你缺少很多包,所以先安装包:
apt-get install libxml++2.6-2 libxml++2.6-dev
apt-get install libdevmapper-dev
apt-get install libpciaccess-dev
apt-get install python-dev
apt-get install libnl-dev
4,安装完依赖包后,在当前目录下执行 ./configure--prefix=/usr
(其中--prefix选项为指定安装路径)。
执行成功,部分输出如下:
configure:Readline:no
configure:Python:yes
configure:DTrace:no
configure:numad:no
configure:XML Catalog:/etc/xml/catalog
configure:Init script:check
configure:Char device locks:/var/lock
configure:
configure:Privileges
configure:
configure:QEMU:root:root
configure:
5,编译:make
安装:makeinstall
至此libvirtd安装成功!
6,启动libvirt服务
service libvirt-bin start
万万要注意啦,libvirt-daemon是由libvirt-bin来启动的,而不是libvirtd,libvirt-bin是一个符号链接/etc/init.d/libvirt-bin->/lib/init/upstart-job,后者是一个shell脚本。
同样,停止libvirt服务就是service libvrit-bin stop
以上操作的正确性仅限于在ubuntu上安装libvirt,重点是第1步和第6步,这和网上很多博文所讲的libvirt安装有些差异,比如很多没有第1步,第6步启动libvirt为service libvirtd
start,这会报错为libvirtd:unrecognizedservice.
第2,3,4,5步的下载、编译、安装在任何版本的Linux上都一致。
libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统。希望以上对llibvirt安装流程介绍对大家有所帮助。关注系统部落,锁定电脑系统下载!
1. Libvirt API主要为不同的虚拟化技术方案对外提供统一的接口,其设计思想为:
(1)isolation from HV API changes - 隔离底层硬件虚拟化接口对上层的影响
(2)portable across HV - 支持多种os,如linux,windows,solairs等
(3)rapid application development - 提供封装的API,加快软件开发的过程
(4)TLS, SASL, SSH, PolicyKit - 提供各种加密协议,保证了上层应用对下层资源的安全访问
通过封装最原始的C库,实现了多种编程语言的接口:Perl, Python, OCaml, Java, Ruby,C#, Php,并对目前在应用层编程中常用的协议进行封装,形成不同的协议库,方便在应用层编程中调用,目前主要支持:
(1)Mapping to CIM/DMTF: libvirt-cim
公共信息模型CIM,是一个与具体实现无关的、用于描述管理信息的概念性模型。
(2)Mapping to AMQP/QMF: libvirt-qmf
AMQP是一个提供统一消息服务的应用层标准协议,是一种二进制协议,提供客户端应用与消息中间件之间异步、安全、高效地交互。
基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。
(3)Mapping to SNMP: libvirt-snmp
该库使得libvirt具备SNMP的功能,开发人员能够通过SNMP来监控和设置每个node上不同domain的信息
(4)Mapping to GObject: libvirt-glib