本文包含以下几个知识点:
1、rhel6中配置Oracle ASM。
2、KVM中安装配置RHCS。
3、RHCS中注册oracle资源。
4、禁用IPV6。
环境介绍:
这里的共享存储使用的是KVM的共享存储功能,分别使用了三个10G大小的虚拟磁盘。
主机名 | IP | 内存 | 硬盘 | 注释 |
server.exmaple.com | 192.168.1.10 | 16G | /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 | DNS服务器,管理RHCS节点,KVM |
cs01.example.com | 192.168.2.11 | 2G | /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 | RHCS节点1 |
cs02.example.com | 192.168.2.12 | 2G | /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 | RHCS节点2 |
oracle.example.com | 192.168.2.20 | N/A | /dev/vda系统盘,/dev/vd{b,c,d}共享磁盘,用于创建ASM磁盘 | oracle逻辑主机名 |
一、KVM的配置:
具体的KVM安装配置过程请参考我的另一篇博文:RHEL6之KVM的安装配置。这里操作系统使用的是rhel6.1系统。这里具体描述下创建共享存储以及虚拟网络。
1、创建共享存储:
首先在虚拟系统管理器界面,右键点击localhost(QEMU),选择详情,会出现物理主机详情的界面:
然后,点击存储,在存储池中创建卷,如图所示创建了三个ASM卷,接着打开任意一个虚拟机,在虚拟硬件详情里点击”添加硬件”,将上述的三个卷添加进去,如图:
点完成之后,在新添加的磁盘选项中,在”可共享”选项中打勾。在另外一台上,按照上述方法添加新硬盘,点完成后,会弹出以下对话框:
选择”是”即可,完成之后,共享存储就设置完毕,两节点开机后,就可以看到新加的三块虚拟硬盘。
在KVM虚拟机中,可以在线添加硬盘,添加完毕后,不用重启系统就可以立即被识别。
2、创建虚拟网络:
在上图中点击”+”,出现创建新的虚拟网络画面:
最后,点击完成即可。
最后,ifconfig下会出现新的虚拟网络接口:
3、禁用IPV6:
首先编辑/etc/sysconfig/network文件,加入以下内容:
IPV6INIT=no
接着在/etc/modprobe.d目录下,创建disable-ipv6.conf文件,加入以下内容:
最后重启系统使其生效即可。关于上述几个语句的具体含义,请参考/usr/share/doc/initscripts-9.03.23/sysconfig.txt文件。
二、RHCS的安装:
在rhel6.1中,安装luci之后,不用再使用luci_admin命令执行初始化操作了,默认的访问地址还是https://ip:8084,直接使用root帐号登录即可。这里先建个cluster框架,暂时不注册oracle资源,待oracle安装完了之后,再向rhcs中注册oracle资源。
1、server上安装luci软件:
这个组里就一个luci软件包,所以在cs01和cs02上不需要安装。
2、cs01和cs02上安装集群软件:
3、编辑hosts文件,将三个节点的名称及IP加进去:
4、如果防火墙启用,则需要启用以下端口:
5、使用luci创建一个cluster:
(1)、构建cluster框架:
启动luci并登录rhcs的web管理界面,开始配置rhcs:
点击上图中的Create按钮,创建集群:
在点击Create Cluster之前,确保两个节点上的ricci处于运行状态,否则会出现以下报错:
还有就是在初次使用的时候,必须在集群节点上设置ricci用户的密码,否则会出现以下错误:
经过一系列的配置重启节点后,如下图所示:
点击任意一个节点,就可以看到所有的cluster服务已经启动:
(2)、创建Failover Domain:
点击”Failover Domain”选项卡,然后点击”Add”按钮:
Failover domain name:定义Failover域名称。
Prioritized:是否在Failover domain 中启用域成员优先级设置。
Restrict Failover to this domain’s member:是否在失败转移域成员中启用服务故障切换限制。
Do not fail back services in this domain:表示在这个域中使用故障切回功能,也就是说,主节点故障时,备用节点会自动接管主节点服务和资源,当主节点恢复正常时,集群的服务和资源会从备用节点自动切换到主节点。最后,在Failover domain membership的Member复选框中,选择加入此域的节点,在“priority”处将cs01的优先级设置为1,cs02的优先级设置为5。对于“priority”的值设置为1代表优先级最高的,随着数值的增加,节点优先级也依次降低。
(3),配置Fence设备:
点击Fence Devices选项卡再点击Add,如图:
这里使用的是SCSI_Fence,使用的是裸设备。
接着在各个节点中关联fence设备:
点击节点名称,然后选择Add Fence Method,设置名称,完成之后,再添加fence实例:
使用命令行查看fence设备信息:
(4)、使用命令查看rhcs相关信息:
三、Oracle的安装:
1、RHEL6中ASMlib的安装:
对于rhel6,oracle已经不提供ASMlib支持了。oracle只对自己的Oracle Enterprise Linux提供Oracle支持。在oracle linux中,默认已经将ASM模块编译进内核了,只需安装oracleasm-support软件即可使用。由于oracle提供的Unbreakable Enterprise Kernel内核与rhel6的内核完全兼容,所以在rhel6中只需安装kernel-uek开头的内核文件,然后再安装oracleasm-support软件即可使用ASM。
Oracle ASM软件以及Unbreakable Enterprise Kernel内核下载站点:http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/x86_64/,主要下载下图中的几个软件包,两个节点都进行安装:
对/dev/vd{b,c,d}进行分区操作:
完成之后,在其中一个节点上使用oracleasm进行初始化并创建ASM磁盘:
最后,在另外一个点上扫描下asm磁盘即可:
2、Oracle数据库软件的安装:
这里不使用ASM磁盘组,安装的数据库版本是11.2.0.2。共享存储使用的是LVM。Oracle软件安装过程、监听创建过程以及建库过程全省略,请参考其他博文。
3、创建共享文件系统:
使用/dev/vd{b,c,d}三个虚拟硬盘创建LVM卷组oradata。
接着,创建了一个逻辑卷组u02用于存放oracle数据。
四、注册oracle资源:
1、创建IP资源:
这个IP就是Oracle监听器的地址,对应的主机名是oracle.example.com.
2、创建LVM HA资源:
对这个做个解释:用于LVM HA的vg是oradata,其中划分了一个15G大小的u02用于存放oracle数据文件。
LVM的HA切换是这样的,当前oradata存在于cs02上面,首先系统卸载u02文件系统,接着将/dev/oradata/u02设置为未激活状态,然后执行vgexport将oradata导出。在cs01上面,首先执行vgimport将oradata导入,接着将/dev/oradata/u02设置为激活状态,最后挂载到指定点。
3、创建文件系统资源:
这个资源依赖于上面的LVM-HA资源。
4、创建监听器资源:
这个agent调用的是/usr/share/cluster/oralistener.sh脚本。
5、oracle数据库实例资源:
这个agent调用的是/usr/share/cluster/orainstance.sh。
6、创建服务组:
这里创建了一个oracle服务组,上述创建的5个资源将其添加到oracle组里构成一个服务组。这个不好截取web界面,所以使用命令行界面:
上述的资源所调用的脚本都位于/usr/share/cluster目录下。创建完服务组之后,系统会自动启动它。当前oracle服务组已处于online状态:
针对于oracle.example.com这个IP地址,不能使用ifconfig查看,要使用下面的ip命令进行查看:
五、RHCS的命令行管理:
1、查看RHCS服务组状态:
2、切换服务组:
当前oracle运行于cs02上,将其切换至cs01上:
3、ccs命令的相关使用:
查看资源以及服务组信息:
查看当前的cluster配置信息:
这个命令实质上就是查看cluster.conf文件。
查看Failoverdomain信息:
查看fence信息:
查看节点信息:
ccs这个命令也可以创建cluster,增加节点,创建资源、删除资源、修改资源等操作,其类似于在web管理界面的操作。
参考文献:
Red Hat Enterprise Linux 6 Cluster Administration