centos 6.4 x86_64 yum上安装xen 4.2.2

心已入冬 提交于 2019-12-01 12:17:14

一.准备系统环境
1.下载kernel-xen repo镜像

 
wget http://us3.mirror.crc.id.au/el6/x86_64/kernel-xen-release-6-6.noarch.rpm
rpm -ivh kernel-xen-release-6-4.noarch.rpm

2 安装xen 内核及其相关软件

 
yum install -y xen kernel-xen xen-libs python-virtinst bridge-utils
reboot

关闭selinux

这是必须关闭的,要不会因为selinux的安全机制导致xen无法正常工作。

编辑selinux配置文件

  1. vi /etc/sysconfig/selinux

修改为如下:

  1. # This file controls the state of SELinux on the system.
  2. # SELINUX= can take one of these three values:
  3. # enforcing - SELinux security policy is enforced.
  4. # permissive - SELinux prints warnings instead of enforcing.
  5. # disabled - No SELinux policy is loaded.
  6. SELINUX=disabled
  7. # SELINUXTYPE= can take one of these two values:
  8. # targeted - Targeted processes are protected,
  9. # mls - Multi Level Security protection.
  10. SELINUXTYPE=targeted

还有一点配置也很重要,就是禁止netmanager接管网络,因为这个工具不支持网桥管理。
在/etc/sysconfig/network-script/ifcfg-eth0中加入:

  1. NM_CONTROLLED=no

3.重新编译libvirtrpm包,因为centos 6 中的libvirt去掉了对xen支持

因为rpm安装的libvirt不支持xen连接,所以我们使用编译安装。还有版本也不能选择高的,不然可能会因为iptables的版本低而不能使用libvirt。

  1. yum install gcc xen-devel libxml2-devel gnutls-devel device-mapper-devel libnl-devel make
  2. cd /tmp
  3. wget http://libvirt.org/sources/libvirt-0.8.1.tar.gz  (此地址可能变更了,需要Google到其新地址)
  4. tar xzf libvirt-0.8.1.tar.gz
  5. cd libvirt-0.8.1
  6. ./configure --with-xen --with-xen-inotify --with-libvirtd
  7. make && make install

然后打开/usr/local/etc/libvirt/libvirtd.conf文件,删除unix_sock_dir = "/var/run/libvirt"前面的注释,并创建/var/run/libvirt目录。
之后启动libvirtd,并设置开机启动

  1. libvirtd -d
  2. echo "/usr/local/sbin/libvirtd -d" >>/etc/rc.d/rc.local
   

安装api管理工具

  1. yum install virt-install virt-viewer

重启引导进入xen内核

引导后执行xm info测试:

  1. [root@localhost ~]# xm info
  2. host                   : localhost.localdomain
  3. release                : 2.6.32.56-1.el6xen.x86_64
  4. version                : #1 SMP Mon Feb 20 13:03:03 EST 2012
  5. machine                : x86_64
  6. nr_cpus                : 4
  7. nr_nodes               : 1
  8. cores_per_socket       : 2
  9. threads_per_core       : 2
  10. cpu_mhz                : 2394
  11. hw_caps                : bfebfbff:28100800:00000000:00003f40:009ae3bd:00000000:00000001:00000000
  12. virt_caps              : hvm
  13. total_memory           : 1972
  14. free_memory            : 412
  15. free_cpus              : 0
  16. xen_major              : 4
  17. xen_minor              : 1
  18. xen_extra              : .2
  19. xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
  20. xen_scheduler          : credit
  21. xen_pagesize           : 4096
  22. platform_params        : virt_start=0xffff800000000000
  23. xen_changeset          : unavailable
  24. xen_commandline        : dom0_mem=1024M loglvl=all guest_loglvl=all
  25. cc_compiler            : gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
  26. cc_compile_by          : mockbuild
  27. cc_compile_domain      : crc.id.au
  28. cc_compile_date        : Mon Feb 20 12:52:37 EST 2012
  29. xend_config_format     : 4
4. 配置网卡为桥接模式
例如:

 
cd /etc/sysconfig/network-scripts/
 cp -a ifcfg-eth0 ifcfg-br0
ifcfg-br0 内容为
DEVICE="br0"
BOOTPROTO="none"
HWADDR="6C:92:BF:00:40:CA"
NM_CONTROLLED="yes"
IPADDR=172.19.10.21
ONBOOT="yes"
TYPE="Bridge"
NETMASK="255.255.255.0"
#UUID="a833937d-9306-44d3-a011-b941d4c4dd7b"

ifcfg-eth0修改如下

 
DEVICE="eth0"
HWADDR="6C:92:BF:00:40:CA"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=br0
UUID="a833937d-9306-44d3-a011-b941d4c4dd7b"

修改完毕重启网卡
service network restart

5.最后修改/boot/grub/grub.conf

 
grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda8
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.6.7-1.el6xen.x86_64)
        root (hd0,0)
        kernel /xen-4.2.gz  dom0_mem=4096M
        module /vmlinuz-3.6.7-1.el6xen.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
        module /initramfs-3.6.7-1.el6xen.x86_64.img
title CentOS (2.6.32-279.14.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.14.1.el6.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-279.14.1.el6.x86_64.img
title CentOS (2.6.32-279.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-279.el6.x86_64.img

+-------------------------------------------------------------------------------------------------------------------+
方法二: 更简单,直接使用 Xen4CentOS6 project的劳动成果,很快,几步就OK了,具体参见( http://wiki.centos.org/HowTos/Xen/Xen4QuickStart),下面列出主要步骤:
1. 先执行如下命令安装XEN Kernel
yum install centos-release-xen
yum install xen

2.然后执行如下命令来更改启动顺序,将XEN KERNEL加载起来:
/usr/bin/grub-bootxen.sh

3. 完毕后需要手动根据自己的机器内存情况更改/etc/grub.conf的配置,默认经过步骤3后使用的是1G,格式如下:
title CentOS (3.4.46-8.el6.centos.alt.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
        module /vmlinuz-3.4.46-8.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_xen01-lv_root rd_LVM_LV=vg_xen01/lv_swap rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=uk rd_NO_MD LANG=en_GB rd_LVM_LV=vg_xen01/lv_root SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM rhgb quiet
        module /initramfs-3.4.46-8.el6.centos.alt.x86_64.img
需要将上面的
dom0_mem=1024M,max:1024M
改为:
dom0_mem=4G,max:4G
上面的这个数字应该是虚拟机吃掉的内存总量,而不是物理内存总量,否则你启动后会发现根本启动不了,举例而言,你物理机有16GB,那么建议这个数字放到8GB,物理机为32GB,那么这个数字放到24GB.

4. 重新启动一下即可加载XEN KERNEL了。

5. 安装Virt-Manager与VNC Server来安装机器,命令如下:
  yum install openssh tigervnc  tigervnc-server
 yum install kvm virt-viewer virt-manager libvirt libvirt-python python-virtinst

关于VNC的配置,这里不罗嗦了,大家看我以前的博客有讲到,完成这些配置后,需要进行如下步骤。

6. 使用"ifconfig"查看虚拟网卡,如果没有虚拟网卡,那么需要在/etc/xen/xend-config.sxp中更改配置添加具体的参数,这些请看我之前的XEN安装博客系列可以找到答案。

7. 启动VNC服务,即可安装虚拟机了,具体请看我之前的XEN安装博客系列

+---------------------------------------------------------------------------------------------------------------------------------------------------------------

创建桥接网络:
操作系统安装完成支持虚拟化相关包后,会自动建立一个名称为virbr0的虚拟网桥,在多网卡情况下,此网桥默认与eth1网卡绑定。为了向虚拟机提供联网功能,Xen使用virbr0作为默认网络设备,因此在实际应用中,需要将virbr0与连接到实际网络的网卡绑定,例如我的是eth0。

具体方法是修改/etc/sysconfig/network-scripts目录下的网卡配置文件,如绑定etho,则修改ifcfg-eth0 和ifcfg-virbr0

要实现网络共享和Xen的实例之间的分割,我们需要为CentOS6.x安装bridge-utils

安装桥接工具
除非你是用minimal版本最小安装的CentOS6.x,否则可以跳过这一步:

1 yum -y install bridge-utils

配置网桥
接下来,我们可以配置网桥。将当前活动网卡(通常为eth0/ eth1的wlan1/ wlan2,)的内容复制到另一个文件,并重新命名为ifcfg-br0:

1 cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0

现在,修改新文件(ifcfg-br0)的内容类似于下面的配置:
这里最重要的设置是“Device”,“Type”这两项
vi /etc/sysconfig/network-scripts/ifcfg-br0

01 DEVICE="br0"
02 NM_CONTROLLED="yes"
03 ONBOOT="yes"
04 TYPE="Bridge"
05 BOOTPROTO="none"
06 IPADDR="192.168.0.50" # Inherited from your current active interface.
07 PREFIX="24"
08 GATEWAY="192.168.0.1" # Inherited from your current active interface.
09 DNS1="8.8.8.8"
10 DNS2="8.8.4.4"
11 DEFROUTE="yes"
12 NAME="Bridge Network br0"

下一步,我们将上面的配置进行一些调整,以确保新的网桥配置生效。
这里最重要的设置是’Bridge‘这项。
vi /etc/sysconfig/network-scripts/ifcfg-eth0

01 DEVICE="eth0"
02 NM_CONTROLLED="yes"
03 ONBOOT=yes
04 TYPE="Ethernet"
05 #BOOTPROTO=none
06 #IPADDR=192.168.0.100
07 #PREFIX=24
08 #GATEWAY=192.168.0.1
09 #DNS1=8.8.8.8
10 #DNS2=8.8.4.4
11 #DEFROUTE=yes
12 NAME="Ethernet Network eth0"
13 BRIDGE="br0"

还有一点配置也很重要,就是禁止netmanager接管网络,因为这个工具不支持网桥管理。
在/etc/sysconfig/network-script/ifcfg-eth0中加入:

NM_CONTROLLED=no

为了确保新的网桥生效,需要重启网络:

1 service network restart

通过运行以下命令,检查网桥是否生效:

1 ifconfig br0

如果看到br0已经生效,则可以进入后面的操作

注:虚拟网桥由bridge-utils包中的brctl工具建立,这个包在安装虚拟化相关的包后自动安装, 使用brctl addbr 网桥名称可以增加网桥,使用brctl show显示已有网桥

创建虚拟机
采用 LibVirt/ Virt-install 及 Virt-Manager 来管理 xen4centos

1 yum install libvirt python-virtinst libvirt-daemon-xen

利用 virt-install 来安装 DomU

1 virt-install -d -n TestVM1 -r 2048 --vcpus=1 --disk /var/lib/libvirt/images/TestVM1.img,size=8 --nographics -p -l "http://192.168.0.10/centos/6.4/os/x86_64" --extra-args="text console=com1 utf8 console=hvc0"

我的安装命令:

1 virt-install -n centos_151 -r 512 --vcpus=2 -f /xen/centos_151.img -l http://192.168.1.6/soft/os/CentOS-6.3-x86_64-minimal/ --accelerate --nographics --network=bridge:br0 -s 10

在上述例子中,指令的含意包括:
-d — 侦错模式,打印大量文字及完整的设置样作侦错之用
-n TestVM1 — 虚拟机器的名称
-r 2048 — 内存大少(2048 MB,即 2 GB)
–vcpus=1 — 虚拟 CPU 的数量
–disk=/var/lib/libvirt/images/TestVM1.img,size=8 — 碟盘映像的位置及以 GB 计算的大少 …… 它可指向 LVM、等
–nographics — 由于我们的 Dom0 没有安装图像界面,因此不要采用 VNC、等
-p — 采用半虚拟化
-l “http://192.168.0.10/centos/6.4/os/x86_64″ — centos 目录树的位置,也可采用 http://mirror.centos.org/centos/6/os/x86_64/ 或其它镜像。
–extra-args=”text console=com1 utf8 console=hvc0″ — 告诉 linux 利用 com1 和 xen 利用 hvc0,好让你能通过终端機进行文字模式安装
注:这类安装采用终端機,因此局限于文字模式的安装。





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!