一.准备系统环境
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 内核及其相关软件
关闭selinux
这是必须关闭的,要不会因为selinux的安全机制导致xen无法正常工作。
编辑selinux配置文件
- vi /etc/sysconfig/selinux
修改为如下:
- # This file controls the state of SELinux on the system.
- # SELINUX= can take one of these three values:
- # enforcing - SELinux security policy is enforced.
- # permissive - SELinux prints warnings instead of enforcing.
- # disabled - No SELinux policy is loaded.
- SELINUX=disabled
- # SELINUXTYPE= can take one of these two values:
- # targeted - Targeted processes are protected,
- # mls - Multi Level Security protection.
- SELINUXTYPE=targeted
还有一点配置也很重要,就是禁止netmanager接管网络,因为这个工具不支持网桥管理。
在/etc/sysconfig/network-script/ifcfg-eth0中加入:
- NM_CONTROLLED=no
3.重新编译libvirtrpm包,因为centos 6 中的libvirt去掉了对xen支持
因为rpm安装的libvirt不支持xen连接,所以我们使用编译安装。还有版本也不能选择高的,不然可能会因为iptables的版本低而不能使用libvirt。
- yum install gcc xen-devel libxml2-devel gnutls-devel device-mapper-devel libnl-devel make
- cd /tmp
- wget http://libvirt.org/sources/libvirt-0.8.1.tar.gz (此地址可能变更了,需要Google到其新地址)
- tar xzf libvirt-0.8.1.tar.gz
- cd libvirt-0.8.1
- ./configure --with-xen --with-xen-inotify --with-libvirtd
- make && make install
然后打开/usr/local/etc/libvirt/libvirtd.conf文件,删除unix_sock_dir = "/var/run/libvirt"前面的注释,并创建/var/run/libvirt目录。
之后启动libvirtd,并设置开机启动
- libvirtd -d
- echo "/usr/local/sbin/libvirtd -d" >>/etc/rc.d/rc.local
安装api管理工具
- yum install virt-install virt-viewer
重启引导进入xen内核
引导后执行xm info测试:
- [root@localhost ~]# xm info
- host : localhost.localdomain
- release : 2.6.32.56-1.el6xen.x86_64
- version : #1 SMP Mon Feb 20 13:03:03 EST 2012
- machine : x86_64
- nr_cpus : 4
- nr_nodes : 1
- cores_per_socket : 2
- threads_per_core : 2
- cpu_mhz : 2394
- hw_caps : bfebfbff:28100800:00000000:00003f40:009ae3bd:00000000:00000001:00000000
- virt_caps : hvm
- total_memory : 1972
- free_memory : 412
- free_cpus : 0
- xen_major : 4
- xen_minor : 1
- xen_extra : .2
- 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
- xen_scheduler : credit
- xen_pagesize : 4096
- platform_params : virt_start=0xffff800000000000
- xen_changeset : unavailable
- xen_commandline : dom0_mem=1024M loglvl=all guest_loglvl=all
- cc_compiler : gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
- cc_compile_by : mockbuild
- cc_compile_domain : crc.id.au
- cc_compile_date : Mon Feb 20 12:52:37 EST 2012
- xend_config_format : 4
例如:
ifcfg-eth0修改如下
修改完毕重启网卡
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
/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安装博客系列 。+--------------------------------------------------------------------------------------------------------------------------------------------------------------- 创建桥接网络: 具体方法是修改/etc/sysconfig/network-scripts目录下的网卡配置文件,如绑定etho,则修改ifcfg-eth0 和ifcfg-virbr0 要实现网络共享和Xen的实例之间的分割,我们需要为CentOS6.x安装bridge-utils 安装桥接工具
配置网桥
现在,修改新文件(ifcfg-br0)的内容类似于下面的配置:
下一步,我们将上面的配置进行一些调整,以确保新的网桥配置生效。
还有一点配置也很重要,就是禁止netmanager接管网络,因为这个工具不支持网桥管理。 NM_CONTROLLED=no 为了确保新的网桥生效,需要重启网络:
通过运行以下命令,检查网桥是否生效:
如果看到br0已经生效,则可以进入后面的操作 注:虚拟网桥由bridge-utils包中的brctl工具建立,这个包在安装虚拟化相关的包后自动安装, 使用brctl addbr 网桥名称可以增加网桥,使用brctl show显示已有网桥 创建虚拟机
利用 virt-install 来安装 DomU
我的安装命令:
在上述例子中,指令的含意包括: |
来源:CSDN
作者:JackxinXu2100
链接:https://blog.csdn.net/jackxinxu2100/article/details/17836747