资源描述
Linux集群配置文档(中文配置文档)
RHCS+Oracle配置实战图解(1)
在RHCS中,最难理解的是Fence机制,下面的配置过程将首先以"手动Fence"为例进行讲解,以更深入地描述Fence在集群运行过程中的运行步骤及作用,最后再换成真实的Fence设备。需要注意的是,虽然通过"手动Fence"可以完整地配置RHCS,但在生产环境中不推荐这样做,因为一旦出现硬件级故障的话,"手动Fence"需要管理员通过人工干预方式进行系统切换。
1. 安装红帽集群套件RHCS
安装RHCS主要有以下3个途径:
通过RHEL5 AP高级平台版介质进行安装,并在安装过程中输入通过网站激活后得到的Install Number,选中相应的"Cluster(集群)"组件。
通过RHCSS(Red Hat Cluster Solution Suite,红帽集群解决方案套件)的安装光盘进行安装,RHCSS的好处是已经附带了多种流行数据库的支持接口,并可以提供磁盘镜像(Mirro)及企业系统备份功能。
注意:
购买RHCSS订阅时就已经包括了上门安装服务,会有专人为客户进行生产环境下的安装配置。
通过RHEL5 AP高级平台版介质进行手动安装,将安装介质挂载到/media/cdrom,然后进行以下操作:
(1) 建立文件/etc/yum.repos.d/mycdrom.repo,内容如下:
(2) 执行yum命令进行集群组件的安装:
2. 红帽集群套件RHCS配置前的准备
在两台服务器中分别安装RHCS,并按照表12-1所示配置服务器。
表12-1 RHCS集群配置说明
3. 通过system-config-cluster配置RHCS
打开一个终端并通过root用户身份运行命令system-config-cluster,或通过"系统"|"管理"|"服务器设置"|"system-config-cluster"来打开集群配置界面。
建立新集群
建立一个新的集群,命名为"new_cluster"。请注意:集群的名称要求少于16个字符,否则集群启动时会出现问题,如图12-3所示。对于双节点的集群来说,"Custom Configure Multicast"和"Use a Quorum Disk"都可以不作设置。
Custom Configure Multicast:用于指定一个用于本集群的多播地址。
Use a Quorum Disk:当多个节点要求仲裁机制时,指定仲裁策略。在实际应用中,超过两个节点的集群应用相对还是比较少,因此本书只涉及到RHCS双节点的配置。有兴趣了解"Quorum Disk"的读者可以参考红帽公司的官方文档。
添加节点
(1) 在图12-4左边的树状目录中选中"Cluster Nodes",单击"Add a Cluster Node"添加集群节点。
(2) 在"Node Properties"窗口中填入两个节点的机器名,分别为和,如图12-5所示。此处不但添加了节点,还同时指定了集群的"心跳"。由于在/etc/hosts中已经指定了两个节点名称对应的IP分别为192.168.100.11和192.168.100.12,因此两台服务器通过此网络接口对连即可成为"心跳线"。
图12-3 新建集群
(点击查看大图)图12-4 添加集群节点
12.6.3 RHCS+Oracle配置实战图解(2)
添加Fence设备
(1) 在图12-4左边的树状节点中选中"Fence Devices",单击"Add a Fence Device"打开Fence配置窗口。
(2) 在"Add a New Fence Device"下拉菜单中选中"Manual Fencing"以手动Fencing。
(3) 在"Name"处为Fence设备自定义一个名称,如"m_fencing",如图12-6所示。
图12-5 加入节点
图12-6 添加手动Fence设备
节点与Fence设备绑定
(1) 在图11-7左边的树状目录中选中"",单击"Manage Fencing For This Node"。
(2) 为节点添加一个"Fence Level"(注:为进一步保证集群"脑裂"时的有效切换,RHCS允许对一个节点添加多个Fence设备并建立分级的Fence操作)。
(点击查看大图)图12-7 为节点添加Fence Level
(3) 选中"Fence-Level-1",单击"Add a New Fence to this Level",在"Fence Properties"窗口的"Add a New Fence"下拉菜单中选择刚才建立的名为"m_fencing"的设备,如图12-8所示。
图12-8 指定Fence Level使用的Fence设备
(4) 在节点上重复以上步骤,将其与名为"m_fencing"的设备绑定。
新建Failover Domain
(1) 在图12-4左边的树状目录中选中"Failover Domains",单击"Create a Failover Domain"。
(2) 在"Name for new Failover Domain"文本框中指定自定义的Failover Domain名称,如ora_domain,如图12-9所示。
图12-9 新建Failover Domain
(3) 通过"Available Cluster Nodes"下拉菜单将及server2. 加入到当前的Failover Domain中,如图12-10所示。
Restrict Failover To This Domains Members:指派给这个Failover Domain的Service只可以在当前加入的成员上执行;如果不选此项,Service将允许在本集群中的任何节点进行Failover切换。为保证系统的严谨性,建议选中此项。
Prioritized List:用于调整Failover Domain中节点的优先级别,指定Service优先在哪个节点中运行。(注:对于双节点情况,如果,两台服务器的性能相同,那么一般不需要设置它们的优先关系,先启动服务器为主服务器,后启动的的为备用服务器。当主服务器出现故障,备用服务器进行Service接管后,即使主服务器通过检修重新加入集群,由于主/备服务器性能相同,因此没有必要再浪费时间进行Service切换)
添加Resource - IP Address
(1) 在图12-4左边的树状目录中选中"Resources",单击"Create a Resource"。
(2) 在"Select a Resource Type"下拉菜单中选中"IP Address"并填入IP地址,如192.168.101.10,如图12-11所示。此地址就是上面提到的"虚拟IP",对于每一个通过网络进行连接的Service来说,都要求至少有一个独立的"虚拟IP"。
图12-10 为Failover Domain添加节点
图12-11 添加IP Address资源
12.6.3 RHCS+Oracle配置实战图解(3)
添加Resource - File System
(1) 在图12-4左边的树状目录中选中"Resources",单击"Create a Resource"。
(2) 在"Select a Resource Type"下拉菜单中选中"File System",并按图12-12所示指定文件系统资源的名称、文件系统类型、挂载点及使用的磁盘设备。
Options:执行mount指令时的特殊参数,与mount指令的"-o"参数相同。
File System ID:RHCS中要求每个File System都有一个唯一的ID号,此项一般不用指定,系统会自动进行分配。
Force unmount - 一旦服务要求切换,在进行umount操作时使用-f参数
Reboot host node if unmount fails - 若umount失败,则尝试对此系统进行重启操作。
Check file system before mounting - 挂载文件系统前通过fsck命令对文件系统进行检查,这可以更好地保证文件系统的完整性,但对于大文件系统来说,这将花费很长的时间。
添加Resource - Script
(1) 在图12-4左边的树状目录中选中"Resources",单击"Create a Resource"。
(2) 在"Select a Resource Type"下拉菜单中选中"Script",为此资源定义一个"Name"为ora_script、以/etc/init.d/dbora为脚本文件的Scrgt资源,如图12-13所示。
/etc/init.d/dbora是一个用于对Oracle进行启动(start)、停止(stop)及状态检查(status)的脚本,RHCS要求每个脚本都支持这3种参数操作,并根据应用的实际运行情况返回"0(表示正常)"或"非0(表示运行异常)"。RHCS就是靠这些参数及返回值来判断应用程序运行得正常与否,以保证当应用软件由于自身或其他原因而导致异常时进行Failover切换(本书将在后面的章节中为读者详细分析/etc/init.d/dbora脚本的运行过程)。
图12-12 添加File System资源
图12-13 添加Script资源
建立Service
(1) 在图12-4左边的树状目录中选中"Services",单击"Create a Service",新建一个名为ora_serivce的服务,如图12-14所示。
图12-14 新建Service
(2) 在"Service Management"窗口的"Failover Domain"中选择之前建立的ora_domain,此窗口用于指定Failover Domain与Service之间的关系,以及Service与Resrouces之间的关系,是集群配置中最重要的一环。
(3) 单击"Add Shared Resource to this service",在列表框中选择之前建立的IP Address资源:192.168.101.10。单击"OK"按钮,使之添加到本Service的资源列表中,如图12-15所示。
也可以通过"Create a new resource for this service"建立对应本Service的私有资源属性,这些属性将不可以再在其他Service中使用。
有些资源要求体现出一定的层次关系,如:通常系统都要求确认虚拟IP及文件系统都已经正常连接及挂载后,才可以运行某个应用程序,这个顺序一旦调转,将会使应用程序运行出错。通过选中"192.168.101.10 IP Address Shared",然后单击"Attach a Shared Resource to the selection"可以将其他共享资源添加为此资源的子项,以实现顺序地启动及关闭,如图12-16所示。
(点击查看大图)图12-15 向Service加入IP Address资源
12.6.3 RHCS+Oracle配置实战图解(4)
至此,资源添加完成,服务启动时将先尝试对IP进行接管,然后尝试挂载文件系统,最后运行应用所需的脚本中的start方法,如/etc/init.d/dbora start。如果这3个资源均被正常启动,则服务启动成功;否则,任何一个资源启动异常,都将导致服务起动失败。此时RHCS会尝试在Failover Domain中的其他节点启动服务。
同理,停止服务是启动顺序的反过程:先通过脚本中的stop方法停止应用,然后卸载文件系统,最后清除IP。
Recovery Policy:指定进行切换时所使用的策略,通过RHCS的rgmanager可以在运行时对服务中的各个资源进行检测,一旦检查到某个资源的status操作发生异常,就按照此策略进行操作。
Restart-如果发现资源出现异常,则先在本地尝试重启服务,如果重启失败则执行Relocate操作。
Relocate-停止当前节点中与本服务相关的所有资源,由另一台服务器进行服务及资源的接管。
Disable-在所有节点中停止服务,不进行任何操作。
一般建议在测试环境中使用"Relocate",因为这样可以很好地展示系统切换的过程;在生产环境中则建议使用"Restart",因为有不少异常通过本地重启服务是可以解决的,这样可以最大限度缩短系统切换所消耗的时间。
其他选项:
Autostart This Service-rgmanager启动时自动启动此Service。
Run Exclusive-指定此Service以独占方式运行,一旦此Service运行在某个服务器之上,集群就将拒绝其他的Service在此服务器上运行。
完成后的集群如图12-19所示。
(点击查看大图)图12-19 完成后的集群效果
保存配置文件
通过File | Save,保存配置文件为/etc/cluster/cluster.conf。
4. Oracle集群脚本讲解
以下是一个用于在RHCS中实现Oracle启停及状态管理的脚本,使用时请对应实际环境自行修改ORACLE_HOME、ORACLE_SID等参数。另外,此脚本只作为学习及练习的参考,不能保证在生产环境上的运行稳定性。
(点击查看大图)图12-16 向IP Address加入下级资源
(4) 在列表框中选择之前建立的名为ora_fs的File System资源,单击"OK"按钮将它加入为IP Address的下级资源,如图12-17所示。
(点击查看大图)图12-17 向IP Address加入下级File System资源
(5) 选中"ora_fs File System Shared",然后单击"Attach a Shared Resource to the selection",将ora_script加入,作为它的子资源,如图12-18所示。
(点击查看大图)图12-18 向File System加入下级Script资源
12.6.3 RHCS+Oracle配置实战图解(5)
上述脚本通过多种判断过程来检查Oracle服务的运行状态,并实现了start、stop及status操作方法。当一个应用或资源要求基于RHCS集群进行管理时,所有的启动及停止操作都应该由集群进行控制。当RHCS认为服务应该在某个节点上启动时,系统会通过调用Script资源的start方法来尝试启动该资源。若运行的返回值为"0",则说明此服务正常启动。
在服务的运行过程中,系统会定期地通过status方法检测资源的运行状态。一旦运行的返回值为"非0"值,系统便会按照此服务定义的Recovery Policy进行服务切换。
当手工进行维护时(如通过clusvcadm命令对服务进行Relocate操作时),系统会调用资源的stop方法,使其在本节点中正常停止,然后再在另一个节点上重新启动。
5. 初始化同步集群配置文件
/etc/cluster/cluster.conf样例:
可以看到,前面通过system-config-cluster工具配置的各个选项最后都被保存成一个XML文件,这就是RHCS最终要使用的配置文件。
使用scp命令将此配置文件拷贝到集群的其他节点:
、
12.6.3 RHCS+Oracle配置实战图解(10)
(3) 在左边的树状目录中选中,单击"Manage Fencing For This Node"。
(4) 选中"m_fencing",单击"Remove this Fence"
(5) 选中"Fence-Level-1",单击"Add a New Fence to this Level",在"Fence Properties"窗口的"Add a New Fence"下拉菜单中选择刚才建立的名为"rsa1"的设备,如图12-23所示。
图12-23 指定Fence Level使用的Fence设备
(6) 在节点上重复以上工作,将其与名为"rsa2"的设备进行绑定。
重新参考"系统服务cman启动"及"心跳线断链"部分的内容来进行测试操作,此时在服务器启动及系统切换的所有过程中,RHCS都会通过IBM RSA II的Fence机制来实现系统的自动关机及启动管理。
失效节点重新加入
服务器server2重新开机并启动系统后,通过启动系统服务cman及rgmanager可重新加入集群。
停止RHCS
需要手动停止RHCS服务时,请先停止rgmanager,然后再停止cman。
自动启动
在确认以上各个过程都能顺利操作后,可通过在两个服务器中执行以下操作来实现开机自动启动:
技术部:马雷
2010年10月31号
展开阅读全文