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

[经验分享] CentOS6下快速配置Xen 4.1.1环境

[复制链接]

尚未签到

发表于 2015-10-12 07:26:01 | 显示全部楼层 |阅读模式
准备工作


  • CentOS 6.0, Minimal安装, SELINUX=disabled, 配置好SRPM的repo地址

操作步骤
  1. 安装基本软件包
  

yum -y install openssh-clients gcc g++ make automake autoconf wget glibc-devel glibc-devel.i686 libaio rpm-build yum-utils transfig libidn-devel zlib-devel texi2html SDL-devel curl-devel libX11-devel python-devel ghostscript tetex-latex ncurses-devel gtk2-devel libaio-devel texinfo dev86 gettext gnutls-devel openssl-devel pciutils-devel libuuid-devel iasl bzip2-devel xz-devel e2fsprogs-devel PyXML kpartx bridge-utils libsysfs-devel libsysfs libnl-devel libtool nfs-utils libxml2-devel xhtml1-dtds readline-devel libudev-devel  libpciaccess-devel yajl-devel libpcap-devel avahi-devel dnsmasq cyrus-sasl-devel polkit lvm2 iscsi-initiator-utils parted-devel device-mapper-devel numactl-devel libcap-ng-devel netcf-devel ebtables lzop nc cyrus-sasl-md5 python-virtinst

2. 安装qemu  
  

wget http://mirrors.ustc.edu.cn/fedora/linux/updates/13/x86_64/qemu-common-0.13.0-1.fc13.x86_64.rpm
wget http://mirrors.ustc.edu.cn/fedora/linux/updates/13/x86_64/qemu-img-0.13.0-1.fc13.x86_64.rpm
rpm -Uvh qemu-*.rpm
  
  

3. 通过srpm编译安装Xen
  

wget http://mirrors.ustc.edu.cn/fedora/linux/updates/15/SRPMS/xen-4.1.1-3.fc15.src.rpm
rpm -i xen-4.1.1-3.fc15.src.rpm
cd ~/rpmbuild/SPECS/
rpmbuild -bb xen.spec
cd ~/rpmbuild/RPMS/x86_64/
rpm -Uvh xen-*4.1.1-*.rpm


4. 修改bridge-utils, CentOS 6.0的默认内核被加了IGMP的patch, 其自带的bridge-utils也打了这个patch, 在非rhel6的内核上运行会出现很多没用的提示。  
  

yumdownloader --source bridge-utils
rpm -i bridge-utils-1.2-9.el6.src.rpm # 版本可能不同
cd ~/rpmbuild/SPECS/
vi bridge-utils.spec
# 去除两行有patch4的地方, 也即有IGMP的patch的行
rpmbuild -bb bridge-utils.spec
cd ~/rpmbuild/RPMS/x86_64/
rpm -Uvh --force bridge-utils-1.2-9.el6.x86_64.rpm
  
  

提供一个patch
  

--- bridge-utils.spec.orig      2010-04-30 00:29:16.000000000 +0800
+++ bridge-utils.spec   2011-09-30 23:27:19.090747706 +0800
@@ -10,7 +10,6 @@
Patch1: bridge-utils-1.2-show-ports.patch
Patch2: bridge-utils-1.2-foreach.patch
Patch3: bridge-utils-1.2-params.patch
-Patch4: bridge-utils-1.2-Add_IGMP_snooping_support.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: libsysfs-devel autoconf
@@ -32,7 +31,6 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1 -b .Add_IGMP_snooping_support
%build
autoconf

5. 安装libvirt, CentOS6自带的不支持xen, 需要打开xen的选项重新编译  
  

yumdownloader --source libvirt
rpm -i libvirt-0.8.1-27.el6_0.6.src.rpm # 版本可能不同
cd ~/rpmbuild/SPECS/
vi libvirt.spec # 按下面的patch修改
rpmbuild -bb libvirt.spec
cd ~/rpmbuild/RPMS/x86_64/
rpm -Uvh libvirt-*0.8.1*.rpm

Patch:

--- libvirt.spec.orig   2010-08-18 15:02:53.000000000 +0300
+++ libvirt.spec        2010-11-15 14:17:36.388996162 +0200
@@ -104,7 +104,7 @@
%ifnarch x86_64
%define with_qemu 0
%endif
-%define with_xen 0
+%define with_xen 1
%endif
# If Xen isn't turned on, we shouldn't build the xen proxy either
  


  6. 安装python-virtinst,旧的版本不支持的参数太多了
  

# 从redhat网站下载srpm
wget http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/python-virtinst-0.500.5-3.el6.src.rpm
rpm -i python-virtinst-0.500.5-3.el6.src.rpm
cd ~/rpmbuild/SPECS/
rpmbuild -bb python-virtinst.spec
cd ~/rpmbuild/RPMS/noarch/
rpm -Uvh --force python-virtinst-*.rpm

7. 编译安装内核  
  
  

# 从github下载内核
wget https://github.com/jsgf/linux-xen/tarball/xen-2.6.32.46 -O kernel-xen-2.6.32.46.tar.gz
# 下载config
wget http://pasik.reaktio.net/xen/kernel-config/config-2.6.32.43-pvops-dom0-xen-stable-x86_64
# 可以先修改config里面的CONFIG_LOCALVERSION项, 给这个内核起个别名, 比如-dom0-xen, 以下为没有修改的情况
tar xzf kernel-xen-2.6.32.46.tar.gz
cp config-2.6.32.43-pvops-dom0-xen-stable-x86_64 jsgf-linux-xen-1c3f03c/.config
cd jsgf-linux-xen-1c3f03c
make oldconfig
make -j4 bzImage
make -j4 modules
make modules_install
depmod -a 2.6.32.46
cp -a arch/x86/boot/bzImage /boot/vmlinuz-2.6.32.46
cp -a System.map /boot/System.map-2.6.32.46
cp -a .config /boot/config-2.6.32.46
cd /boot/
dracut --force initramfs-2.6.32.46.img 2.6.32.46
# 关闭ksm, 跟xen不兼容
chkconfig ksm off
chkconfig ksmtuned off
  


8. 编辑/boot/grub/menu.lst, 添加  
  

title Xen 4.0 with Linux 2.6.32.46
root (hd0,0)
kernel /xen.gz dom0_mem=2048M loglvl=all guest_loglvl=all
module /vmlinuz-2.6.32.46 ro root=/dev/sda2 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM KEYBO
ARDTYPE=pc KEYTABLE=us SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 nomodeset
module /initramfs-2.6.32.46.img

9. 编辑/etc/xen/xend-config.sxp, 按自己的需求修改  
  

......
(xend-http-server yes)
(xend-unix-server yes)
(xend-tcp-xmlrpc-server yes)
......
(xend-relocation-server yes)
......
(xend-tcp-xmlrpc-server-address '0.0.0.0')
(xend-tcp-xmlrpc-server-port 8006)
......
(xend-relocation-port 8002)
......
(xend-address localhost)
......
(xend-relocation-address '0.0.0.0')
......
......
......


10.  配置libvirtd
  

groupadd libvirt
vi /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
  11. 重启, 启动Xen的内核
  12. 把上面做的事情, 写成一套脚本
  

其他配置

1. libvirtd第一次启动时, 会生成一个虚拟网卡virbr0, 如果需要nat网络就留着,如果要用bridge做共享网络可以按如下方法删除
virsh net-destroy default
virsh net-undefine default
service libvirtd restart
建立用于网络安装CentOS6的环境

1. 将CentOS的所有iso里面的所有文件都复制到同一个目录下
2. 在那个目录里面执行
mkdir -p images/xen
cp images/pxeboot/initrd.img images/xen/
cp images/pxeboot/vmlinuz images/xen/ 3. 把一个http服务器指向这个目录即可


创建CentOS6虚拟机

1. 使用virt-install安装
virt-install \
-p \
-n centos6 \
-r 4096 \
--vcpus=1 \
--disk path=/home/vms/centos6/sda.img,size=2,format='raw',driver_name='file' \
--graphics none \
-l http://10.100.6.48/CentOS \
-w bridge=xenbr0 \
--os-type=linux
# -p: paravirt模式执行
# -n: 虚拟机名字
# -r: 内存大小, 以MB计
# --vcpus: 虚拟的CPU数
# --disk: 磁盘参数, path:路径; size:大小, 以GB计; format='raw':raw模式; driver_name='file': 默认是aio:tap, 但是CentOS6的默认内核不支持, 安装时找不到硬盘
# --graphics none: 以console模式启动
# -l http://10.100.6.48/CentOS: 上面介绍的自己的建立CentOS的网络安装环境
# -w bridge=xenbr0, xenbr0是与可访问安装环境的网卡绑定的网桥

2. 安装的时候建议选择VNC方式安装,console下面不能自定分区


参考
http://wiki.xen.org/xenwiki/RHEL6Xen4Tutorial

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-125575-1-1.html 上篇帖子: xen网络前端驱动代码分析(发送篇) 下篇帖子: Xen 简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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