CentOS7/RHEL7 pacemaker+corosync高可用集群搭建
TOC \o
"1-3" \h \z \u 一、集群信息... PAGEREF _Toc502099174 \h 4
08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003500300032003000390039003100370034000000
CentOS7/RHEL7高可用集群搭建
一、集群信息
使用光盘镜像安装好两台RHEL7.4系统的虚拟机,主机信息如下:
|
主机名 |
node1 |
node2 |
|
IP地址 |
192.168.110.168 |
192.168.110.169 |
|
系统版本 |
Red Hat Enterprise Linux Server release 7.4 |
|
|
挂载镜像源 |
rhel-server-7.4-x86_64-dvd.iso |
|
|
资源组 (ftp-group) |
FTP-VIP:192.168.110.10 FTP-LVM:vg_ftp FTP-FS:/dev/vg_ftp/lv_ftp FTP:vsftpd |
|
|
资源组 (tomcat-group) |
TOMCAT-VIP:192.168.110.20 TOMCAT-LVM:vg_tomcat TOMCAT-FS:/dev/vg_tomcat/lv_tomcat TOMCAT:tomcat |
|
二、集群搭建
1、制作软件源
● 挂载光盘

● 导入key文件,列出可用源

2、主机基础配置
● 设置主机名

● 关闭防火墙

● 设置selinux为disabled

● 配置host文件

● 节点间配置免密互信


● 同步host文件

● 编辑/etc/chronyd.conf文件,增加时间服务器一行

● 配置时间服务器,使集群节点时间同步

● 设置时间同步,timedatectl输出结果中NTP enabled为yes,已开始同步

● 查看chronyd状态,设置为开机启动

3、集群基础环境准备
● 软件安装


● 修改集群管理账号密码

● 启用并设置集群软件开机自启

● 集群节点认证

● 创建集群

注:
1、命令内容为创建集群的同时在各节点上启动集群并设置为启用状态
● 查看当前集群状态

注:
1、 注意命令输出内容,在尚未配置stonith时,提示需将stonith-enabled属性更改为false(不启用)

2、Online:显示当前在线节点
3、Full list of resources:显示集群的资源列表
4、集群资源准备
● 文件系统创建

创建并格式化/dev/mapper/vg_tomcat-lv_tomcat,文件系统格式为xfs
创建并格式化/dev/mapper/vg_ftp-lv_ftp,文件系统格式为xfs
注:
使用共享存储的集群,在节点一上创建好vg、lv之后,节点二上执行命令pvscan --cache /dev/sdb可以将vg,lv信息同步至节点二上
● 创建文件系统挂载点

● 安装vsftp

● 新增用户
新增用户mcbadm,确保node2上mcbadm用户的UID与node1一致,将用户加入haclient集群管理组

● 安装tomcat相关软件包
将lv_tomcat挂在至/home/mcbadm后,将tomcat软件包解压至共享盘上

● 权限更改
更改/home/mcbadm下文件属组及所属者为mcbadm

● 创建tomcat.service文件
编辑/usr/lib/systemd/system/tomcat.service文件,将tomcat服务移交systemd管理

将tomca.service文件放在/usr/lib/systemd/system/目录下,执行systemctl daemon-reload刷新
● 开放halvm功能
将集群的共享存储交由集群管理,执行以下命令,开放halvm功能

● 备份lvm.conf文件

● 编辑lvm.conf文件

查看系统现有vg,放开volume_list的注释,将除过集群共享存储的vg加入中括号内
注意:主机后续添加新的非集群管理vg,必须将vg名加入volume_list内
● 生成initramfs文件
备份/boot/initramfs-$(uname –r).img文件

执行以下命令,重新生成initramfs-$(uname –r).img文件

重启主机
5、资源配置
● 创建资源组ftp-group
FTP-VIP:192.168.110.10/24
FTP-LVM:vg_ftp
FTP-FS:/dev/vg_ftp/lv_ftp,/HOME,xfs
FTP:vsftpd
FTP:vsftpd

● 创建资源组tomcat-group
TOMCAT-VIP:192.168.110.20/24
TOMCAT-LVM:vg_tomcat
TOMCAT-FS:/dev/vg_tomcat/lv_tomcat,/home/mcbadm,xfs
TOMCAT:tomcat

● 检查集群状态

资源组创建完成,集群资源已在各节点上运行
注:
1、集群资源创建,资源创建需要一次完成,所有资源创建完成后加入资源组中,默认情况下,资源组内资源启停顺序为:按照从上往下的顺序依次启动;按照从下往上的顺序依次停止。
2、因已配置vg_ftp和vg_tomcat仅由集群激活启用,当FTP-FS和TOMCAT-FS资源在节点一/二配置完成但尚未加入资源组内时,pcs status会有报错信息提示,提示在节点二/一上找不到相应的设备文件,此为正常现象,将FTP-FS和TOMCAT-FS按顺序加入集群即可。
6、集群资源约束配置
● 检查集群状态
查看当前constraint设置

● 配置资源启停顺序

配置资源组内各资源启停顺序:
ftp-group内启停顺序:FTP-VIP--> FTP-LVM-->FTP-FS-->FTP
tomcat-group内启停顺序:TOMCAT-VIP-->TOMCAT-LVM-->TOMCAT-FS-->TOMCAT
● 配置资源组内各资源依附关系

● 配置资源组在各节点的粘性

ftp-group优先在node1上运行
tomcat-group优先在node2上运行
● 查看constraint设置结果
列出集群资源约束配置内容

7、stonith配置
注:
1、 virtualbox虚拟机无法配置,假设可用
2、 不同类型的服务器所需fence端口不同,惠普硬件服务器需开通fence设备的623/udp端口,vcenter主机需开启80/tcp和443/tcp端口,其余类型请自行查证
● fence资源信息
|
主机名 |
node1 |
node2 |
|
Fence设备地址 |
192.168.110.101 |
192.168.110.102 |
|
Fence管理账号 |
Administrator |
|
|
Fence账户密码 |
pass1234 |
|
● Fence查看节点状态
通过fence设备查看主机状态,确认fence设备可对主机进行管理
# fence_ipmilan –P –A password –a 192.168.110.101 –l Administrator –p pass1234 –o status
# Status on
# fence_ipmilan –P –A password –a 192.168.110.102 –l Administrator –p pass1234 –o status
# Status on
● 增加fence设备
# pcs stonith create ipmi-fence-node1 fence_ipmilan parms lanplus=’true’ pcmk_host_list=’node1’ pcmk_host_check=’static-list’ action=’reboot’ ipaddr=’192.168.110.101’ login=’Administrator’ passwd=’pass1234’ op monitor interval=30s
# pcs stonith create ipmi-fence-node2 fence_ipmilan parms lanplus=’true’ pcmk_host_list=’node2’ pcmk_host_check=’static-list’ action=’reboot’ ipaddr=’192.168.110.102’ login=’Administrator’ passwd=’pass1234’ op monitor interval=30s
8、集群功能验证
● 切换前检查
查看当前集群状态,集群内各资源已正常运行使用(尚缺少fence设备)

● 禁用节点验证
将node2 设置为standby(不使用),资源组tomcat-group正常切换至node1上运行
# pcs cluster standy node2
注:
1、node2 standby状态下,资源组tomcat-group在node1上正常运行才能证明资源切换正常

unstandy node2,资源组tomcat-group切换回node2运行
# pcs cluster unstandy node2
注:
1、node2 unstandby后,资源组tomcat-group能够自动切回node2上正常运行才能证明资源切换正常

● 重启节点验证
node1 重启,资源组ftp-group切换至node2运行

node1 重启完成,资源组ftp-group切换回node1运行

三、集群常用命令及作用
1、验证群集安装
[shell]# pacemakerd -F ## 查看pacemaker组件
[shell]# corosync-cfgtool -s ## 查看corosync序号
[shell]# corosync-cmapctl | grep members ## corosync 2.3.x
[shell]# corosync-objctl | grep members ## corosync 1.4.x
2、查看群集资源
[shell]# pcs resource standards ## 查看支持资源类型
[shell]# pcs resource providers ## 查看资源提供商
[shell]# pcs resource agents ## 查看所有资源代理
[shell]# pcs resource list ## 查看支持资源列表
[shell]# pcs stonith list ## 查看支持Fence列表
[shell]# pcs property list --all ## 显示群集默认变量参数
[shell]# crm_simulate -sL ## 检验资源 score 值
3、使用群集脚本
[shell]# pcs cluster cib ra_cfg ## 将群集资源配置信息保存在指定文件
[shell]# pcs -f ra_cfg resource create ## 创建群集资源并保存在指定文件中(而非保存在运行配置)
[shell]# pcs -f ra_cfg resource show ## 显示指定文件的配置信息,检查无误后
[shell]# pcs cluster cib-push ra_cfg ## 将指定配置文件加载到运行配置中
4、STONITH 设备操作
[shell]# stonith_admin -I ## 查询fence设备
[shell]# stonith_admin -M -a agent_name ## 查询fence设备的元数据, stonith_admin -M -a fence_vmware_soap
[shell]# stonith_admin --reboot nodename ## 测试 STONITH 设备
5、查看群集配置
[shell]# crm_verify -L -V ## 检查配置有无错误
[shell]# pcs property ## 查看群集属性
[shell]# pcs stonith ## 查看stonith
[shell]# pcs constraint ## 查看资源约束
[shell]# pcs config ## 查看群集资源配置
[shell]# pcs cluster cib ## 以XML格式显示群集配置
6、管理群集
[shell]# pcs status ## 查看群集状态
[shell]# pcs status cluster
[shell]# pcs status corosync
[shell]# pcs cluster stop [node11] ## 停止群集
[shell]# pcs cluster start --all ## 启动群集
[shell]# pcs cluster standby node11 ## 将节点置为后备standby状态 pcs cluster unstandby node11
[shell]# pcs cluster destroy [--all] ## 删除群集,[--all]同时恢复corosync.conf文件
[shell]# pcs resource cleanup ClusterIP ## 清除指定资源的状态与错误计数
[shell]# pcs stonith cleanup vmware-fencing ## 清除Fence资源的状态与错误计数
CentOS7/RHEL7 pacemaker+corosync高可用集群搭建的更多相关文章
- CentOS7 haproxy+keepalived实现高可用集群搭建
一.搭建环境 CentOS7 64位 Keepalived 1.3.5 Haproxy 1.5.18 后端负载主机:192.168.166.21 192.168.166.22 两台节点上安装rabbi ...
- .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7.2)系列一:k8s高可用集群搭建总结以及部署API到k8s
前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知识建议参考博客园 ...
- Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建
目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...
- 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s
实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...
- hadoop高可用集群搭建小结
hadoop高可用集群搭建小结1.Zookeeper集群搭建2.格式化Zookeeper集群 (注:在Zookeeper集群建立hadoop-ha,amenode的元数据)3.开启Journalmno ...
- Spark高可用集群搭建
Spark高可用集群搭建 node1 node2 node3 1.node1修改spark-env.sh,注释掉hadoop(就不用开启Hadoop集群了),添加如下语句 export ...
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...
- MongoDB高可用集群搭建(主从、分片、路由、安全验证)
目录 一.环境准备 1.部署图 2.模块介绍 3.服务器准备 二.环境变量 1.准备三台集群 2.安装解压 3.配置环境变量 三.集群搭建 1.新建配置目录 2.修改配置文件 3.分发其他节点 4.批 ...
- RabbitMQ高级指南:从配置、使用到高可用集群搭建
本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...
随机推荐
- Css设置最优先
input{ width: 220px !important; } css中 加上 !important 用一些前端框架,源文件修改不便时 可以这样用
- Java设计给小学生的自动出题系统
系统要求: 1.自动出题,涉及加减乘除四则运算 2.运算为两位数之间 3.减法不能出现负数 4.乘法结果不超过100 5.除法必须整除 6.用户决定出题量 7.用户决定几道题一换行 8.题目不允许重复 ...
- mongodb数据库怎么迁移
迁移方法一 使用mongo自带命令来迁移数据,思路是先导出集合数据再导入到数据库中 导出命令:mongoexport 语法:mongoexport -d dbname -c collectionnam ...
- webpack4.x + vue2.x 构建前端工程化(1)
本篇文篇纯属个人笔记,实现工程化打包(用打包后的文件可以正常渲染页面),后续继续更新配置开发环境与生产环境,如果有不合理的地方还望各位指点! 不用脚手架,直接用vue和webpack搭建前端工程化项目 ...
- C# System.Reflection (反射)
在使用.NET创建的程序或组件时,元数据(metadata)和代码(code)都存储于“自成一体”的单元中,这个单元称为装配件.我们可以在程序运行期间访问这些信息. 在System.Reflectio ...
- ftp安装和虚拟用户创建(终于搞清楚了)
安装 一.安装 sudo apt-get install vsftpd 二.查看安装结果 安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口 ps -eaf|grep vsftpd ...
- ORA-00979: 不是 GROUP BY 表达式
在oracle数据库中,sql语句中group by子句报错,原因是select 存在列字段,而group by中不存在.
- java高并发核心要点|系列2|锁的底层实现原理
上篇文章,我们主要讲了解决多线程之间共享数据的核心问题和解决方案,也讲了锁的简单分类. 那么,这把锁,我们应该怎么去实现呢?如果你是java语言设计者,你又会怎么去设计这个线程锁呢? 直觉告诉我们,我 ...
- 一键部署lnmp脚本
先下载好nginx安装包,解包之后可以执行下面的脚本,一键部署 cd nginx-1.12.2 useradd -s /sbin/nologin nginx./configuremakemake in ...
- jq实现表格多行列复制
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>&l ...