如何在Linux上安装libvirt虚拟化工具

Python018

如何在Linux上安装libvirt虚拟化工具,第1张

libvirt是一套免费、开源的支持Linux下主流虚拟化工具libvirt 比较和用例模型的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。

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