欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

HGDB HA with ISCSI

程序员文章站 2022-06-09 13:20:18
...

1、基础环境 vip(虚拟IP):192.168.100.222 iscsi(存储):192.168.100.200 node1(节点一):192.168.100.192 node2(节点二):192.168.100.195 新建highgo操作系统用户,要求三台机器highgo用户的uid、gid相同 2、三台机器均关闭防火墙和SELINUX (以n

1、基础环境

  vip(虚拟IP):192.168.100.222
  iscsi(存储):192.168.100.200
  node1(节点一):192.168.100.192
  node2(节点二):192.168.100.195     
  新建highgo操作系统用户,要求三台机器highgo用户的uid、gid相同

2、三台机器均关闭防火墙和SELINUX (以node1为例)

HGDB HA with ISCSI

3、三台机器均SSH互信 (以iscsi为例)

(1)修改/etc/hosts
HGDB HA with ISCSI

(2)root用户执行
HGDB HA with ISCSI

(3)highgo用户执行
HGDB HA with ISCSI

4、ISCSI配置

(1)服务器端(iscsi)

>>>首先安装scsi-target-utils:
yum -y install scsi-target-utils

>>>编辑/etc/tgt/targets.conf,添加:(/dev/sda是新添加的用来共享的磁盘,为原生的未经过格式化的盘)
target iqn.201605.dev:server.target1>
    backing-store /dev/sda
/target>

>>>启动服务,并配置开机自启动:
service tgtd start
chkconfig tgtd on

(2)客户端(node1、node2)

>>>首先安装iscsi-initiator-utils
yum -y install iscsi-initiator-utils

>>>编辑/etc/iscsi/initiatorname.iscsi,添加:
InitiatorName=iqn.201605.dev:server.target1

>>>配置服务:
chkconfig iscsi on
chkconfig iscsid on

service iscsi restart
service iscsid restart

启动服务时出现失败的情况,正常
HGDB HA with ISCSI

5、安装数据库(node1、node2)

node1安装过程:

(1)创建目录(挂载点)

mkdir /install/hgdb -p

(2)发现服务器端有磁盘共享,并登录

HGDB HA with ISCSI

HGDB HA with ISCSI

(3)查询本地多一块磁盘

HGDB HA with ISCSI

(4)格式化磁盘并挂载

HGDB HA with ISCSI

注意:若挂载时出现以下错误,即为没有格式化磁盘所致
HGDB HA with ISCSI

(5)切换到highgo登录系统,执行安装

>>>编辑.bash_profile,添加:
export HG_HOME=/home/highgo/hgdb

注意:数据目录的选择,即将data目录置于共享磁盘中
HGDB HA with ISCSI

(6)安装完成后,注销highgo,切换回root,执行关闭数据库服务、设置开机不自动启动数据库服务、卸载挂载的目录

service hgdb-se2.0.4 stop
chkconfig hgdb-se2.0.4 off
umount /install/hgdb

node2安装过程:

(1)创建目录(挂载点)

mkdir /install/hgdb -p

(2)发现服务器端有磁盘共享,并登录

HGDB HA with ISCSI

HGDB HA with ISCSI

(3)挂载磁盘
HGDB HA with ISCSI

注意:/dev/sdb为共享磁盘,在node1安装数据库时已经格式化并将data目录置于其下,此时只需要挂载即可看到data目录

(4)切换到highgo登录系统,执行安装

注意:不作为系统服务安装(这样安装时不会有data目录选项出现)
HGDB HA with ISCSI

(5)注销highgo,切换回root,执行卸载挂载的目录

umount /install/hgdb

6、HA配置

(1)node1、node2安装

yum -y install pacemaker corosync pcs

(2)在一个节点配置文件,并将文件拷贝到另一节点(以node1为例)

密钥文件:

corosync-keygen
scp /etc/corosync/authkey root@node1:/etc/corosync
corosync.conf文件:

cd /etc/corosync
cp corosync.conf.example corosync.conf
vi corosync.conf

HGDB HA with ISCSI

pacemaker服务启动脚本:

cd service.d
vi pcmd

HGDB HA with ISCSI

corosync、pacemaker服务启停:

chkconfig corosync on
service corosync start

chkcofig pacemaker off
servicepacemaker stop

7、集群资源配置

首先启动服务:service corosync start (node1、node2)

查看集群状态:
HGDB HA with ISCSI

在一个节点上完成资源的配置即可

任何情况集群资源继续运行
pcs property set no-quorum-policy=ignore
禁用stonith
pcs property set stonith-enabled=false
配置vip
pcs resource create vip ocf:heartbeat:IPaddr params ip="192.168.100.222" nic="eth0" cidr_netmask="24" op monitor interval=20s timeout=30s

查看集群状态
HGDB HA with ISCSI

配置sdisk(共享存储)
pcs resource create sdisk ocf:heartbeat:Filesystem params device="/dev/sdb" directory="/install/hgdb " fstype="ext4" op start timeout=60s op stop timeout=60s op monitor interval=20s timeout=60s

查看集群状态
HGDB HA with ISCSI

配置数据库服务
pcs resource create dbserver ocf:heartbeat:pgsql params pghost=192.168.100.222 pgport=5866 pgdba=highgo pgctl=/home/highgo/hgdb/bin/pg_ctl start_opt="-D /install/hgdb/data" psql=/home/highgo/hgdb/bin/psql pgdata=/install/hgdb/data monitor_user=highgo monitor_password=highgo123 op start timeout=120s interval=120s op stop timeout=120s interval=120s op status timeout=60s interval=60s

HGDB HA with ISCSI

配置三个资源在一个组
pcs resource group add hgdb_group sdisk
pcs resource group add hgdb_group vip
pcs resource group add hgdb_group dbserver
配置资源在两节点中的优先级
pcs constraint location sdisk prefers node1=50
pcs constraint location sdisk prefers node2=40
pcs constraint location vip prefers node1=50
pcs constraint location vip prefers node2=40
pcs constraint location dbserver prefers node1=50
pcs constraint location dbserver prefers node2=40
配置资源在节点中的启动顺序
pcs constraint order start vip then start sdisk then start dbserver
配置psql文件(node1、node2)
vi /usr/lib/ocf/resource.d/heartbeat/pgsql

HGDB HA with ISCSI
HGDB HA with ISCSI

需要确认的错误情况及解决方法:
node1重启corosync服务时,出现下面的状况,而node2可以重启
HGDB HA with ISCSI
查看日志文件
HGDB HA with ISCSI
切换到highgo用户重新启动停止了服务(之前安装完数据库停掉服务后有新修改postgresql.conf和pg_hba.conf文件,设置了远程访问),再重启corosync服务成功

查看集群状态
HGDB HA with ISCSI

8、验证

(1)正常状态下

在node1用虚拟ip可访问数据库
HGDB HA with ISCSI

查看共享盘挂载情况
HGDB HA with ISCSI

(2)模拟node1崩溃

此时在node2能用虚拟ip访问数据库
HGDB HA with ISCSI

集群状态
HGDB HA with ISCSI

共享盘挂载
HGDB HA with ISCSI

注意:
在配置前最好设置NetworkManager服务stop,更改system eth0为eth0因为配置vip时为eth0,怕会找不到设备,然后重启network服务