ubuntu12.04源码安装libvirt0.9.13与xen4.1(与kvm)整体环境配置流程

前期准备

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查看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值