XEN应用实战.docx
- 文档编号:29379758
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:45
- 大小:10.38MB
XEN应用实战.docx
《XEN应用实战.docx》由会员分享,可在线阅读,更多相关《XEN应用实战.docx(45页珍藏版)》请在冰豆网上搜索。
XEN应用实战
开源虚拟化软件XEN应用实战
1.虚拟化介绍3
1.1虚拟化概念描述3
1.2虚拟化的类型4
1.2.1全虚拟化(FullVirtualization)4
1.2.2半虚拟化(ParaVirtualization)5
1.2.3硬件虚拟化(HardwareEmulation)5
1.2.4虚拟化类型小结5
1.3虚拟化产品介绍6
1.3.1Xen6
1.3.2KVM6
1.3.3OpenVZ6
1.3.4Hyper-v7
1.3.5其他产品:
7
1.4虚拟化实际应用场景7
1.4.1个人学习测试环境7
1.4.2开发测试环境8
1.4.3测试新系统及软件8
1.4.4重现生产问题故障8
1.4.5业务服务独立性8
1.4.6节约服务器资源8
1.4.7方便批量运维控制管理8
1.4.8云计算云主机与VPS8
2Xen虚拟化介绍9
2.1xen虚拟化的位置拓扑9
拓扑1:
9
拓扑2:
10
拓扑3:
10
拓扑4:
11
2.2Xen支持的虚拟化类型11
2.3查看硬件对xen虚拟化的支持11
2.4Xen基本原理介绍12
2.5xen的体系结构13
2.6Xen的深入工作原理14
2.7xen虚拟机运行环境16
2.8Xen虚拟化的特性17
2.9Xen的产品介绍17
2.10Xen的应用场景范围17
3Xen虚拟化环境搭建准备18
3.1生产服务器硬件配置需求18
3.2操作系统:
Centos5.8_x86_6418
3.3网卡及IP资源18
3.4测试环境Xen虚拟机的配置19
4.开始安装Xen宿主机虚拟化环境19
4.1xen核心套件介绍19
4.2安装Xen宿主服务器19
4.2.1全新安装Xen宿主服务器19
4.2.2在已有的宿主机上安装Xen19
4.2.2.1安装并检查xen套件19
4.2.3Xen宿主机基本优化设置20
4.2.4启动Xen内核支持相关设置20
4.2.5重启Xen宿主机检查相关设置。
21
4.2.5.1.检查宿主机启动的内核是否为xend内核21
4.2.5.2.查看引导后内存信息22
4.2.5.3.xend服务是xen控制服务,安装完成后会自动启动22
4.2.5.4.xendomains服务是虚拟机控制服务,安装完成后xen会自动启动22
4.2.6添加网桥(可以不做)22
5.安装第一个虚拟机22
5.1可选的安装方法22
5.2准备安装介质22
5.3创建虚拟机硬盘(可用lvm代替)23
5.4修改hosts文件23
5.5创建虚拟机23
5.6选包,安装……23
至此:
xen虚机部署完成。
23
报错信息汇总:
23
安装过程报错1:
23
安装报错2:
alreadyinuse24
解决:
24
安装报错3:
24
6.Xen常用命令24
6.1xmlist打印所有已知的虚拟机列表24
6.2xmconsole打开控制台管理虚拟机25
6.3xmcreate启动一个虚拟机25
6.4xmshutdown正确地关掉虚拟机25
6.5xmdestory:
像关掉电源那样关闭虚拟机26
6.6其他命令26
6.7xen套件结构27
新建虚拟机模板27
通过模板克隆虚拟机28
纯手工克隆28
使虚拟机开机自启动29
启动虚拟机30
增加xen虚拟机三部曲30
6.8xen虚拟机配置文件详解30
6.9Xen虚拟机快速创建的三种方法31
6.9.1直接cp31
6.9.1.1复制模板31
6.9.1.2修改cp后的模板31
6.9.2采用克隆命令virt-clone31
6.9.2.1克隆31
6.9.2.2启动32
6.9.3使用dd命令复制32
附录1:
xen网络环境32
1.网桥状态32
2.网卡配置文件32
附录2:
生成环境中的问题32
1.控制实体机使用内存33
2.Xen的时间同步33
3.网卡桥接问题33
cat/etc/xen/centos-00233
4.增加多块磁盘34
5.更改系统默认的Loop设备数量34
1.虚拟化介绍
1.1虚拟化概念描述
VMM(Hypervisor)要完成对硬件的识别、管理,还要完成对虚拟机操作系统的资源分配和约束。
VMM层就像一个透明的代理服务器。
这个层如果很厚(集成插件多),VMM管理虚拟机的灵活性必然会大大提高,但管理开销也会降低GuestOS的执行效率;如果这个层很薄(集成功能少),VMM的管理功能就会很薄弱,而GuestOS执行效率会大大增加。
1.2虚拟化的类型
按照虚拟化的概念及常规应用来分,我们将虚拟化分为以下三种不同的类型
1.2.1全虚拟化(FullVirtualization)
1.2.2半虚拟化(ParaVirtualization)
全虚拟化支持可以不同的操作系统,半虚拟化一般只能装同样的操作系统。
1.2.3硬件虚拟化(HardwareEmulation)
1.2.4虚拟化类型小结
实现虚拟化的方法有多重,可以通过不同层次的抽象来实现相同的结果。
虚拟化的主要类型其他说法:
1.3虚拟化产品介绍
1.3.1Xen
1.3.2KVM
Kernel-basedVirtualMachine的简称,是一个开源的系统虚拟化模块,自Linux2.6.20之后集成在Linux的各个主要发行版本中。
它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。
KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如IntelVT技术或者AMDV技术)。
是基于硬件的完全虚拟化。
而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。
但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
1.3.3OpenVZ
1.3.4Hyper-v
1.3.5其他产品:
1.4虚拟化实际应用场景
1.4.1个人学习测试环境
个人测试环境就会使用VMWARE虚拟机。
1.4.2开发测试环境
办公室开发和测试,IDC机房的测试环境,IDC机房的正式环境。
1.4.3测试新系统及软件
我们可以搭建一个新的虚拟机,在该机器上安装新版的操作系统或软件,测试新系统及软件是否可以正常运行。
进而决定是否升级新系统或软件。
1.4.4重现生产问题故障
通常在生产场景发生问题,我们为了业务及时恢复而没有时间在线上查找问题的原因,这样我们就可以搭建和线上一样环境的虚拟机,在该机器上进行调试还原生产环境出问题的机器故障,进而解决生产线上的疑难杂症。
1.4.5业务服务独立性
我们可以把不同的业务服务配置在不同的虚拟机上,每一个虚拟机仅提供该项服务。
这样一来,在虚拟机上的各个业务都是相对独立的,出现性能、安全问题,问题也会被局限在虚拟机上,而其他的虚拟机不会受到太大影响。
1.4.6节约服务器资源
在很多情况下,一台机器的配置都相对较高,而单台机器的业务量又比较低,造成服务器的资源浪费,此时又不希望把所有的服务都搅和在一台物理机器上,那么比较好的解决方案就是虚拟化了。
1.4.7方便批量运维控制管理
通过模板机做出的虚拟机,所有软件版本、参数等配置都会统一,易于管理。
1.4.8云计算云主机与VPS
很多公司会利用虚拟化服务,部署相对独立的云主机与VPS卖给个人站长及中小企业使用,例如:
万网的云主机与VPS服务。
其实,这里还有很多未提及的虚拟化的应用场景,仅以常见的企业应用为例讲解。
2Xen虚拟化介绍
2.1xen虚拟化的位置拓扑
拓扑1:
拓扑2:
拓扑3:
拓扑4:
2.2Xen支持的虚拟化类型
Xen支持全虚拟化和半虚拟化技术,但并不是所有的中央处理器都支持全虚拟化。
如果想让Xen支持全虚拟化,那么你的中央处理器必须符合下列条件。
Intel中央处理器提供VMX标签。
AMD中央处理器提供SVM标签。
2.3查看硬件对xen虚拟化的支持
当前的64位的X86CPU基本都支持半虚拟化,32位的CPU只要支持pae技术就支持半虚拟化。
如下名为检查结果:
本次实验通过VmwareWorkstation进行模拟搭建
[root@xen01~]#uname-r
2.6.32-358.el6.x86_64
[root@xen01~]#greppae--color/proc/cpuinfo
flags:
fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsmmxfxsrssesse2sssyscallnxlmconstant_tscuparch_perfmonpebsbtsxtopologytsc_reliablenonstop_tscaperfmperfunfair_spinlockpnissse3cx16x2apicxsavehypervisorlahf_lmdts
本文的测试环境只支持半虚拟化,这也是我们工作中最常使用的xen虚拟化类型。
DELL2950/R710支持半虚拟化和全虚拟化。
2.4Xen基本原理介绍
基于Xen的操作系统,有多个层,最底层和最高特权层是Xen的程序本身。
Xen可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中运行。
在Xen的结构中,Domain是由Xen控制,以高效的利用CPU的物理资源。
每个客户操作系统可以管理它自身的应用。
这种管理包括每个程序在规定时间内的响应到执行。
都是通过Xen调度到虚拟机中实现的。
当Xen启动后,第一个虚拟的操作系统,就是Xen本身,通过xmlist会看到。
Domain0是其它虚拟主机的管理者和控制者,Domain0可以构建其它的更多的Domain,并管理虚拟设备。
它还能执行管理任务,比如虚拟机的休眠、唤醒和迁移其它虚拟机。
一个被称为xend的服务器进程通过domain0来管理系统,Xend负责管理众多的虚拟主机,并且提供进入这些系统的控制台。
命令经一个命令行的工具通过一个HTTP的接口被传送到xend.
2.5xen的体系结构
一个XEN虚拟机环境主要由以下几部分组成:
下图4显示了各部分的关系
XENHypervisor:
2.6Xen的深入工作原理
2.7xen虚拟机运行环境
XEN的运行方式:
2.8Xen虚拟化的特性
Ctrl+]切换入物理环境
2.9Xen的产品介绍
2.10Xen的应用场景范围
3Xen虚拟化环境搭建准备
3.1生产服务器硬件配置需求
在我们的生成环境中才用的是DELLR710服务器2台做虚拟化,一般在生成场景,做虚拟化的宿主机应该最少是两台,这样不同的业务在每台服务器上至少部署一个,确保不会因无力宿主机的单点问题影响业务故障,其单台服务器的配置如下:
3.2操作系统:
Centos5.8_x86_64
3.3网卡及IP资源
名称
接口
IP
用途
MASTER
eth0(取消)
10.0.0.7
外网管理IP,用于WAN数据转发
eth1
192.168.0.104
内网管理IP,用于LAN数据转发
搭建虚拟环境模拟真实实验环境:
硬盘空间为LVM10G
3.4测试环境Xen虚拟机的配置
4.开始安装Xen宿主机虚拟化环境
4.1xen核心套件介绍
4.2安装Xen宿主服务器
4.2.1全新安装Xen宿主服务器
虚拟机版本为Centos5.8,最好是C5.8系统。
C6.x系统安装会有点问题。
4.2.2在已有的宿主机上安装Xen
4.2.2.1安装并检查xen套件
1)检查xen套件是否安装
[root@xen01~]#rpm-qa|egrep"kernel-xen|xen-libs|python-virtinst|virt-manager|xen"
以上结果表示没有安装xen相关软件包
2)查看系统中xen组包名称,并安装
####################C6.4的操作
#wgethttp:
//us2.mirror.crc.id.au/repo/el6/x86_64/kernel-xen-release-6-6.noarch.rpm
#rpm-ivhkernel-xen-release-6-6.noarch.rpm
#########################
#C5.8的操作#
[root@xen01~]#yum install -yxenkernel-xenxen-libspython-virtinstbridge-utilsvirt-manager--nogpgcheck
3)检测安装结果
C5.8安装结果
[root@xen01~]#rpm-qa|egrep"kernel-xen|xen-libs|python-virtinst|virt-manager|xen"
python-virtinst-0.400.3-13.el5
xen-libs-3.0.3-142.el5_9.3
kernel-xen-2.6.18-371.11.1.el5
xen-libs-3.0.3-142.el5_9.3
virt-manager-0.6.1-16.el5
xen-3.0.3-142.el5_9.3#一共有6个
C6.4安装结果
[root@xen01~]#rpm-qa|egrep"kernel-xen|xen-libs|python-virtinst|virt-manager|xen"
xen-libs-4.2.4-4.el6.x86_64
kernel-xen-3.14.16-1.el6xen.x86_64
virt-manager-0.9.0-19.el6.x86_64
kernel-xen-release-6-6.noarch
xen-runtime-4.2.4-4.el6.x86_64
kernel-xen-firmware-3.14.16-1.el6xen.x86_64
xen-licenses-4.2.4-4.el6.x86_64
xen-hypervisor-4.2.4-4.el6.x86_64
python-virtinst-0.600.0-18.el6.noarch
xen-doc-4.2.4-4.el6.x86_64
xen-4.2.4-4.el6.x86_64
#virt-manager是图形界面工具,可以不装
4.2.3Xen宿主机基本优化设置
参照Linux服务器基本优化。
4.2.4启动Xen内核支持相关设置
固化宿主机使用的内存,以防出现内存相互挤压的bug。
我们在实际生产工作中发现Xen系统及服务本身并不占用多少系统资源,只要1--2G内存就能很平稳的运行Xen服务。
但是考虑到很多内存会被当做cache和buffer来缓存硬盘I/O压力,根据内存的总量,建议固定给Xen服务器固定分配4--8G内存。
安装了Xen软件之后,grub.conf的内容应该是这样的。
C5.8
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
titleCentOS(2.6.18-371.11.1.el5xen)
root(hd0,0)
kernel/xen.gz-2.6.18-371.11.1.el5dom0_mem=512M
module/vmlinuz-2.6.18-371.11.1.el5xenroroot=LABEL=/rhgbquiet
module/initrd-2.6.18-371.11.1.el5xen.img
titleCentOS(2.6.18-308.el5)
root(hd0,0)
kernel/vmlinuz-2.6.18-308.el5roroot=LABEL=/rhgbquiet
initrd/initrd-2.6.18-308.el5.img
C6.4
[root@xen01~]#cat/etc/grub.conf
default=0#这里是控制开机启动哪个内核,确保系统开机启动的内核是xen的内核。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
#password-md5$1$DbwCm1$7eQkaOmzHYMy2DwGdQJda0
titleCentOS(3.14.16-1.el6xen.x86_64)
root(hd0,0)
kernel/xen.gzdom0_mem=1024Mcpufreq=xendom0_max_vcpus=1dom0_vcpus_pi
n
module/vmlinuz-3.14.16-1.el6xen.x86_64roroot=UUID=d20dea81-455b-4d96-
a986-9282054d2885rd_NO_LUKSrd_NO_LVMLANG=en_US.UTF-8rd_NO_MDSYSFONT=latarcy
rheb-sun16crashkernel=autoKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
module/initramfs-3.14.16-1.el6xen.x86_64.img
titleCentOS(2.6.32-431.23.3.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-431.23.3.el6.x86_64roroot=UUID=d20dea81-455b-4d
96-a986-9282054d2885rd_NO_LUKSrd_NO_LVMLANG=en_US.UTF-8rd_NO_MDSYSFONT=lata
rcyrheb-sun16crashkernel=autoKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
initrd/initramfs-2.6.32-431.23.3.el6.x86_64.img
titleCentOS(2.6.32-358.el6.x86_64)
root(hd0,0)
kernel/vmlinuz-2.6.32-358.el6.x86_64roroot=UUID=d20dea81-455b-4d96-a9
86-9282054d2885rd_NO_LUKSrd_NO_LVMLANG=en_US.UTF-8rd_NO_MDSYSFONT=latarcyrh
eb-sun16crashkernel=autoKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet
initrd/initramfs-2.6.32-358.el6.x86_64.img
调整使得default=0(调整前一般default=1),使得开机启动xen内核,重新启动系统。
有关grub.conf文件详细资料:
从kernel层面卡一下内存使用,接下来xen的最小内存占用,生成环境也写成4G,和grub.conf一样。
配置文件是/etc/xen/xend-config.sxp
(dom0-min-mem256)#这里我们改为-->(dom0-min-mem4096),测试环境我们改为1024
另外:
在C64的系统,还需要执行以下命令,否则会导致xen启动异常缓慢
[root@s~]#mkdir-p/var/run/xenstored/
4.2.5重启Xen宿主机检查相关设置
提示:
下面的操作是在修改grub.conf并重启系统后进行的
重启后一次验证一下内容:
4.2.5.1.检查宿主机启动的内核是否为xend内核
修改前
[root@xen01~]#uname-r
2.6.18-308.el5
修改后
[root@xen01~]#uname-r
2.6.18-371.11.1.el5xen
4.2.5.2.查看引导后内存信息
当前系统的内存只显示512M,但通过xen相关命令可以看到总内存仍然为2G
[root@shell~]#free-m
totalusedfreesharedbufferscached
Mem:
4151192960740
-/+buffers/cache:
70344
Swap:
000
xminfo|greptotal_memory
total_memory:
2047
4.2.5.3.xend服务是xen控制服务,安装完成后会自动启动
[root@xen01~]#/etc/init.d/xendstatus
xendisrunning
[root@xen01~]#chkconfigxend--level3on
4.2.5.4.xendomains服务是虚拟机控制服务,安装完成后xen会自动启动
[root@xen01~]#/etc/init.d/xendomainsstatus
xendomainsisstoped
4.2.6添加网桥(可以不做)
/etc/xen/scripts/network-bridgestartvifnum=1bridge=xenbr0netdev=eth0
/etc/xen/scripts/network-bridgestartvifnum=1bridge=xenbr1netdev=eth1
/etc/xen/scripts/network-bridgestartvifnum=1bridge=xenbr2netdev=eth2
……
#通过这个脚本,可以把不同的网卡,归入不同的网桥,实现虚机走不同的网卡通讯。
实现开机桥接,需要把上述的命令,添加到/etc/xen/scripts/路径下,并具有可执行权限,然后修改配置文件
vim/etc/xen/xend-config.sxp
(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XEN 应用 实战