0

0

HGDB HA with ISCSI

php中文网

php中文网

发布时间:2016-06-07 14:49:51

|

1757人浏览过

|

来源于php中文网

原创

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为例)

这里写图片描述

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

(1)修改/etc/hosts
这里写图片描述

(2)root用户执行
这里写图片描述

(3)highgo用户执行
这里写图片描述

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

启动服务时出现失败的情况,正常
这里写图片描述

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

node1安装过程:

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

mkdir /install/hgdb -p

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

这里写图片描述

这里写图片描述

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

这里写图片描述

(4)格式化磁盘并挂载

这里写图片描述

注意:若挂载时出现以下错误,即为没有格式化磁盘所致
这里写图片描述

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

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

注意:数据目录的选择,即将data目录置于共享磁盘中
这里写图片描述

(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)发现服务器端有磁盘共享,并登录

这里写图片描述

Symanto Text Insights
Symanto Text Insights

基于心理语言学分析的数据分析和用户洞察

下载

这里写图片描述

(3)挂载磁盘
这里写图片描述

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

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

注意:不作为系统服务安装(这样安装时不会有data目录选项出现)
这里写图片描述

(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

这里写图片描述

pacemaker服务启动脚本:

cd service.d
vi pcmd

这里写图片描述

corosync、pacemaker服务启停:

chkconfig corosync on
service corosync start

chkcofig pacemaker off
servicepacemaker stop

7、集群资源配置

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

查看集群状态:
这里写图片描述

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

任何情况集群资源继续运行
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

查看集群状态
这里写图片描述

配置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

查看集群状态
这里写图片描述

配置数据库服务
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

这里写图片描述

配置三个资源在一个组
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

这里写图片描述
这里写图片描述

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

查看集群状态
这里写图片描述

8、验证

(1)正常状态下

在node1用虚拟ip可访问数据库
这里写图片描述

查看共享盘挂载情况
这里写图片描述

(2)模拟node1崩溃

此时在node2能用虚拟ip访问数据库
这里写图片描述

集群状态
这里写图片描述

共享盘挂载
这里写图片描述

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

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 3.8万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 1.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号