CentOS 6.7 部署RHCS+GFS+oracle11G单节点 高可用集群


环境

  1. 环境配置:节点服务器两台,管理和存储服务器一台。
节点1:192.168.100.40
节点2:192.168.100.50
管理与存储:192.168.100.30
VIP:192.168.100.100
  1. 三台服务器都添加hosts记录
127.0.0.1   localhost
192.168.100.30  test0.com
192.168.100.40  test1.com
192.168.100.50  test2.com

GFS

  1. 配置iSCSI
    ==管理服务器:== > a.安装target端
yum install scsi-target-utils.x86_64

b.替换配置

cat /etc/tgt/targets.conf |grep -v '#'|tr -s '\\n'
default-driver iscsi
<target iqn.2016-03.test:test0>
    backing-store /dev/sdb
</target>

说明:
iqn = iSCSI Qualified Name
iSCSI target的名称规则如下:
iqn.iqn.2016-03.test:test0
iqn.年份-月份.域名反写.设备识别
每个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN)

c.启动iSCSI target

/etc/init.d/tgtd start
chkconfig tgtd on
netstat -tulnp|grep tgt

d.查看iSCSI target

tgt-admin --show
tgtadm -m target -o show

==两台节点服务器:==

a.安装initiator

yum install iscsi-initiator-utils.x86_64

b.设置开机启动

chkconfig iscsid on
chkconfig iscsi on

c.配置initiator

/etc/iscsi/iscsid.conf  #因为在target里面,我们并没有设置访问限制,所以配置文件iscsid.conf 文件并不需要修改。
vi /etc/iscsi/initiatorname.iscsi  #分别填写两台initiator的名称
InitiatorName=iqn.2016-03.test1:test1

d.侦测target

#iscsiadm -m discovery -t sendtargets -p 192.168.100.30
192.168.100.30:3260,1 iqn.2016-03.test:test0
说明:
-m discovery  //侦测target
-t sendtargets  //通过iscsi协议
-p IP:port  //指定target的IP和port,不写port的话,默认为3260

e.查看nodes

iscsiadm 侦测到的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动/etc/init.d/iscsi 就能够在下次开机时,自动连接到正确的target了。
ll -R /var/lib/iscsi/nodes/
侦测信息都写入了/var/lib/iscsi/nodes/iqn.2016-03.test:test0/192.168.100.30,3260,1/default文件中了。

f.连接target

查看目前系统上面所有的target
iscsiadm -m node

g.登录target

iscsiadm -m node -T iqn.2016-03.test:test0 --login

h.查看磁盘情况

fdisk -cul

==其中一台节点服务器:==

a.分区

将磁盘分2个区,/dev/sda1做GFS分区500G,/dev/sda2做表决磁盘10G。
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       65272  524297308+  83  Linux
/dev/sda2           65273       66578    10490445   83  Linux
配置GFS(两台节点服务器)
# lvmconf --enable-cluster
# service clvmd start
# chkconfig clvmd on

b.创建LVM

pvcreate /dev/sda1
vgcreate lvmvg /dev/sda1
lvcreate -L 60G -n lvmlv lvmvg

c.格式化GFS

mkfs.gfs2 -p lock_dlm -t ttttest:oracle -j 2 /dev/lvmvg/lvmlv
其中:
 -p lock_dlm
  定义为DLM锁方式,如果不加此参数,当在两个系统中同时挂载此分区时就会像EXT3格式一样,两个系统的信息不能同步。
 -t ttttest:oracle
  指定DLM锁所在的表名称,ttttest就是RHCS集群的名称,必须与cluster.conf文件中Cluster标签的name值相同,oracle是自定义的名字标签。
 -j 2
  设定GFS2文件系统最多支持多少个节点同时挂载,这个值可以通gfs2_jadd命令在使用中动态调整。
 /dev/lvmvg/lvmlv
  指定要格式化的分区设备标识。
  所有操作完成后,重启集群所有节点,保证划分的磁盘分区能够被所有节点识别。

d.查看磁盘id

blkid /dev/lvmvg/lvmlv

e.手动挂载

mount -t gfs2 /dev/lvmvg/lvmlv /u01/oradata –v

f.配置表决磁盘 - 使用表决磁盘的必要性 在一个多节点的RHCS集群系统中,一个节点失败后,集群的服务和资源可以自动转移到其它节点上,但是这种转移是有条件的,例如,在一个四节点的集群中,一旦有两个节点发生故障,整个集群系统将会挂起,集群服务也随即停止,而如果配置了存储集群GFS文件系统,那么只要有一个节点发生故障,所有节点挂载的GFS文件系统将hung住。此时共享存储将无法使用,这种情况的出现,对于高可用的集群系统来说是绝对不允许的,解决这种问题就要通过表决磁盘来实现了。 - 表决磁盘运行机制 表决磁盘,即Quorum Disk,在RHCS里简称qdisk,是基于磁盘的Cluster仲裁服务程序,为了解决小规模集群中投票问题,RHCS引入了Quorum机制机制,Quorum表示集群法定的节点数,和Quorum对应的是Quorate,Quorate是一种状态,表示达到法定节点数。在正常状态下,Quorum的值是每个节点投票值再加上 QDisk分区的投票值之和。QDisk是一个小于10MB的共享磁盘分区,Qdiskd进程运行在集群的所有节点上,通过Qdiskd进程,集群节点定期评估自身的健康情况,并且把自身的状态信息写到指定的共享磁盘分区中,同时Qdiskd还可以查看其它节点的状态信息,并传递信息给其它节点。 - RHCS中表决磁盘的概念 和qdisk相关的几个工具有mkdisk、Heuristics。 mkdisk是一个集群仲裁磁盘工具集,可以用来创建一个qdisk共享磁盘也可以查看共享磁盘的状态信息。mkqdisk操作只能创建16个节点的投票空间,因此目前qdisk最多可以支持16个节点的RHCS高可用集群。有时候仅靠检测Qdisk分区来判断节点状态还是不够的,还可以通过应用程序来扩展对节点状态检测的精度,Heuristics就是这么一个扩充选项,它允许通过第三方应用程序来辅助定位节点状态,常用的有ping网关或路由,或者通过脚本程序等,如果试探失败,qdiskd会认为此节点失败,进而试图重启此节点,以使节点进入正常状态。 - 创建一个表决磁盘 在上面章节中,已经划分了多个共享磁盘分区,这里将共享磁盘分区/dev/sdb7作为qdisk分区,下面是创建一个qdisk分区:

mkqdisk -c /dev/sda2 -l myqdisk
mkqdisk -L    #查看表决磁盘信息

RHCS

Conga是新的基于网络的集群配置工具。它是web界面管理的,由luci和ricci组成,luci可以安装在一台独立的计算机上,也可安装在节点上,用于配置和管理集群,ricci是一个代理,安装在每个集群节点上,luci通过ricci和集群中的每个节点通信。

GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群的多个节点在块级别上共享 存储,多个节点同时挂载一个文件系统分区,而使文件系统数据不受破坏,单一的ext2或ext3无法做到。

为了实现多个节点对一个文件系统同时进行读写操作,GFS使用锁管理器(DLM)来管理I/O操作:当一个写进程操作一个文件时,此文件被锁定,其它进程无法进行读写操作,操作完成后,RHCS底层机制会把此操作在其它节点上可见。

有GFS就有RHCS,但建立RHCS时,如果不用共享存储,就没有必要用GFS。 4. 管理服务器安装luci

yum -y install luci
service luci start
chkconfig luci on
访问:https://localhost:8084  (系统账号登陆)
  1. 两台节点服务器安装RHCS
yum -y install cman odcluster ricci gfs2-utils rgmanager lvm2-cluster
service ricci start
service rgmanager start
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
service cman start
chkconfig ricci on
chkconfig rgmanager on
chkconfig cman on
设置ricci的密码,在Management上添加node 时需要用上
echo "123456" | passwd --stdin ricci
  1. 登陆lici配置集群。 > https://localhost:8084
  2. 创建集群,加入节点。 image
  3. 添加转移域
FailOver Domains -> Add ,添加转移域
Prioritized:故障转移时选择优先级高
Restricted:服务只运行在指定的节点上
No Failback:故障节点恢复后,服务不用切换回去

image - 添加资源

Resource -> Add 1. 虚拟IP image 2. NFS存储(自动挂载存储,不需要在/etc/fstab里面开机加载. image 3. oracle实例(名字要填SID(实例ID) 不是Service ID (服务ID)) image 4. oracle监听 (注意 listener name 要和/u01/product/network/admin/listener.ora里面的一样) image - 创建资源组 1. Service Groups -> Add 将Recovery Policy 属性设置为Relocate[转移] image 2. Add Resource (按顺序添加,从上往下启动) image - Qdisk image 资源切换到node1上,按oracle正常步骤安装,node2上,只需安装数据库软件,然后同步ORACLE_BASE目录、pfile、spfile、owapw文件即可,然后再新增各自的listener.ora、tnsnames.ora image

clustat  查看当前节点
clusvcadm -r all -m test2.com  切换节点(节点服务器运行。)
/var/log/message 日志
ccs_sync   同步配置

没有Fence设备无法自动切换。