在Redhat Enterprise 5 上安装配置XEN多图详解.docx
《在Redhat Enterprise 5 上安装配置XEN多图详解.docx》由会员分享,可在线阅读,更多相关《在Redhat Enterprise 5 上安装配置XEN多图详解.docx(32页珍藏版)》请在冰豆网上搜索。
在RedhatEnterprise5上安装配置XEN多图详解
在RedhatEnterprise5上安装配置XEN
简介
Xen是一个基于虚拟硬件监控器技术的虚拟化软件。
Xen运行在一个宿主linux系统上,提供同时引导启动多个linux实例的能力。
每个由Xen生成的虚拟机,被称为domain。
新创建的domain需要为其安装一个操作系统,方可引导并使用。
以下是几种虚拟化软件的对比:
项目
VirtualMachine
ParaVirtualized
OSVirtualized
虚拟层面
硬件虚拟机
准虚拟化
操作系统虚拟化
虚拟原理
虚拟硬件监控层
模拟多个虚拟机运行
并行虚拟化
同时启动多个虚拟的子系统
将操作系统划分为多个容器构成虚拟环境
代表产品
EMCVMware
微软VirtualServer
Xen
SWsoftVirtuozzo
SUNContainer
运行的系统内核实例
底层物理系统运行一个内核,每个虚拟机各自运行运行一个标准内核
底层系统使用一个修改过的内核,所有虚拟机运行经过修改的特别内核(如过CPU支持虚拟指令集,则虚拟机可使用标准内核
所有虚拟环境一个内核,由底层系统提供
性能
低
一般
高
虚拟机间隔离
隔离
隔离
隔离
物理节点和虚拟机间隔离
隔离
隔离
隔离
资源分配颗粒度
粗
粗
非常细
软件可管理性
高
一般
非常高
安装
RedhatEnterpriseLinux自5.0版本(以下简称AS5)起,内核版本提升到了2.6.18系列,正式提供了对Xen虚拟化技术的支持。
在以往的Linux版本中,安装Xen需要编译内核(Domain0/DomainU等)等,并进行有关配置,安装过程比较复杂。
而在Xen上安装新的虚拟机操作系统(即创建新Domain)更是让新手无从下手。
从AS5起,系统级集成让这一切有了明显改善,更加简单易用。
首先用默认安装方式安好一个干净的AS5系统,推荐安装X图形环境,一般使用GNOME即可。
AS5提供了基于图形的Xen管理工具,所以安装X图形环境会让使用Xen更加简便。
当然,如果对Xen很熟悉,可以不安装或者安装但是不启动X图形环境,全部在命令行下边操作Xen。
使用默认安装方式安装操作系统完毕后,从操作系统的光盘中寻找如下RPM并上传到服务器上,用于Xen的安装:
光盘Server目录
kernel-xen
xen-lib
gnome-python2-gnomekeyring
光盘VT目录
gnome-applet-vm-0.1.2-1.el5.i386.rpm
libvirt-0.1.8-15.el5.i386.rpm
libvirt-devel-0.1.8-15.el5.i386.rpm
libvirt-python-0.1.8-15.el5.i386.rpm
python-virtinst-0.99.0-2.el5.noarch.rpm
virt-manager-0.2.6-7.el5.i386.rpm
Virtualization-en-US-5.0.0-7.noarch.rpm
Virtualization-zh-CN-5.0.0-7.noarch.rpm
xen-3.0.3-25.el5.i386.rpm
xen-devel-3.0.3-25.el5.i386.rpm
在第五张安装光盘的VT目录中还有许多其他文件,主要是Xen图形管理工具的语言包文件,可以不用都安装上。
上边列出的只是主要的RPM包,如果在安装过程中报告还需要其他的RPM,则从光盘中寻找并安装即可。
首先安装Kernel的RPM包,使用rpm-ivh命令安装。
[root@localhost"]#rpm-ivhkernel-xen-2.6.18-8.el5.i686.rpm
warning:
kernel-xen-2.6.18-8.el5.i686.rpm:
HeaderV3DSAsignature:
NOKEY,keyID37017186
Preparing...###########################################[100%]
1:
kernel-xen###########################################[100%]
[root@localhost"]#rpm-ivhxen-libs-3.0.3-25.el5.i386.rpm
warning:
xen-libs-3.0.3-25.el5.i386.rpm:
HeaderV3DSAsignature:
NOKEY,keyID37017186
Preparing...###########################################[100%]
1:
xen-libs###########################################[100%]
[root@localhost"]#
接下来修改默认的Kernel启动顺序。
编辑/etc/grub.conf,找到“default=1”这行,把数字改成“0”。
“0”表示启动第一个内核,即Xen内核。
“1”表示启动第二个内核,即操作系统AS5原来的普通内核。
如下图中红色的标记。
[root@localhost"]#vi/etc/grub.conf
#grub.confgeneratedbyanaconda
#
#Notethatyoudonothavetorerungrubaftermakingchangestothisfile
#NOTICE:
Youhavea/bootpartition.Thismeansthat
#allkernelandinitrdpathsarerelativeto/boot/,eg.
#root(hd0,0)
#kernel/vmlinuz-versionroroot=/dev/VolGroup00/LogVol00
#initrd/initrd-version.img
#boot=/dev/hda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
titleRedHatEnterpriseLinuxServer(2.6.18-8.el5xen)
root(hd0,0)
kernel/xen.gz-2.6.18-8.el5
module/vmlinuz-2.6.18-8.el5xenroroot=/dev/VolGroup00/LogVol00rhgbquiet
module/initrd-2.6.18-8.el5xen.img
titleRedHatEnterpriseLinuxServer(2.6.18-8.el5)
root(hd0,0)
kernel/vmlinuz-2.6.18-8.el5roroot=/dev/VolGroup00/LogVol00rhgbquiet
initrd/initrd-2.6.18-8.el5.img
修改完毕后重新启动系统。
重启系统完成后,再安装其他的RPM。
[root@localhost"/xen]#rpm-ivh*.rpm
warning:
gnome-applet-vm-0.1.2-1.el5.i386.rpm:
HeaderV3DSAsignature:
NOKEY,keyID37017186
Preparing...###########################################[100%]
1:
Virtualization-en-US###########################################[9%]
2:
gnome-python2-gnomekeyr###########################################[18%]
3:
Virtualization-zh-CN###########################################[27%]
4:
xen-devel###########################################[36%]
5:
libvirt###########################################[45%]
6:
xen###########################################[55%]
7:
python-virtinst###########################################[64%]
8:
libvirt-python###########################################[73%]
9:
virt-manager###########################################[82%]
10:
gnome-applet-vm###########################################[91%]
11:
libvirt-devel###########################################[100%]
[root@localhost"/xen]#
安装完成。
这里可以不重启系统。
当且仅当更新内核的时候,才需要重启。
而安装Xen的其他组件和管理工具是不需要重启的。
这里也可以看出Linux系统架构设计的优势——绝大部分情况下都不用重启系统。
现在启动Xen自己的后台服务“Xend”并将其设置为随机自动启动。
[root@localhost"/xen]#/etc/init.d/xendstart
Startingxend:
[OK]
[root@localhost"/xen]#chkconfig--addxend
[root@localhost"/xen]#chkconfig--level345xendon
[root@localhost"/xen]#
配置
Xen可以通过图形方式配置,也可以通过字符方式配置。
字符方式使用命令xm,可以直接键入xm查看输出的命令参数信息。
[root@localhost"/xen]#xm
Usage:
xm[args]
Control,list,andmanipulateXenguestinstances.
Common'xm'commands:
consoleAttachto'sconsole.
createCreateadomainbasedon.
destroyTerminateadomainimmediately.
dump-coreDumpcoreforaspecificdomain.
helpDisplaythismessage.
listListinformationaboutall/somedomains.
mem-setSetthecurrentmemoryusageforadomain.
migrateMigrateadomaintoanothermachine.
pausePauseexecutionofadomain.
rebootRebootadomain.
restoreRestoreadomainfromasavedstate.
saveSaveadomainstatetorestorelater.
shutdownShutdownadomain.
topMonitorahostandthedomainsinrealtime.
unpauseUnpauseapauseddomain.
uptimePrintuptimeforadomain.
vcpu-setSetthenumberofactiveVCPUsforallowedfor
thedomain.
caneitherbetheDomainNameorId.
Formorehelpon'xm'seethexm
(1)manpage.
Formorehelpon'xmcreate'seethexmdomain.cfg(5)manpage.
Foracompletelistofsubcommandsrun'xmhelp'.
[root@localhost"/xen]#
通过执行vm命令输出的这里可以看到,xm命令行工具可执行的操作包括登录、启动、停止、暂停、备份、恢复、重启、迁移、内存设置、CPU设置等。
具体的操作会在后边的章节中提到。
AS5对Xen提供的集成中包含了图形工具,可以从菜单进入,如图。
也可以在X图形环境下的命令行窗口中,用命令启动这些工具。
现在执行virt-manager启动管理工具。
首选提示要管理的Xen节点是什么。
Virt-manager管理工具支持管理本机Xen,还可以管理其他服务器上的Xen程序。
这样就提供了一种远程应用的场景,即运行Xen的服务器可以完全不启动X图形环境,而是在远程运行客户端管理Xen。
本例中由于是本地安装的Xen并在服务器的本地终端上启动了X图形环境,因此选择LocalXenhost即可。
进入到virt-manager的界面,默认会显示一个ID为0的节点,又叫做Domain0,当前状态是Running。
这个节点就是安装了AS5的物理服务器,通过管理界面可以看到物理节点拥有的CPU和内存数量。
在管理界面的下方还有“New”、“Details”、“Open”等几个按钮,点击其中的New即可来安装新的domain了。
使用图形界面在Xen上安装AS5作为新的domain运行
在Xen内,几乎所有的Linux发行版都可以作为domain运行。
为了演示的方便并易于理解,这里还使用AS5来作为新的domain运行了。
创建并安装一个新的domain有两种方式:
使用字符界面,使用图形界面。
首先讲述使用图形界面来创建新的domain。
这种操作方式是和EMCVMware、微软VirtualServer等其他虚拟化软件最相近的,因此先介绍这种方式。
安装向导
首先打开virt-manager管理器,点击下方的New按钮。
启动创建新domain的向导程序。
点击Forward按钮继续。
输入要创建的domain的名字,例如domain1,这个名字可以任意选择。
半虚拟化与全虚拟化
选择虚拟化的类型:
Para-VirtualizedVSFullVirtualized,即半虚拟化与全虚拟化。
所谓半虚拟化的意思是,被虚拟的系统(又称为GuestOS,在Xen中就是用户的domain)必须是经过修改的特殊系统,使用特别的内核来运行。
而如果想让被虚拟的domain使用标准内核来运行,则必须选择Full-Virtualized。
这是Xen和VMware等虚拟机技术的主要区别,即domain在半虚拟化场景下,必须安装修改过内核的特别造作系统。
Full-Virtualized全虚拟化支持,可以允许domain使用一个标准的未经任何修改的系统来至今引导,甚至包括在Linux上去引导一个Windows系统起来。
这个功能需要依赖于CPU指令集的支持,IntelCPU提供VT指令集,AMDCPU提供Pacific指令集支持。
如果正在使用的服务器CPU不支持虚拟化指令集,则Full-Virtualized这个选项是灰色的,即不能启用。
也就意味着,在当前节点上,只能在虚拟domain中运行经过修改的linux系统,而不能运行Windows系统了。
接下来继续操作,创建domain向导提示选择安装源。
制作安装源
Xen中安装domain的方式比较特别,必须将安装文件放在NFS文件服务或HTTP文件服务器上来安装,安装过程可以是无人值守(调用kickstart)或者是人工安装。
这点和VMware等有很大的区别。
EMCVMware和微软VirtualServer都提供了图形工具用于虚拟机的安装,安装时候可以用ISO光盘镜像文件作为安装源来引导系统,也可以直接调用物理光驱来安装,为虚拟机安装操作系统就像给普通PC机安装系统一样简单。
而Xen在domain中安装系统就很复杂,必须通过网络安装,安装源文件要调用NFS或者HTTP镜像来实现。
应该说,在AS5上已经对有关domain安装已经做出了很大的改进,以往的Xen版本,都只能通过命令行配合复制文件的方式来安装,domain中只能安装Gentoo、Slackware等纯字符下配置的linux。
对于domain安装支持,AS5已经做的很不错了。
现在我们就来制作一个HTTP安装镜像。
首先将AS5的安装光盘的ISO文件复制到/root/目录下,例如如下的样子:
[root@localhost"]#ls
cd1.isocd2.isocd3.isocd4.isocd5.iso
[root@localhost"]#
将cd1.iso挂载到/mnt/cdrom目录,读取里边的内容:
[root@localhost"]#mkdir/mnt/cdrom
[root@localhost"]#mount–oloopcd1.iso/mnt/cdrom
为了制作HTTP安装镜像,需要假设一个HTTP服务器。
这里就不在详细讲述apache的配置了。
假设apache已经安装好,并使用系统默认的/var/www/html作为web服务的根目录。
复制cd1.iso中的三个目录image、isolinux、Server到/var/www/html目录下。
复制过程中由于Server目录包含了数百MB的RPM文件,复制过程可能稍慢。
[root@localhost"]#cp–r/mnt/cdrom/images/var/www/html
[root@localhost"]#cp–r/mnt/cdrom/isolinux/var/www/html
[root@localhost"]#cp–r/mnt/cdrom/Server/var/www/html
复制cd1.iso的内容完成后,现在更换到cd2.iso文件。
[root@localhost"]#umount/mnt/cdrom
[root@localhost"]#mount–oloopcd2.iso/mnt/cdrom
挂载cd2.iso完成后,复制cd2.iso上的Server目录里边的文件到/var/www/html/Server目录。
从第二张CD到第五张CD,只要复制Server目录下的所有文件即可。
不用复制其他内容了。
[root@localhost"]#cp–r/mnt/cdrom/Server/*/var/www/html/Server
同理,将cd3.iso、cd4.iso、cd5.iso的Server目录中的文件都复制到/var/www/html/Server目录。
复制完成后,安装镜像就做好了。
请确认一下这个HTTP镜像可以被从其他位置访问,比如防火墙打开了响应端口,文件和目录具有正确的权限等。
使用Kickstart无人值守脚本自动安装系统
在刚才的选择安装位置的选项界面,还能看到一个kickstartURL的选项。
这个选项是做什么用的呢?
可以看到kickstart的配置选项框。
Kickstart是RedhatLinux所提供的无人值守自动安装功能。
众所周知,在安装Linux过程中要选择大量选项,例如时区、键盘、IP地址、安装软件包、分区等几十个选项,共几大类。
为了加快安装过程,免去复杂的参数输入,可以预先写好一个kickstart脚本,脚本内定义了安装过程中每个选项预先输入的参数,即可进行无人值守自动安装。
Kickstart脚本通常需要人工编辑。
但是如果不熟悉kickstart的原理,如何制作kickstart脚本?
AS5也提供了图形工具用于简单快速生成一个kickstart脚本。
点击AS5的菜单,可以从“SystemTools”下边找到相关的工具。
打开Kickstart的图形编辑工具后,里边的选项看起来是不是非常熟悉?
是的,这些选项都是安装Linux时候必须人工选择的那几十个选项。
如果事先用Kickstart工具定义好了脚本,就可以无人值守安装了。
本文中的重点是Xen,所以关于Kickstart不在过多讲述。
为了简单起见,这里不使用kickstart,而是用传统方式人工安装。
现在回到前文的输入安装源和Kickstart脚本的界面,在安装源的位置输入“http:
//192.168.7.100/”这个地址是我们刚才建立好的安装镜像。
配置Kickstart的位置留空,不填写任何参数。
完成后点击“Forward”按钮进入下一步。
配置domain资源参数
接下来配置domain的资源参数。
这些参数主要包括磁盘、内存、网络等。
Xen对磁盘的调用有两种方式:
常规物理分区与单个虚拟磁盘文件。
如果选择了常规物理分区方式,则需要提供一个干净的分区或者设备给xen,如/dev/hdc2。
但是往往服务器上只有一块硬盘,或者没有空闲的分区,那么可以选择“SimpleFile”方式,即单个虚拟磁盘文件的方式。
在这种方式下,一个domain的所有文件系统都将被存在在一个文件内,就好像一张光盘内的数十个目录被压缩到一个iso文件内,当读写的时候,xen会挂载这个虚拟磁盘读写里边的数据。
在这个domain以外的底层系统看来,整个磁盘就是一个普通文件。
本文中选择了使用单个虚拟磁盘文件的方式。
手工输入“/xen/test”,即创建文件/xen/test来作为虚拟磁盘。
为了让domain很好的运行AS5,我们将磁盘空间设置的大一些,例如8GB空间。
注意这里还有一个“allocatentirevirtualdisknow”的选项,这个选项的作用是,在创建domain的时候,虽然domain内部是空白的,但是直接划分一个8GB的空文件留给domain。
如果不选择这个选项,磁盘不会预先分配8GB的空间,而是随着空间使用的增加而逐渐增大,用满8GB则不在占用。
选择预先分配的好处是domain工作的性能比较好,缺点也很明显,domain里边可能就几百MB的文件,但也占用了8GB空间。
选择不预先分配的方式,好处就在于在domain内文件很少的时候,非常节约磁盘空间。
本文中没有选择预先分配。
接下来设置内存和CPU的分配。
内存分配有两个选项:
最大内存和初始化内存。
本中的测试机配