设为首页 收藏本站
查看: 1027|回复: 0

[经验分享] ubuntu12.04源码安装libvirt0.9.13与xen4.1(与kvm)整体环境配置流程

[复制链接]

尚未签到

发表于 2015-10-10 13:20:18 | 显示全部楼层 |阅读模式
前期准备

1、首先确定机器有VT

终端输入:grep vmx /proc/cpuinfo(intel芯片)

grep svm /proc/cpuinfo(AMD芯片)

不知道自己芯片的就输入:egrep '(vmx|svm)' /proc/cpuinfo

如果flags里面有vmx或者svm就是支持VT,如果没有任何输出则是不支持

2、确保BIOS里面开启了VT

    intel(R) Virtualization Tech [Enable]

    如果有必要,还需要在BIOS里面开启VT-d






请注意安装的先后顺序!

/*****************************************************************安装xen********************************************************************/




第一步:安装需要的软件包



安装编译 Xen 和 Linux xen kernel 所需要的软件包:

sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \

zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \

libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \

libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \

build-essential crash kexec-tools makedumpfile  libncurses5 \

libncurses5-dev iasl gawk





第二步:安装xen vmm

32位和64位系统的区别也很重要。64位按下面步骤很简单,32位就不同,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:

sudo apt-get install linux-image-server



sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils

这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.





第三步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:

$ sudo xm list

Name                                        ID   Mem VCPUs      State   Time(s)

Domain-0                                     0  1879     2     r-----      6.6



出现上面的信息,则代表安装成功。



接着修改grub,使xen自启动。此步骤可以省略

$ sudo apt-get purge grub-pc
$ sudo rm /boot/grub/*
$ sudo apt-get install grub
$ sudo grub-install --recheck /dev/sda
$ sudo update-grub
$ sudo vi /boot/grub/menu.lst




第五步:修改配置文件



sudo gedit  /etc/xen/xend-config.sxp

将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”跟“#(xend-relocation-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。 relocation是迁移必须要开启的服务,其他的服务在没有必要的时候不要随便打开

然后重启xend服务(手动启动/停止/重启Xen服务命令:/etc/init.d/xend  start /  stop /  restart)



sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话

export VIRSH_DEFAULT_CONNECT_URI="xen:///"





(/*****************************************************************安装 kvm******************************************************************/

注意!装了xen就不要执行这一步了,这两种虚拟机管理器装一种就行了!



sudo apt-get install kvm



由于配合kvm一起工作的qemu已经替你实现了模拟硬件虚拟化,所以即使你的硬件不支持虚拟化也一样可以用kvm跟libvirt搭配使用的

这个kvm安装比xen要方便很多,但是也是有一定缺陷的,看你要做什么的吧。其他配置过程是一样的







/****************************************安装vir-manager**************************************************************/



sudo apt-get install virtinst  virt-viewer virt-manager







/***********************************************************安装ssh服务******************************************************/



sudo apt-get install openssh-server







/**********************************************************安装libvirt***********************************************************/



1.安装依赖的软件包

apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev



从网上下载YAJL(yajl_1.0.8.orig.tar.gz)

解压后进入该目录下,先安装C++/C编译器,

sudo apt-get install g++

然后继续执行一下命令:

sudo apt-get install build-essential  

然后执行:

sudo apt-get install cmake ruby

最后执行:

(1)./configure

(2)make

(3)make install



从网上下载device-mapper.1.02.28.tgz,然后解压缩tar -zxvf device-mapper.1.02.28.tgz,

进入解压后的文件夹中:cd device-mapper.1.02.28。安装device-mapper。

   (1) ./configure

    (2) sudo make

    (3) sudo make install





以上安装各个依赖包的作用:

libxml2 libxml2-dev解决:出现checking libxml2 xml2-config >= 2.6.0..

gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev解决:configrue: error: you must install the gnutls library in order to compile and run libvirt

YAJL解决:configure: error: You must install the YAJL development package in order to compile libvirt

device-mapper解决:缺少device-mapper-devel

python-dev解决:You must install python-devel to build Python bindings

libnl-dev解决:configure: error: libnl-devel >= 1.1 is required for macvtap support







2.安装libvirt

cd进入libvirt文件夹

(1)./configure

(2)make

(3)make install

如果没有什么错误提示即安装成功





安装libvirt后出现的问题及解决办法

(1)解决

virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.11' not found (required by virsh)

virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.9' not found (required by virsh)

virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.10' not found (required by virsh)

virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_0.9.13' not found (required by virsh)

virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_0.9.13' not found (required by virsh)

    第一种:

    定义shell变量 LD_LIBRARY_PATH

    $ LD_LIBRARY_PATH=/usr/local/lib

    $ export LD_LIBRARY_PATH

    $ ./example

    第二种:

    修改系统动态链接库配置文件

    (the system dynamic linker configuration)

    进入目录/etc/ld.so.conf.d

    添加一个文件libvirt.conf,内容是:

    # libvirt default configuration

    /usr/local/lib

    更新动态链接库缓存

    sudo ldconfig

(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory

    添加libvirt用户组

    sudo groupadd libvirt

    添加当前用户到libvirt组里

    sudo gpasswd -a  root libvirt

    记得要重启,才能有用
    或者做个链接:

    ln -s /var/run/libvirt/libvirt-sock /usr/local/var/run/libvirt/libvirt-sock


    如果有 libvirt: Remote error : unable to connect to '/usr/local/var/run/libvirt/libvirt-sock-ro': No such file or directory”


    再做个链接

    ln -s /var/run/libvirt/libvirt-sock-ro /usr/local/var/run/libvirt/libvirt-sock-ro




(3) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located

    编辑文件/usr/local/etc/libvirt/libvirtd.conf



    取消一下几项的注释

    unix_sock_group = "libvirt"

    unix_sock_ro_perms = "0777"

    unix_sock_rw_perms = "0770"

    unix_sock_dir = "/var/run/libvirt"修改为

    unix_sock_dir = "/usr/local/var/run/libvirt"

    auth_unix_ro = "none"

    auth_unix_rw = "none"

最后:如果要启动自动运行libvirtd

    编辑文件/etc/rc.local

    在exit 0之前添加

    sudo libvirtd &



(4)解决打开vir-manager时的错误

创建时因为相关资源路径问题可能会报以下错误

6.1  ******/usr/lib/xen/bin/qemu-dm:****

路径中xen应该是xen-4.1,解决办法如下

mkdir /usr/lib/xen -p

cp /usr/lib/xen-4.1/* -r /usr/lib/xen/

6.2  ****** libvirtError: POST操作失败: xend_post:来自 xen 守护进程的错误:****

查看日志 /var/log/xen/xend.log 和 /var/log/xen/qemu-dm-demo.log

日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***

路径中qemu应该是qemu-linaro,解决办法如下

cp -r /usr/share/qemu-linaro/ /usr/share/qemu

这样创建过程基本没有问题了.







(特别声明,因为我们的项目需要,所以后面两步操作并不是必须的,只是本人为方便以后查资料写的)

/*************************************************************安装nfs******************************************************************/

配置nfs服务器需要安装:

sudo apt-get install nfs-common nfs-kernel-server portmap



nfs客户端只需要安装:

sudo apt-get install nfs-common





可以迁移的格式有:

cow    qed    vmdk vpc



打开/etc/exports文件,在末尾加入:



/nfs *(rw,sync,no_root_squash)



注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义, 各字段含义如下:



/nfs:要共享的目录



* :允许所有的网段访问



rw :读写权限



sync:资料同步写入内在和硬盘



no_root_squash:nfs客户端共享目录使用者权限



重启服务:



#sudo /etc/init.d/portmap restart <---重启portmap,很重要



#sudo /etc/init.d/nfs-kernel-server restart <---重启nfs服务



#showmount -e <---显示共享出的目录





/******************************************删除vir-manager默认存储池并新建自己的存储池*****************************************/


在virtualmaneger的默认pool存在的情况下在原来的文件夹下新建pool的步骤:

1)导出原来virtualmanager的默认pool配置文件,新建一个default.xml文件,内容为命令导出内容

具体命令:pool-dumpxml default

2)先删除原来的pool:

先不要打开virtualmanager,进入命令行virsh后使用pool-delete命令删除原来virtualmanager建的默认pool(删除的原因是这个默认的pool无法设置为自动启动)

具体命令:pool-delete default

3)新建一个自己的pool

具体命令:pool-define /default.xml    (刚才新建的default.xml文件我放在了/下)

4)设置新建的pool为自动启动:

pool-autostart default

5)重启OK

注:中间出错的话一般是因为有些操作是pool活动状态下才进行的,有些则是在不活动状态下进行的,其他操作请使用help查看

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125125-1-1.html 上篇帖子: KVM虚拟化系列之virio -------virtio scsi host driver 下篇帖子: KVM Run Process之Qemu核心流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表