本文是探讨在基于RHEL/CentOS5系列linux上部署convirt宿主机,以KVM作为Hypervisor。由于一台CMS可以管理足够的宿主机,所以部署一台CMS将不是很大的问题,在以后会研究自动部署CMS。
对于安装过ConVirt的朋友一定知道,官网WIKI提供的方式是先下载convirture官方的yum源文件,然后通过连网再去下载安装CMS和convirture-tools的相关软件,结合本地linux的yum源解决相关的软件依赖问题。一般情况下,对于部署少量的几台宿主机而言,连网外网下载也不会有很大问题,但是若批量部署宿主机,几百台,几千台甚至更多那按照官方步骤安装的话将是一个麻烦的工作,况且连外网部署也具有一定的安全风险。为了能够快速批量的部署宿主机,我作了多方的研究和测试。
这里我想提一点,在研究虚拟化之前,我也只是了解一些,对于怎么样去实际部署,怎么样去选择软件,shell,python,kickstart,lvm,nfs都只是出于了解阶段,但是实际问题放在这,就要想尽办法去实现,不会的现学,不了解的就去了解。我觉得运维最重要的是要有思路,要学会分析问题。
1.下载convirt-tools.
http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
2.解压convirture-tools到home目录下。在官方wiki看到,在安装convirture-tools之前,需要以root用户执行./convirt-tool install_dependencies 然后再执行./convirt-tool setup。因此在安装CentOS5.6系统时就将相应的软件包安装好,会省去很多麻烦。
通过分析软件包里的脚本文件在/home/convirture-tools/common/scripts里的RedHat_functions文件了找到如下代码
- #install convirt tool dependencies
- install_dependencies(){
- cd /etc/yum.repos.d
- if [ "${VER%.*}" == "6" ]; then
- wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo
- else
- wget --no-cache http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo
- fi
- $SUDO yum -y install dnsmasq tunctl tcp_wrappers socat expect pexpect
- }
可以看到在进行setup之前需要安装dnsmasq,tunctl,tcp_wrappers,socat,expect,pexpect,其中socat是centos自带光盘中没有的包,其余的都是可以通过光盘镜像中获取,因此,只需到http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo文件中的
http://www.convirture.com/repos/deps/RHEL/5.x/去下载好32为的或64为的socat备用。然后将代码修改为
- #install convirt tool dependencies
- install_dependencies(){
- # cd /etc/yum.repos.d
- # if [ "${VER%.*}" == "6" ]; then
- # wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo
- # else
- # wget --no-cache http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo
- # fi
- $SUDO yum -y install dnsmasq tunctl tcp_wrappers socat expect pexpect
- }
这样在安装系统的过程中就不从convirt的官方下载软件,以方便从自己搭建的yum源下载。
3.作修改后重新打包convirt-tools。备用。
4.搭建自己的yum源。本文采用web服务器存放CentOS5.6的镜像内容,并将下载好的socat,重新打包好的convirt-tools放到web服务器上。
实际上部署和安装一般的linux没啥区别,就是在部署时尽量只安装需要的软件包,多余的不要,将尽量多的资源分配给虚拟机,以提高虚拟机性能。部署情况有以下几种
1.如果是全新安装部署,服务器都还在机房里没有发出去,可以采用PXE方式安装,定制好kickstart 文件就可以批量安装了。
2.我们的需求是要逐步更换正在运行的Vmware和XenServer,而且服务器没有远控。最先想到的就是用U盘引导+kickstart到现场去安装
3.由于我们使用的服务器一部分在公司,另一部分托管到别的机房,所以第2种方案有点费神费力。于是我开始研究是否可以在线远程更换。通过编辑grub+vmlinuz+initrd.img+kickstart+vnc可以实现远程更换。