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

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


第四步:修改配置文件
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:///"


第六部:安装virt-manager
sudo apt-get install virtinst  virt-viewer virt-manager

第七部:安装ssh服务
sudo apt-get install openssh-server

第八部:安装libvir
1.安装依赖的软件包
apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev

2.安装YAJL
sudo apt-get install g++
sudo apt-get install cmake ruby
进入YAJL所在目录(这里只是软件包的简称,可能还有版本名,如YAJL即为lloyd-yajl-ce86b0f,以下同。)
(1)./configure
(2)make
(3)make install

3.安装device-mapper
进入device-mapper所在目录
   (1) ./configure
    (2) sudo make
    (3) sudo make install

4.进入libvirt所在目录
(1)./configure
(2)make
(3)make install

出现的问题及解决办法:
(1)解决error while loading shared libraries: libvirt.so.0
    第一种:
    定义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

    记得要重启,才能有用


 (3)启动libvirt时LIBVIERT_VERSION_0.7没找到,才发现原来系统原来有个libvirt.so.0,于是删除原来的,并将新的替换原来的
     mv libvirt.so.0.7.0 libvirt.so.0


 (4)找不到libvirt-sock,说没有这个文件,错误情况:“libvir: Remote error : unable to connect to '/usr/local/var/run/libvirt/libvirt-sock': No such file or directory”再做个链接
      ln -s /var/run/libvirt/libvirt-sock /usr/local/var/run/libvirt/libvirt-sock

 (5)找不到libvirt-sock,说没有这个文件,错误情况:“libvir: 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


(6) 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 &


这里就安装结束了,但打开virt-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/

并在/usr/lib/xen/bin下面的qemu-dm文件剪切到/usr/lib64/xen/bin目录下。
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

最后使用virsh version查看环境是否配置正确,若不正确,则会报错。

也可以安装虚拟机查看环境是否配置正确。

https://wiki.debian.org/libvirt

猜你喜欢

转载自blog.csdn.net/wo_xiao_lin/article/details/8649426
XEN