企业级负载均衡集群——RHCS高可用集群添加共享存储(Mysql数据库与共享磁盘的单点写入、多点写入)解决集群当中数据不同步问题

在实际的企业当中,各种服务有对应集群,存储有存储的集群(数据有数据的集群),这里我们使用数据库。共享服务+共享存储=一个强壮的集群管理。 迁移服务集群的时候,数据的同步是非常重要的。

实验背景

实验是在做完RHCS高可用HA集群的基础上做的 高可用RHCS集群的搭建

主机名 IP 服务
server1 172.25.7.101 ricci,luci, iscsi,mysql-server
server2 172.25.7.102 ricci,iscsi,mysql-server
server3 172.25.7.103 scsi
foundation7 172.25.7.250 fence

一、RHCS高可用集群下iscsi共享存储与mysql数据库的部署

1、确定server1和server2的httpd服务是关闭的(可在各结点上手动关闭,也可在浏览器中关闭 )

  • 在浏览器中关闭时勾选apache,点击disabled即可关闭
    在这里插入图片描述

也可以使用命令手动关闭

clusvcadm -d apache (-d表示disabled)
clusvcadm -e apache (-e表示enable) 
clusvcadm -r 重新定位 (加入现在服务在server1上,执行clusvcadm -r apache之后服务就会被定位到srever2上 )

配置共享磁盘设备

2、在server3上 ,搭建共享磁盘设备的服务端

1)打开虚拟机管理器 virt-manager,给server3添加一个硬盘
2)cat /proc/partitions 可以发现多了一个/dev/vda
在这里插入图片描述
3) 在server3上安装服务: yum install -y scsi-*

在这里插入图片描述
4)编辑scsi的配置文件 : vim /etc/tgt/targets.conf

38 <target iqn.2019-02.com.example:server.target1> 
39     backing-store /dev/vdb 
		##此处的设备名是通过fdisk -l看到的,每人可能都不一样
40 </target>

在这里插入图片描述

在这里插入图片描述
重启服务 :/etc/init.d/tgtd start
tgt-admin -s 查看tgt的信息

在这里插入图片描述
在这里插入图片描述

5)ps ax

  • ps ax 发现应该有两个进程,查看进程,只有两个为正确。 如果大于2个就是错误的,删除重做 ,或者kill掉
  • tgt-admin 0s(错误的),tgt-admin -s查看共享出来磁盘

在这里插入图片描述
在这里插入图片描述

3、 在客户端server1和server2上, 配置共享磁盘的客户端

1) 在客户端server1和server2上,上安装共享磁盘的客户端:yum install yum install -y iscsi-*

2)在客户端server1上,发现共享存储设备

  iscsiadm -m discovery -t st -p 172.25.7.103  ##查看服务器的共享设备
  iscsiadm -m node -l		##挂载登录存储

在这里插入图片描述

3)fdisk -l 查看是否共享成功

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4)fdisk -cu /dev/sdb 分区,只分一个
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5)在server1上,开始创建逻辑卷 pvcreate /dev/sdb1 ,server2上,pvs

在这里插入图片描述
6) 在server1上,vgcreate ran /dev/sdb1 ,server2上,vgs

在这里插入图片描述
在这里插入图片描述

7) 在server1上,lvcreate -L 4G -n rr ran ,server2上,lvs
在这里插入图片描述

8) 格式化 :mkfs.ext4 /dev/ran/rr,格式化后才可以挂载

在这里插入图片描述
在这里插入图片描述

共享磁盘与httpd

4、httpd服务与共享存储
1)挂载/dev/ran/rr到/mnt下 mount /dev/ran/rr /mnt
2)写一个httpd服务的默认发布页面index.html vim /mnt/index.html
3)解挂 umount /mnt
4)重新挂载到httpd服务的默认发布目录/var/www/html里 mount /dev/ran/rr /var/www/html

在这里插入图片描述
在这里插入图片描述

此时,在server2中查看挂载 df

在这里插入图片描述
5)在web页面添加资源(按照顺序添加资源)。添加资源前,要先解挂。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
提交。

6)此时,在真机可以访问到共享磁盘内的默认发布页面的内容。

在这里插入图片描述
将服务从server2迁移到server1:clusvcadm -r apache -m server1

在这里插入图片描述
服务在谁,谁挂载。
在这里插入图片描述

共享磁盘与Mysql

7、以mysql为例,使用共享磁盘
1)在 server1和server2 安装mysql服务端:yum install -y mysql-server

在这里插入图片描述在这里插入图片描述

2)创建逻辑卷/dev/ran/mysql: lvcreate -L 4G -n mysql ran
并格式化 mkfs.ext4 /dev/ran/mysql

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3)挂载逻辑卷到mysql的数据存放目录:mount /dev/ran/mysql /var/lib/mysql/
4)ll -d /var/lib/mysql/ 查看发现只允许root用户可写
5)chown mysql.mysql /var/lib/mysql/ 更改用户和用户组
在这里插入图片描述
在这里插入图片描述
6)ll -d /var/lib/mysql/
7)/etc/init.d/mysqld start 开启mysql服务
在这里插入图片描述
8)ll /var/lib/mysql/ 发现有了程序访问的接口

在这里插入图片描述

  1. 卸载设备:umount /var/lib/mysql/ ,发现不能卸载。
  • 因为服务开启时,mysql.sock套接字就会开启,即设备就在使用中,所以不能卸载,当关闭服务时,就可以成功卸载了

10)关闭服务 : systemctl stop mysqld
11)成功卸载 : umount /var/lib/mysql/
在这里插入图片描述

  1. 在web界面配置mysql的资源

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

13) clustat 发现Mysql服务在server2上,服务在那运行,共享设备就挂载在那
在这里插入图片描述
在这里插入图片描述

14)手动迁移服务到server1上,clusvcadm -r mysql -m server1在这里插入图片描述
在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

实现同步存储(多点写入)

RHCS通过 GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中,从而消除了同步数据的麻烦。GFS通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
问题模拟:

 
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.70.3
[root@server1 ~]# iscsiadm -m node -l
[root@server1 ~]# mkfs.ext4 /dev/sdb1
[root@server1 ~]# systemctl start mysqld
[root@server1 ~]# mount /dev/sdb1 /var/lib/mysql/
[root@server1 ~]# cd /var/lib/mysql/
[root@server1 mysql]# cp /etc/passwd /var/lib/mysql/ 
		#复制一个文件到mysql的数据存放目录
[root@server1 mysql]# ll
		#可以看到passwd文件
[root@server1 ~]# systemctl stop mysqld		

在server2上:

[root@server2 ~]# iscsiadm -m discovery -t st -p 172.25.78.3
[root@server2 ~]# iscsiadm -m node -l
[root@server2 ~]# mount /dev/sdb1 /var/lib/mysql/
[root@server2 ~]# systemctl start mysqld
[root@server2 ~]# ll /var/lib/mysql/     
		# 查看不到server1在设备上建立的文件passwd
[root@server2 ~]# systemctl stop mysqld

此时,我们发现iscis 只支持单点共享,所以我们用gfs来解决这个问题。

同步存储的前提是有gfs集群文件系统。现在我们来创建gfs集群文件系统

1)确认clvmd服务状态为 开启。 **==/etc/init.d/clvmd status

  • gfs是基于clvmd这个服务的,必须保证这个服务开启。
    在这里插入图片描述

在这里插入图片描述

2)在server1上, 创建逻辑卷/dev/ran/rr2: lvcreate -L 5G -n rr2 ran
在这里插入图片描述

在这里插入图片描述

3)开始格式化 mkfs.gfs2 -p lock_dlm -j 2 -t ran_ha:mygfs2 /dev/ran/rr2

  • 如果没有mkfs.gfs2这个命令,就要手动下载 :yum install -y gfs2-utils-3.0.12.1-59.el6.x86_64
  • -p 指定要使用的锁定协议名称,集群的锁定协议为 lock_dlm
  • -j 指定由 mkfs.gfs2 命令生成的日志数目,我们有两台服务,所以生成两份日志即可
  • -t 指集群名字

在这里插入图片描述

此时,在server2中挂载,创建passwd文件,在sdrver1中可以删除
在这里插入图片描述
4)在server1和server2上,解挂且设置永久挂载。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时就实现了同步。

发布了102 篇原创文章 · 获赞 21 · 访问量 5336

猜你喜欢

转载自blog.csdn.net/ranrancc_/article/details/102617363