




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Xen虚拟化环境安装手册(V2.0)(CentOS6.3 VS Xen4.1.3)目 录Xen虚拟化环境安装手册(V2.0)1(CentOS6.3 VS Xen4.1.3)11.安装CentOS22.配置网络(也可以直接通过图形界面配置)23.配置yum更新源34.预安装55.Xen编译和安装56.编译内核77.安装Libvirt148.测试安装是否成功169.安装虚拟机DomU1710.尚存在的问题1911.附录及参考文献191. 安装CentOSa) 插入光盘,从光驱引导启动。b) 设置服务器名称:Yelin1;管理员密码:111111c) 安装时磁盘分配可以使用默认配置,或手动。d) 安装类型选择 desktop安装(推荐使用desktop安装,当然选择minimal安装也可以,但配置网络的时候就没有那么方便),系统语言请务必使用英语,一定要使用英语。否则后面编译Xen的时候就会出现找不到头文件的错误,因为中文字符集执行SED COMMAND的时候会出错。2. 配置网络(也可以直接通过图形界面配置)如果直接在图形界面中配置网络,则本节以下网络配置过程就可以略过,因为后面是在控制台配置的过程。a) 系统启动后,用root用户登录,配置网卡b) 首先可以通过ifconfig命令查看当前系统已激活的网卡。c) 若网卡没有激活可以:vi /etc/sysconfig/network-scripts/ifcfg-eth0修改ONBOOT为yes#service network restart再次运行ifconfig,发现网卡已经正常。d) 命令配置# ifconfig eth0 40 netmask /ip地址、子网掩码# route add default gw 54 dev eth0/网关# hostname 计算机名 /计算机名e) 文件配置修改IP地址修改对应网卡的IP地址的配置文件:# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0(描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0)BOOTPROTO=none(设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址)BROADCAST=55(对应的子网广播地址)HWADDR=00:A0:D1:E3:5B:06 (对应的网卡物理地址)IPADDR=40(如果设置网卡获得ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址)IPV6INIT=no (开启或关闭IPv6;关闭no,开启yes)IPV6_AUTOCONF=no (开启或关闭IPv6自动配置;关闭no,开启yes)NETMASK=(网卡对应的网络掩码)NETWORK=(网卡对应的网络地址)如果不行就删除这一行ONBOOT=yes(系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备)GATEWAY=54(设置本机连接的网关的IP地址。例如,网关为)DNS1=00DNS2=01重新启动网络配置# service network restart或# /etc/init.d/network restart#ping /确定网络是否能连通3. 配置yum更新源以在本地windows环境中下载一个putty,然后远程用root登录(Linux 环境中直接使用控制台登录,但控制台的shell)。用蓝色表示控制台输入的命令,否则就是说明和注释。cd /etc/yum.repos.d/ 如果wget没有安装的话yum install wgetvi CentOS-Base.repo/ 安装yum 源,有两个方案*方案一:如果你是在哈工大校内请执行方案一,即直接修改 repo 文件内容vi CentOS-Base.repo然后清空文件原有内容,粘贴以下内容,注意通常粘贴的的时候,文件头部总会少几个字符,不知道为什么,所以在保存以前请确认你的粘贴的内容没有少,尤其是最前面的字符。# CentOS-Base.repo# The mirror system uses the connecting IP address of the client and the# update status of each mirror to pick mirrors that are updated to and# geographically close to the client. You should use this for CentOS updates# unless you are manually picking other mirrors.# If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead.# edited by huangqiangbasename=CentOS-$releasever - Basebaseurl=/centos/$releasever/os/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=osgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#released updates updatesname=CentOS-$releasever - Updatesbaseurl=/centos/$releasever/updates/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=updatesgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#additional packages that may be usefulextrasname=CentOS-$releasever - Extrasbaseurl=/centos/$releasever/extras/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=extrasgpgcheck=1gpgkey=/centos/RPM-GPG-KEY-CentOS-6#additional packages that extend functionality of existing packagescentosplusname=CentOS-$releasever - Plusbaseurl=/centos/$releasever/centosplus/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=centosplusgpgcheck=1enabled=0gpgkey=/centos/RPM-GPG-KEY-CentOS-6#contrib - packages by Centos Userscontribname=CentOS-$releasever Contribbaseurl=/centos/$releasever/contrib/$basearch/#mirrorlist=/?release=$releasever&arch=$basearch&repo=contribgpgcheck=1enabled=0gpgkey=/centos/RPM-GPG-KEY-CentOS-6方案二:如果你在非教育网内或非校内网请执行方案二wget /.help/CentOS6-Base-163.repo/备份原来的源文件mv CentOS-Base.repo CentOS-Base.repo.bak*/生成缓存yum makecache yum update/装一个vim吧yum install vim4. 预安装要先安装一些编译环境(从源代码编译安装,如果不需要修改源代码,可以直接使用 yum 通过第三方源安装,主意CentOS5和CentOS6的安装方法不一样,CentOS5的内核本来就是支持Xen的,但是CentOS6的内核关闭了对Xen 的虚拟化选项,所以要自己重新编译一个Kernel,或者使用第三方源的已经启用了Xen选项的Kernel,具体请Google)关闭selinux选项vi /etc/sysconfig/selinux修改如下SELINUX=disabledyum -y groupinstall Development Librariesyum -y groupinstall Development Toolsyum -y install transfig wget tar less texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-develyum -y install pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial texinfoyum -y install libidn-devel yajl yajl-devel ocaml ocaml-findlib ocaml-findlib-devel python-devel uuid-devel libuuid-devel openssl-devel tetex-latexyum -y install glibc-devel.i686 gettext patch5. Xen编译和安装编译Xen之前请确保你的字符集是英文的,我的是LANG=en_US.UTF-8(好像en_GB也可以)。之所以要这样做是因为在xen的Makefile文档里有一个SED COMMAND(stream editor),流编辑器,这东西处理不了中文。所以处理路径的时候会出现找不到头文件的错误。如果不是有两个原因:1. 服务器上安装的操作系统的语言不是英文,请将操作系统改成英文语言的。2. 你用于远程连接的本地客户端操作系统不是英文的,也就造成shell的语言不是英文的,第二种情况远程执行export LANG=en_US.UTF-8没有用,重启后一连又改回去了,我的方法是把本地客户端的系统也改成英文的,这样连接的时候服务器上和本地的语言就都是英文的了,shell也就是英文的了。cd /usr/srcwget /oss-xen/release/4.1.3/xen-4.1.3.tar.gztar xvf xen-4.1.3.tar.gzcd xen-4.1.3/编译/安装make worldmake installvi /etc/sysconfig/xendomains注释掉#XENDOMAINS_SAVE=/var/lib/xen/save以下内容使Xen在系统启动时启动ln -s /etc/init.d/xendomains /etc/rc0.d/S10xendomainsln -s /etc/init.d/xendomains /etc/rc6.d/S10xendomainsln -s /etc/init.d/xencommons /etc/rc3.d/S98xencommonsln -s /etc/init.d/xendomains /etc/rc3.d/S98xendomainsln -s /root/xendom0caps /etc/rc3.d/S98xendom0capsln -s /root/iptables-enable /etc/rc3.d/S99iptables-enable vi /root/xendom0caps 加上:xl sched-credit -d Domain-0 -w 512chmod +x /root/xendom0capsvi /etc/rc.local 加上:/usr/bin/setterm -powersave off -blank 0vi /etc/xen/xend-config.sxp找到 (network-script network-bridge) 并将其注释掉,如下#network-script network-bridge# chkconfig NetworkManager off# chkconfig network on# service NetworkManager stop# service network startStep.3 将Xen加入到启动脚本:/sbin/chkconfig -add xend/sbin/chkconfig -add xendomains/sbin/chkconfig -add xencommons/sbin/chkconfig xend on/sbin/chkconfig xendomains on/sbin/chkconfig xencommons on配置网桥可以参考以下链接/wiki/Network_Configuration_Examples_(Xen_4.1%2B)新的Xen使用虚拟桥接技术,所以需要修改网络配置,添加自己的新网桥。添加网桥接口,用我们自己的配置替换IP值。vi /etc/sysconfig/network-scripts/ifcfg-br0添加内容如下,其中IPADDR,PREFIX,GATEWAY,DNS等内容要和ifcfg-eth0中的内容一样。NM_CONTROLLED请设为no,因为Network Manager 不支持网桥技术。DEVICE=br0NM_CONTROLLED=noONBOOT=yesTYPE=BridgeBOOTPROTO=noneIPADDR=40PREFIX=16GATEWAY=DNS1=00DNS2=01DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME=System br0修改ifcfg-eth0,注释掉BOOTPROTO ,IPADDR,PREFIX,GATEWAY,DNS,添加网桥BRIDGE=br0vi /etc/sysconfig/network-scripts/ifcfg-eth0修改好的内容如下。DEVICE=eth0NM_CONTROLLED=noONBOOT=yesHWADDR=00:A0:D1:E3:5B:06TYPE=Ethernet#BOOTPROTO=none#IPADDR=40#PREFIX=16#GATEWAY=#DNS1=00DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME=System eth0UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03BRIDGE=br0配置完网络后好像会出现断网的情况,所以要去机房重启服务器。reboot6. 编译内核a) 下载内核源码自己安装因为CentOS的内核已经不支持Xen,所以需要下载一个内核源码,配置了Xen 虚拟化选项,重新编译安装Dom0的内核。cd /usr/srcwget /kernel/v3.x/linux-3.4.5.tar.gztar xvf linux-3.4.5.tar.gzcd linux-3.4.5make menuconfig这时会进入一个菜单界面,上下键选择Processor type and features再进入Paravirtualized guest support,选中所有和Xen相关的选项。详见下图:再回到上级菜单,进入Device Drivers,再进入block devices 静态选中两个Xen选项(上下键调整位置,按空格选择,详见图)回到Device Driver,选择Xen Driver Support静态启用所有特征(把所有空格和M变成*)回到Device Driver,进入Network Service Support,静态选中两项和Xen相关的选项。/查看配置文件,确定所有选项都被选中。cat /usr/src/linux-3.4.5/.config | grep XEN/具体输出如下:CONFIG_XEN=yCONFIG_XEN_DOM0=yCONFIG_XEN_PRIVILEGED_GUEST=yCONFIG_XEN_PVHVM=yCONFIG_XEN_MAX_DOMAIN_MEMORY=500CONFIG_XEN_SAVE_RESTORE=yCONFIG_XEN_DEBUG_FS=yCONFIG_PCI_XEN=yCONFIG_XEN_PCIDEV_FRONTEND=yCONFIG_XEN_BLKDEV_FRONTEND=yCONFIG_XEN_BLKDEV_BACKEND=yCONFIG_NETXEN_NIC=mCONFIG_XEN_NETDEV_FRONTEND=yCONFIG_XEN_NETDEV_BACKEND=yCONFIG_INPUT_XEN_KBDDEV_FRONTEND=yCONFIG_HVC_XEN=yCONFIG_HVC_XEN_FRONTEND=y# CONFIG_XEN_WDT is not setCONFIG_XEN_FBDEV_FRONTEND=yCONFIG_XEN_BALLOON=yCONFIG_XEN_BALLOON_MEMORY_HOTPLUG=yCONFIG_XEN_SCRUB_PAGES=yCONFIG_XEN_DEV_EVTCHN=yCONFIG_XEN_BACKEND=yCONFIG_XENFS=yCONFIG_XEN_COMPAT_XENFS=yCONFIG_XEN_SYS_HYPERVISOR=yCONFIG_XEN_XENBUS_FRONTEND=yCONFIG_XEN_GNTDEV=yCONFIG_XEN_GRANT_DEV_ALLOC=yCONFIG_SWIOTLB_XEN=yCONFIG_XEN_PCIDEV_BACKEND=yCONFIG_XEN_PRIVCMD=yCONFIG_XEN_ACPI_PROCESSOR=y/然后开始编译make bzImagemake modulesmake modules_installcp -a arch/x86/boot/bzImage /boot/vmlinuz-3.4.5cp -a System.map /boot/System.map-3.4.5cp -a .config /boot/config-3.4.5depmod -amkinitrd /boot/initrd.img-3.4.5 3.4.5修改grub启动顺序vi /boot/grub/grub.conf可以按照如下格式修改:注意千万不要把以前的GURB信息删除了,只要把新的grub信息添加在原有的上面就行了。这样如果要进入旧的内核工作,还可以在启动的时候选择。*title Xen 4.1.3 / Debian GNU/Linux, kernel 3.4.5 root (hd0,0) kernel /xen.gz module /vmlinuz-3.4.5 root=UUID=1e9edb16-d242-476a-842a-4a839e866ac6 rd_LVM_LV=vg_yelin1/lv_root rd_LVM_LV=vg_yelin1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet console=tty0 module /initrd.img-3.4.5title centos (2.6.32-71.el6.x86_64)root (hd0,0)kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=1e9edb16-d242-476a-842a-4a839e866ac6 rd_LVM_LV=vg_yelin1/lv_root rd_LVM_LV=vg_yelin1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us nomodeset crashkernel=auto rhgb quietinitrd /initramfs-2.6.32-71.el6.x86_64.img*其中:root=UUID的UUID的值可以这样查找:#sudo blkid然后其中root分区的UUID填入即可rd_LVM_LV=vg_yelin1/lv_swap 中的vg_yelin1为计算机名,请参考自己的域名修改。b) 重新启动(重启后在CentOS启动前花了好长时间,应该在启动CentOS之前还要启动Xen)c) xl list /确定xen已经正常启动了这段确定服务启动7. 安装LibvirtLibvirt 的安装一定一定要在非虚拟化环境里,即在原始的操作系统里,这就是为什么我们要在grub 里保留原始启动选项的原因。请在系统启动时选择从原始的非虚拟话的内核启动。这需要你亲自跑一趟机房,守在终端旁边,然后在出现内核启动选项是按一个上下方向键(好像其它键也可以),再选择启动的内核。如果你跑机房不方便,也可以直接修改grub的默认启动顺序。如下:vim /boot/grub/grub.conf 把其中default=0改为你要启动的那个内核顺序,记住是从0开始计数的。不过等你装完了libvirt记得还要改回来。Libvirt的安装也有两个方案:方案一是我自己测试过的方案,方案二是网上看到的另一个方案,貌似也可以用,列在这里共参考。方案一的问题就是需要依靠第三方源(前提是第三方源不失效),但优点就是不需要考虑麻烦的软件依赖关系,对于linux 操作不是很熟系的人可以推荐第一个。我在网上看到一个人为了编译安装libvirt而处理复杂的软件包依赖关系,天呀,差点要晕过去。yum -y install http:/au1.mirror.crc.id.au/repo/kernel-xen-release-6-4.noarch.rpmyum makecacheyum -y install python-devel xen-licenses-4.1.3 xen-devel-4.1.3 libxml2-devel xhtml1-dtds readline-devel ncurses-devel libtasn1-devel gnutls-devel augeas libudev-devel libpciaccess-devel yajl-devel sanlock-devel libpcap-devel libnl-devel avahi-devel libselinux-devel cyrus-sasl-devel parted-devel device-mapper-devel numactl-devel libcap-ng-devel netcf-devel libcurl-devel audit-libs-devel systemtap-sdt-devel libblkid-devel scrub方案一(已测试)请先安装libvirt,查看你要安装的软件的版本。Yum -y install libvirt python-virtinstrpm -qa | grep libvirt/ 输出如下/ libvirt-client-0.9.10-21.el6_3.3.x86_64/ libvirt-0.9.10-21.el6_3.3.x86_64/ libvirt-python-0.9.10-21.el6_3.3.x86_64关键是看到libvrit的版本,那么下载的时候就要下载相应版本的libvirtmkdir /root/srccd /root/srcwget /6.3/os/Source/SPackages/libvirt-0.9.10-21.el6.src.rpmrpm -i libvirt-0.9.10-21.el6.src.rpm/下载相应版本的补丁包wget /xen/patches/libvirt-spec-rhel6-enable-xen.patchcd /root/rpmbuild/SPECScp -a libvirt.spec libvirt.spec.origpatch -p0 /etc/rc.d/rc.local8. 测试安装是否成功开机启动以后输入xl list 屏幕输出Name ID Mem VCPUsStateTime(s)Domain-0 0 7066 8 r- 136.0如果没有看到Domain0就说明xend可能没有启动,就启动xendservice xend start如果还报错xencommence没有启动,再启动xencommenceservice xencommence start然后再启动xend服务,再输入xl list 应该就可以看到Dom0了。输入virsh list,如果报错说什么8000端口无法连接,请首先确保你的xend服务已经启动,且SELINUX已经关闭,然后执行以下操作。vim /etc/xen/xend-config.sxp要把 xend-port 8000的注释符#去掉然后给防火墙添加iptables -A INPUT -p tcp -m state -state NEW -m tcp -dport 8000 -j ACCEPTvi /etc/xen/xend-config.sxp 去掉xen-http-server前面的注释,就像这样:(xend-http-server yes) service xend restart再不行就把服务器reboot一下现在再试virsh list 就应该可以看到Dom0了,状态是 running。9. 安装虚拟机DomU现在要再次明确一下网络配置的问题:虚拟机的网络配置有两种方式:bridge(本文的方式)和NAT。Bridge的方式的DomU如果要上网必须用DHCP或静态地址的方式,也就是每个虚拟机都要有一个独立的IP。如果不能为每个虚拟机分配一个IP,就需要采用虚拟机内部地址,也就是NAT的方式来配置网络。因为本人对NAT的方式不熟系,本文采用的是bridge的方式。由于我们机房是采用IP和MAC绑定的方式上网的,所以要跟管理员申请ip地址,你要建立多少个虚拟机,就要申请多少个IP。所以你先要定一些虚拟mac地址,xen 的MAC一般是00:16:3E:XX:XX:XXXX的部分请自己随意填,能记住就行,然后把你定的MAC告诉管理员获得IP。建立虚拟机的方式如下。名称vm01, 半虚拟化,1024M内存,安装来源 /centos/6.3/os/x86_64,安装位置/home/images/vm01.img,分配空间10G, 网络配置bridge,并最后预置了MAC地址。virt-install -name vm01 -paravirt -ram 1024 -vcpus=4 -location /centos/6.3/os/x86_64 -file /home/images/vm01.img -file-size 10 -network bridge=br0 -mac=00:16:3E:0A:0A:01 注意这里安装来源采用的是http安装目录树,这种方式支持全虚拟化和半虚拟化两种方式,还可以从IMG镜像安装,还可以从ISO镜像或光盘安装,如果是从ISO镜像或光盘安装,只支持全虚拟化。具体内容请参考man virt-install。以上介绍的是通过网络镜像安装的方式,下面介绍通过光盘镜像安装的方式,如果你已经有了Centos6的安装DVD1,大小4G的那个。把它放入光驱,并且挂载在/mnt/cdrom下。挂载的方法不用细说了吧,不会的自己上网查查。第一步:安装http服务,见链接。/cryinstall/archive/2011/09/25/2189900.html如果是远程访问不了就是防火墙没有配输入这句看看80端口有没有开:/etc/init.d/iptables status没有就输入以下两句(第二句保存设置)/sbin/iptables -I INPUT -p tcp -dport 80 -j ACCEPT/etc/rc.d/init.d/iptables save第二步:将/mnt/cdrom设置为http访问目录vim /etc/httpd/conf/httpd.conf 在虚拟目录字段添加以下文字Alias /dist /mnt/cdrom #开启目录列表索引模式 Options Indexes Order allow,deny IndexOptions NameWidth=50 Charset=UTF-8 Allow from all然后测试自己是否能够通过http服务查看下能够访问/mnt/cdrom目录,在浏览器里输入以下地址:http:/IP地址/dist/你应该会看到一个文件目录,这就是你的安装目录树然后输入命令,就可以开始安装了。(DHCP模式的,所以不用陪MAC地址)virt-install -name vm01 -paravirt -ram 512 -vcpus=4 -location http:/IP地址/dist/ -file /home/images/vm01.img -file-size 10 -network bridge=br0 下面是ubuntu安装方法,但是有问题,安装时会去官网下载安装文件,有问题。virt-install -name vm02 -paravirt -ram 2048 -vcpus=4 -location /ubu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025全日制劳动合同书样本
- 法医病理考试题库及答案
- 环保公益及绿色生活推广方案
- 25秋新人教版英语七年级上册 Unit 2 Section B同步练习(含答案)
- 日常生活垃圾清运合同书5篇
- 办公室装修设计与施工合同书条款内容
- 档案法知识考试题及答案
- 2025年贵溪市市直事业单位公开遴选工作人员笔试备考题库及答案
- 合同履行与诚信履约承诺书8篇
- 日语公司笔试题库及答案
- 化工企业物料编码规则物料分类清晰、编码简短、容易识别
- E190飞机舱门开关
- 儿科学腹泻病
- CT介入学及CT引导下肺穿活检术课件
- GB/T 3871.9-2006农业拖拉机试验规程第9部分:牵引功率试验
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB 17840-1999防弹玻璃
- 文学鉴赏-课件
- 小军师面试万能绝杀模板-组织管理
- midasCivil斜拉桥分析课件
- 应急响应程序流程图
评论
0/150
提交评论