相信大部分人与笔者一样,在最开始学习安装RAC的时候都是在虚拟机上完成的,原因是受到资源的限制,虚拟机更容易上手。虚拟机除了可以虚拟出多台服务器外,还有一些其他的特点能帮助快速学习RAC。例如,创建系统快照(或者直接打包备份),可以在安装Oracle Clusterware之前创建一个快照,这样在安装出现问题的时候可以快速恢复到安装前的快照状态并重新安装,而不需要执行卸载或者重装系统等操作,可以节省很多时间。另外,还可以在不同的服务器之间复制虚拟机文件以达到快速恢复RAC的目的。虚拟机可以虚拟多种不同的设备,这对于学习也是非常有帮助的。
目前x86平台主流的虚拟机包括:VMware公司产品系列(VMware被EMC收购),微软公司的Virtual PC和Virtual Server,Oracle公司的VirtualBox(本来是Sun公司的开源虚拟机)、Oracle VM以及开源虚拟机Xen。VMware公司的虚拟化产品应该是用得最多的虚拟机,主要包括VMware Workstation、VMware Server、VMware ESX等。微软公司的虚拟机用于虚拟微软的操作系统有较好的性能。从笔者的使用情况来看,VMware的产品和VirtualBox虽然都能很好地支持其他平台的虚拟化,但是在相同的环境下,VMware和VirtualBox虚拟机的性能要比Xen虚拟机差很多,下面简单介绍使用Xen虚拟机搭建RAC环境。
Xen是一种开源虚拟机产品,由于它是开源的,并且有较好的性能,因此被多个商业产品集成,如Red Hat Enterprise Server操作系统、Oracle VM都是集成Xen来实现自己的虚拟化产品。在相同的环境下,Xen能够提供比VMware和VirtualBox产品更好的性能。在Red Hat Enterprise Linux Gnome图形化界面下,按照如下菜单打开虚拟机管理器:Applications→System Tools→Virtual Machine Manager。
图2-41是在Red Hat Enterprise Linux Server 5上,利用集成的Xen搭建的Oracle 11gR2 RAC的Xen管理器界面。
图2-41 Red Hat Enterprise Linux Server 5 Xen 虚拟机管理器
如图2-41所示,Domain-0是一个内核XEN化后的Red Hat操作系统;openfiler是虚拟的存储服务器,rhel1和rhel2是虚拟的两个节点服务器,openfiler、rhel1和rhel2共同构成了一个RAC环境。
VMware的传统产品是安装在操作系统上的VMware虚拟软件,通过虚拟软件来进行虚拟化,随着Xen虚拟技术的不断成熟,已经有越来越多的商业产品在自己的虚拟化产品中集成Xen或者在此基础上进行二次开发,所以使用Xen虚拟机也变得非常容易。Red Hat公司的操作系统从Red Hat Enterprise Linux Server 5开始集成Xen虚拟机,集成Xen的Red Hat操作系统不需要安装任何额外的软件,内核本身就是被虚拟化的,所以直接支持创建虚拟机。Domain分配给虚拟机的物理内存以独占的方式分配,这样就有更好的内存读写性能。总而言之,Xen虚拟化的虚拟机比VMware的传统产品有更好的性能,值得大家使用。前面提到Oracle 虚拟化产品Oracle VM也是在Xen基础上开发出来的产品,使用方法与其他集成的Xen类似。从RedHat Enterprise Server 6.0开始,RedHat抛弃了Xen虚拟机,使用KVM虚拟机,但是不管是操作界面,还是使用方法都与RedHat 5的Xen相差不大,在RedHat Enterprise Linux Server 5.4中已经集成了KVM。下面讨论在RedHat Enterprise Linux Server 5.4中创建Xen虚拟机的方法