RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)

1.什么是集群?

集群是指一组相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器
这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理

2.什么是pacemaker?

Pacemaker是一个集群资源管理器,它利用集群基础构件(OpenAIS、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性,它可以做几乎任何规模的集群,并带有一个强大的依赖模式,让管理员能够准确地表达群集资源之间的关系(包括顺序和位置)。

3.什么是corosync?

Corosync是集群管理套件的一部分,通常会与其他资源管理器一起组合使用它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。它是一个新兴的软件,2008年推出,但其实它并不是一个真正意义上的新软件,在2002年的时候有一个项目Openais
, 它由于过大,分裂为两个子项目,其中可以实现HA心跳信息传输的功能就是Corosync ,它的代码60%左右来源于Openais.
Corosync可以提供一个完整的HA功能,但是要实现更多,更复杂的功能,那就需要使用Openais了。Corosync是未来的发展方向。在以后的新项目里,一般采用Corosync,而hb_gui可以提供很好的HA管理功能,可以实现图形化的管理。另外相关的图形化有RHCS的套件luci+ricci,当然还有基于java开发的LCMC集群管理工具。

4.集群的配置和启动

实验环境:
server1 172.25.254.1 master
server2 172.25.254.2 chunk
server3 172.25.254.3 chunk
server4 172.25.254.4 作master的备用节点
实验:
(1)这里用server1和server4做高可用节点,server2和server3做数据存储,server1上已经配置好MFS,将server1上的moosefs-master安装包发给server4
在这里插入图片描述
在这里插入图片描述
在server4上安装mfs master并配置启动脚本,加上-a参数避免server1异常退出后服务无法启动
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第1张图片
(2)在四台主机上配置yum源(高可用数据库和存储数据库),里面包含pacemaker和corosync的包
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第2张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第3张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第4张图片
将server1上配置好的yum源复制到其它三台主机上
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第5张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第6张图片
开启server4删的moosefs-master服务
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第7张图片
(3)在server1和server4上安装pacemaker、corosync和pcs
pacemaker 主软件
corosync 同步复制和心跳检测
pcs 命令行
在这里插入图片描述
(4)在server1 和 4 主机之间做免密

ssh-keygen -f /root/.ssh/id_rsa -P ""

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第8张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第9张图片
(5)在server1和server4上开启pcsd服务,为用户hacluster设置密码,hacluster是用来启动主备切换的
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第10张图片
做主机认证:(当前的集群主机是server1和server4)
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第11张图片
(6)配置集群,开启集群

pcs cluster setup  --name mycluster server1 server4	##配置一个集群(mycluster),会重新做认证,重启pcsd服务
pcs cluster start --all       ##在所有节点上开启集群,开启集群后,会自动帮你开启两个服务pacemaker、Corosync

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第12张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第13张图片
(7)设置集群开机自启
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第14张图片

corosync-cfgtool -s	##查看当前节点上的状态
pcs status corosync	##查看集群状态

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第15张图片
(8)检查并解决报错
WANRINGS处:fence设备是用来配置当前系统出现不可预期的问题后(系统突然卡死、内核崩溃),强制重启主机,有利于资源释放,不至于让它一直占着资源

pcs property set stonith-enable=false	##关闭stonith-enable(没有这个设备还要把它设置为true,所以关闭它)
crm_verify -L -V	

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第16张图片

pcs property set no-quorum-policy=ignore	##此节点投票不生效时就忽略掉它
pcs status	##查看状态,没有WARNING警告

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第17张图片

5.配置集群资源—vip

vip:集群的统一入口,让用户从统一的入口进来

pcs resource list              	## 列出资源
pcs resource standards 			##列出资源类型

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第18张图片
添加vip ,ocf类型

pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.254.100 cidr_netmask=32 op monitor interval=30s
pcs resource show  ##列出资源
ip a ##vip已经添加上了

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第19张图片

crm_mon	##控制台上查看,server4上同样也可以查看到

在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第20张图片
测试高可用:ip能否切换
停止集群中的server1节点,vip漂移到server4
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第21张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第22张图片
重新开启server1,vip不会切换回去
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第23张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第24张图片
注意:
来回切换回增加你的服务器的风险,减少来回切换的次数回降低服务器的风险

6.配置集群资源—Apache

在server1和server4上安装apache,并配置默认发布页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建apache资源

pcs resource create apache systemd:httpd op monitor interval=1min ## 控制启动方式为systemd的方式
pcs resource show
curl localhost	##httpd开启

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第25张图片
查看日志,可以看到是集群控制的httpd
在这里插入图片描述
在这里插入图片描述
开启之后,服务已经配置好了,但是作为客户端可以ping不能访问,连接被拒绝
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第26张图片
server1和server4是集群,vip在server4上,Apache在server1上
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第27张图片
入口对应的后端服务不在一起,需要把这两个服务都放在一起,把它们放到一个组里去
创建资源组

pcs resource group add apache_group vip apache

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第28张图片
这时就可以访问了
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第29张图片

7.配置集群资源—MFS

(1)在server1和server4上做解析
172.25.254.100 mfsmaster
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第30张图片
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第31张图片
(2)在server3上添加一块磁盘,用作共享(/dev/vdb)
server1和server4为客户端,安装mfs服务,共享server3的磁盘
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第32张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第33张图片
在server3上

[root@server3 ~]# yum install targetcli.noarch -y
[root@server3 ~]# targetcli 
/> backstores/block create my_disk1 /dev/vdb
Created block storage object my_disk1 using /dev/vdb.
/> iscsi/ create iqn.2020-05.com.example:server3              ## 创建iqn
Created target iqn.2020-05.com.example:server3.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> iscsi/iqn.2020-05.com.example:server3/tpg1/luns create /backstores/block/my_disk1 
Created LUN 0.
/> iscsi/iqn.2020-05.com.example:server3/tpg1/acls create iqn.2020-05.com.example:client
Created Node ACL for iqn.2020-05.com.example:client         #允许这个名称的访问
Created mapped LUN 0.

在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第34张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第35张图片
查看端口,可以看到3260端口已经打开
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第36张图片
(3)server3上创建一块共享磁盘后,这时server1和server4作客户端去使用它
在server1中:

yum install iscsi-* -y
vim /etc/iscsi/initiatorname.iscsi     
InitiatorName=iqn.2020-05.com.example:client       # 改为上面设定的iqn
systemctl restart iscsid

在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第37张图片

iscsiadm -m discovery -t st -p 192.168.43.73       发现磁盘
iscsiadm -m node -l	##调用磁盘

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第38张图片

fdisk /dev/sda	##磁盘分区
mkfs.xfs /dev/sda1	##格式化

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第39张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第40张图片

[root@server1 ~]# mount /dev/sda1 /mnt/        ##挂载设备
[root@server1 ~]# cp -p /var/lib/mfs/ * /mnt/  ##存入数据
[root@server1 ~]# chown mfs.mfs /mnt/          ##更改权限属于mfs用户
[root@server1 ~]# ls /mnt
[root@server1 ~]# umount /mnt/

在这里插入图片描述

[root@server1 ~]# mount /dev/sda1 /var/lib/mfs/          ##挂载到mfs数据目录下
[root@server1 ~]# systemctl start moosefs-master         ##mfs正常开启,说明配置正确   
[root@server1 ~]# systemctl stop moosefs-master.service
[root@server1 ~]# umount /var/lib/mfs                    ##卸载

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第41张图片
在server4中作同样的操作
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第42张图片
(4)创建资源

[root@server1 ~]# pcs resource create mfsdata ocf:heartbeat:Filesystem device=/dev/sda1 directory=/var/lib/mfs fstype=xfs op monitor interval=30s
## 资源名称mfsdata, 文件系统类型 ,设备是/dev/sdb1,挂载点为 /var/lib/mfs
[root@server1 ~]# pcs resource show
[root@server1 ~]# pcs resource create mfsd systemd:moosefs-master op monitor interval=1min	##设置自启动
[root@server1 ~]# pcs resource show
[root@server1 ~]# systemctl status moosefs-master.service 	##服务自动开启

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第43张图片
自动挂载上了
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第44张图片
(5)创建资源组,把vip、mfsdata 和mfsd 放到一个资源组中

pcs resource delete apache	##删除apache资源
pcs resource group add mfsgroup vip mfsdata mfsd      ##创建资源组
pcs resource show					##三个资源都在server4上

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第45张图片
server4中查看
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第46张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第47张图片
测试集群的高可用
关闭server4,并在server1中监控
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第48张图片
这时候发现切换为server1,server4已经下线
在server1上查看服务、挂载和vip
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第49张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第50张图片
查看server4
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第51张图片

8.集群中添加fence

fence工作原理
当集群中主机的内核崩溃,fence就会主动重启它,释放资源,防止集群中的资源争抢

(1)在server1和server4上安装fence,创建存放key的目录/etc/cluster
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)物理机上安装fence,物理机是给它们拔插销的角色,哪一台出现问题,通过物理机开启的这个端口,让它重启
在这里插入图片描述

[root@foundation65 ~]# fence_virtd -c
Interface [virbr0]: br0           ## 其它设定都选用默认,只更改接口为br0

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第52张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第53张图片

mkdir /etc/cluster/	##建立目录
cd /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1	##用随机数生成key文件

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第54张图片
将key文件传给server1和server4中存放key的目录下
开启服务
查看物理机的1229端口已经开启
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第55张图片
(3)在server1上

pcs stonith create vmfence fence_xvm pcmk_host_map="server1:node1;server4:node4" op monitor interval=1min	  # 主机映射方式,主机名:虚拟机名
[root@server1 ~]# pcs property set stonith-enabled=true	##开启stonith设备
[root@server1 ~]# crm_verify -L -V	##检测

在这里插入图片描述
控制台查看,fence设备资源在server4上
在这里插入图片描述
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第56张图片
测试:
现在down掉集群中的server1
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第57张图片
所有资源都在server4上
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第58张图片
重新开启server1
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第59张图片
fence切换到了server1上,说明fence总是不跟资源在同一台主机上
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第60张图片
测试:
使server4内核崩溃,fence是否可以使server4重启
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第61张图片
server4已经是online状态,说明已经重启了
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第62张图片

9.配置集群资源—mysql

(1)删除集群上的vip、mfsdata和mfsd资源
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第63张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第64张图片
(2)在server1和server4安装maraidb服务
在这里插入图片描述
在这里插入图片描述
(3)配置数据库并启动

[root@server1 ~]# mount /dev/sda1 /var/lib/mysql    ##挂载到mysql数据目录下,数据其实存放在共享设备上,server3的iscsi上
[root@server1 ~]# chown mysql.mysql /var/lib/mysql	##更改目录的所有人和所有组
[root@server1 ~]# systemctl start mariadb  ##不能正常开启
[root@server1 ~]# vim /var/log/messages	##查看日志,告诉我们mysql数据目录下不为空,需要让它为空
[root@server1 ~]# rm -rf /var/lib/mysql/.bgwriter.lock
[root@server1 ~]# systemctl start mariadb  ##可以正常开启
[root@server1 ~]# ls

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第65张图片
在这里插入图片描述
重新打开一个server1的shell窗口

[root@server1 ~]# systemctl stop mariadb	##关闭mariadb服务
[root@server1 ~]# umount /var/lib/mysql     ##卸载

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第66张图片
(4)创建一个vip资源
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第67张图片
(5)创建数据库资源,数据库启动方式资源

pcs resource create mysql_data ocf:heartbeat:Filesystem device=/dev/sda1 directory=/var/lib/mysql fstype=xfs op monitor interval=30s 
pcs resource show
pcs resource create mariadb systemd:mariadb op monitor interval=1min ## 控制启动方式为systemd的方式
pcs resource show

RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第68张图片
(6)将三个资源放到同一个资源组中,资源都在server1上
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第69张图片
测试:
使server1内核崩溃,资源都到server4上,可以发现数据库管理由server4接管
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第70张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第71张图片
RHEL7集群部署及资源配置(Vip、Apache、MFS、Fence、Mysql)_第72张图片

你可能感兴趣的:(linux,负载均衡)