RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

一.RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

1.配置服务端(server3是服务器)
1.首先关闭apache服务(也可以直接在网页中将其disabled)

[root@server1 ~]# clusvcadm -d apache
[root@server2 ~]# clusvcadm -d apache

在这里插入图片描述
在这里插入图片描述
注意:
使用以下命令是开启apache服务

[root@server1 ~]# clusvcadm -e apache(在server1下开启时,会自动在server1下开启服务)

2.在server3中添加一个硬盘(大小为8G)
在这里插入图片描述
注意:
硬盘的名称必须是以v打头,且不能和客户端在“/”目录下挂载的设备名称相同

3.查看硬盘是否添加成功

[root@server3 ~]# fdisk -l

当图中出现的信息有Disk /dev/vdb: 8589 MB, 8589934592 bytes
说明硬盘添加成功
在这里插入图片描述
4.服务端安装scsi并编辑磁盘共享配置文件

[root@server3 ~]# yum install scsi-* -y
[root@server3 ~]# vim /etc/tgt/targets.conf

在这里插入图片描述
在这里插入图片描述
配置文件中增加的内容如下:

 38 <target iqn.2019-04.com.example:server.target1>
 39     backing-store /dev/vdb
 40 </target>

在这里插入图片描述
<5>启动服务

[root@server3 ~]# /etc/init.d/tgtd start

在这里插入图片描述
<6>查看进程,tgtd只能有两个进程,否则有问题

[root@server3 ~]# ps ax

在这里插入图片描述
在这里插入图片描述
<7>查看共享目录

[root@server3 ~]# tgt-admin -s

在这里插入图片描述
2.配置客户端
在server1安装并获取共享设备

[root@server1 ~]# yum install iscsi-* -y
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.66.3
[root@server1 ~]# iscsiadm -m node -l
[root@server1 ~]# fdisk -l

在这里插入图片描述
在这里插入图片描述
在server2安装并获取共享设备

[root@server2 ~]# yum install iscsi-* -y
[root@server2 ~]# iscsiadm -m discovery -t st -p 172.25.66.3
[root@server2 ~]# iscsiadm -m node -l
[root@server2 ~]# fdisk -l

在这里插入图片描述
在这里插入图片描述
3.配置mysql服务
1.在server1和server2中下载mysql

[root@server1 ~]# yum install mysql-server -y
[root@server2 ~]# yum install mysql-server -y

在这里插入图片描述
在这里插入图片描述
2.尝试将共享设备挂载至mysql的配置目录下(无法成功挂载,故对其进行格式化)

[root@server1 ~]# mount /dev/sdb /var/lib/mysql	#发现无法成功挂载
[root@server1 ~]# mkfs.ext4 /dev/sdb	#将其共享设备格式化成ext4
[root@server1 ~]# mount /dev/sdb /var/lib/mysql	#再次挂载会发现挂载成功
[root@server1 ~]# df

在这里插入图片描述
注意:
格式化时不需要输入任何内容

3.查看mysql配置文件的权限,会发现在挂载后,配置文件的所属用户和所属组都是root,而将其卸载后,再次查看时发现其所属用户和所属组都是mysql,故更改其权限后再次查看权限(必须在挂载后再更改其权限)

[root@server1 ~]# ll -d /var/lib/mysql
[root@server1 ~]# umount /var/lib/mysql/
[root@server1 ~]# ll -d /var/lib/mysql/
[root@server1 ~]# mount /dev/sdb /var/lib/mysql/
[root@server1 ~]# chown mysql.mysql /var/lib/mysql
[root@server1 ~]# ll -d /var/lib/mysql/

在这里插入图片描述
4.开启mysqld服务生成基础的数据和测试库,再关闭就可以

[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# cd /var/lib/mysql
[root@server1 mysql]# ls
[root@server1 mysql]# /etc/init.d/mysqld stop
[root@server1 ~]# umount /var/lib/mysql/

在这里插入图片描述

4.在浏览器中修改配置
<1>在Failover Domains中增加故障转移并设置server1和server2的优先级
在这里插入图片描述
在这里插入图片描述
<2>在Resources上增加资源(IP Address,Script,File System)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述<3>在Service Groups增加一个服务并将其资源增加进去在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<4>再次刷新后查看界面
在这里插入图片描述

注意:
有时服务会一直显示disabled,关闭服务再重新开启服务即可

[root@server1 ~]# clusvcadm -d sql
[root@server1 ~]# clusvcadm -e sql

在这里插入图片描述
在这里插入图片描述
5.测试
<1>在server1中尝试输入clustat可以查看到apache服务是disaled,而mysql服务是在server1中运行(因为server1的优先级设置的高)

[root@server1 ~]# clustat

在这里插入图片描述
<2>在server1中输入命令mysql发现可以成功使用此命令,并且使用df命令查看时,会发现共享设备已经成功挂载在了数据库的配置文件下(此时,server下无法正常使用mysql命令且无法查看到共享设备的挂载)
在server1中可以成功查看:

[root@server1 ~]# mysql
[root@server1 ~]# df
[root@server1 ~]# ip a

在这里插入图片描述
在server2中可以无法成功查看:

[root@server ~]# mysql
[root@server2 ~]# df
[root@server2 ~]# ip a

在这里插入图片描述
<3>使用以下命令将server1的sql服务转到server2中,使用df命令查看时,会发现在servre2中共享设备已经成功挂载在了数据库的配置文件下,而server1下没有共享设备的挂载

[root@server2 ~]# clusvcadm -r sql -m server2
[root@server2 ~]# clustat
[root@server2 ~]# df
[root@server2 ~]# ip a
[root@server2 ~]# curl localhost

在这里插入图片描述
在这里插入图片描述
6.单点写入
在server1的mysql的数据目录下创建一个文件,在server2上查看,发现无法查看到,说明是单点写入,即只能一个设备写入
在server1上的操作:

[root@server1 ~]# cd /var/lib/mysql
[root@server1 mysql]# touch file22
[root@server1 mysql]# ll

在这里插入图片描述
在server2上的操作:

[root@server2 ~]# cd /var/lib/mysql
[root@server2 mysql]# ll

在这里插入图片描述

注意:
1.server3是服务器,拿出一个共享设备,使其共享
2.tgtd此服务不要充重启,进程如果有4个说明有问题
3.ps ax看一下服务器的状态
4.查看到设备后,查看设备是否可以使用
5.设备什么的都完整,但是没有分区表,说明没救了
6.模拟一下分区表坏了,将空设备导入到vda中,破坏mbr,可以查看到分区成功,但是使用fdisk -l可以查看到,重启后会发现其分区表没有了,最好把分区表备份,mbr一定要备份好,如果没有显示,将分区表刷新一下即可
7.mysql目录对其是没有权限的,权限是记录在设备中的
在装mysql时是允许并mysql的用户写的
开启mysql服务的原因是,基础的数据和测试库生成一下即可,再关闭就可以
server2中主要装上运行mysql-server即可
8.如果名字写错了,会起不来(mysqld)
9.然后添加资源回切。需要把apache的运行独占取消,然后弄服务,可以直接把两个服务重新启动

二.GFS2全局文件系统-实现多点写入

1.在server1中将所有服务都设为disabled

[root@server1 ~]# clusvcadm -d sql
[root@server1 ~]# clusvcadm -d apache
[root@server1 ~]# clustat

在这里插入图片描述
在这里插入图片描述
2.在server1和server2开启clvmd服务并查看是否是激活状态

[root@server1 ~]# /etc/init.d/clvmd start 
[root@server1 ~]# vim /etc/lvm/lvm.conf
[root@server2 ~]# /etc/init.d/clvmd start
[root@server2 ~]# vim /etc/lvm/lvm.conf

在这里插入图片描述
在这里插入图片描述
配置服务文件中的内容如下:

locking_type = 3

在这里插入图片描述
注意:
1.locking_type = 3 中的3表示激活状态
locking_type = 1 中的1表示不激活状态
2.如果只开启一台主机,那么之后会在逻辑卷方面报错

补充:
[root@server1 ~]# lvmconf --disable-cluster #输入此命令,代表不激活
[root@server1 ~]# vim /etc/lvm/lvm.conf

配置文件中的内容如下:
在这里插入图片描述

[root@server1 ~]# lvmconf --enable-cluster	#输入此命令,代表激活
[root@server2 ~]# vim /etc/lvm/lvm.conf

配置文件中的内容如下:
在这里插入图片描述

3.创建逻辑卷,并挂载(只能在server1中创建)

[root@server1 ~]# pvcreate /dev/sdb
[root@server1 ~]# pvs
[root@server1 ~]# vgcreate clustervg /dev/sdb
[root@server1 ~]# vgs
[root@server1 ~]# lvcreate -L 4G -n demo clustervg
[root@server1 ~]# lvs

在这里插入图片描述
4.将逻辑卷进行挂载,并修改其权限

[root@server1 ~]# mkfs.ext4 /dev/clustervg/demo 
[root@server1 ~]# mount /dev/clustervg/demo /var/lib/mysql
[root@server1 ~]# df
[root@server1 ~]# ll -d /var/lib/mysql
[root@server1 ~]# chown mysql.mysql /var/lib/mysql/
[root@server1 ~]# ll -d /var/lib/mysql

在这里插入图片描述
5.开启服务使其数据初始化,数据初始化后,再次将服务关闭

[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# cd /var/lib/mysql
[root@server1 mysql]# ls
[root@server1 mysql]# /etc/init.d/mysqld stop

在这里插入图片描述
6.格式化文件系统为gfs2格式

[root@server1 ~]# umount /var/lib/mysql
[root@server1 ~]# clustat	#查看集群名是什么
[root@server1 ~]# mkfs.gfs2 -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo 

在这里插入图片描述
在这里插入图片描述
注意:
-t后加集群名 -j表示几个节点

7.查看gfs2的工具

[root@server1 ~]# gfs2_tool sb /dev/clustervg/demo all

在这里插入图片描述
8.将逻辑卷挂载并查看,同时再次修改权限(更改格式后需要再次修改权限),查看逻辑卷的格式是否发生改变

[root@server1 ~]# mount /dev/clustervg/demo /var/lib/mysql
[root@server1 ~]# df
[root@server1 ~]# ll -d /var/lib/mysql/
[root@server1 ~]# chown mysql.mysql /var/lib/mysql
[root@server1 ~]# ll -d /var/lib/mysql/
[root@server1 ~]# blkid

在这里插入图片描述
9.查看生成的两个文件

[root@server1 ~]# gfs2_tool journals /dev/clustervg/demo 

在这里插入图片描述
测试:
10.在浏览器中将之前的dbdata从服务组中移除,再从资源中移除
在这里插入图片描述
11.将新的GFS2添加进资源中,继而添加至服务组中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
12.在浏览器中进行刷新
在这里插入图片描述
13.在server1和server2中查看节点的状态并查看挂载
在这里插入图片描述
14.在server1和server2中同时创建一个文件并查看,会发现此时可以进行多点写入,即同时写入
在这里插入图片描述
在这里插入图片描述

注意:
服务在哪个主机上,便在哪个主机中开启服务

三.关闭集群

(1)在server1中做以下操作:
1.首先在server3(服务器)中开启tgtd服务,以便于客户端可以获取到共享设备

[root@server3 ~]# /etc/init.d/tgtd start
[root@server3 ~]# /etc/init.d/tgtd status

在这里插入图片描述
2.在server1上查看集群的状态,将开启的服务设为disabled

[root@server1 ~]# clustat
[root@server1 ~]# clusvcadm -d sql	#将sql设为disabled
[root@server1 ~]# clustat	#检查服务是否都是disabled

在这里插入图片描述
3.查看是否有挂载,如果有,将其卸载,如果没有,跳过即可

[root@server1 ~]# df

在这里插入图片描述
4.登陆共享设备(如果没有成功登陆,其原因可能是服务器没有开启tgtd服务)并查看共享设备是否共享成功

[root@server1 ~]# iscsiadm -m node -l
[root@server1 ~]# fdisk -l

在这里插入图片描述
5.查看pv,lv的状态

[root@server1 ~]# pvs
[root@server1 ~]# lvs

在这里插入图片描述
6.依次删除逻辑卷(存储设备)

[root@server1 ~]# lvremove /dev/clustervg/demo
[root@server1 ~]# vgremove clustervg
[root@server1 ~]# pvremove /dev/sdb

在这里插入图片描述
7.退出登陆共享设备

[root@server1 ~]# iscsiadm -m node -u

在这里插入图片描述
8.退出登陆后共享设备的数据依旧存在

[root@server1 ~]# cd /var/lib/iscsi/nodes/	
[root@server1 nodes]# ls	##数据存在
[root@server1 nodes]# iscsiadm -m node -o delete	#删除数据
[root@server1 nodes]# ls	#再次查看,发现数据不存在

在这里插入图片描述
(2)在server2中做同样的操作(如果有的操作在server1中已经被彻底删除,那么在srver2中就不需要再做了,只需要查看即可)

[root@server2 ~]# pvs
[root@server2 ~]# lvs                                    
[root@server2 ~]# df
[root@server2 ~]# iscsiadm -m node -u
[root@server2 ~]# cd /var/lib/iscsi/nodes
[root@server2 nodes]# ls
[root@server2 nodes]# iscsiadm -m node -o delete
[root@server2 nodes]# ls
[root@server2 nodes]# fdisk -l

在这里插入图片描述
(3)在物理机的浏览器中进行操作
在浏览器中输入https://172.25.33.1:8084
先将节点从集群中脱离出来,不能直接删除,因为还在使用中,之后再删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)在server1和server2中进行以下操作:
在server1中使用命令查看集群的状态,发现会出现以下情况Could not connect to CMAN: No such file or directory,此时说明集群已被删除,并将集群相关的服务都设置成开机不启动
在server1中进行如下操作:

[root@server1 nodes]# clustat
[root@server1 nodes]# chkconfig --list	#查看开机启动
[root@server1 nodes]# chkconfig cman off
[root@server1 nodes]# chkconfig rgmanager off
[root@server1 nodes]# chkconfig modclusterd off
[root@server1 nodes]# chkconfig ricci off
[root@server1 nodes]# vim /etc/lvm/lvm.conf
[root@server2 nodes]# chkconfig --list

配置文件中需要修改的内容如下:
在这里插入图片描述
在这里插入图片描述

locking_type = 1

在这里插入图片描述
在server2中进行如下操作:

[root@server2 nodes]# clustat
[root@server2 nodes]# chkconfig --list
[root@server2 nodes]# chkconfig cman off
[root@server2 nodes]# chkconfig rgmanager off
[root@server2 nodes]# chkconfig modclusterd off
[root@server2 nodes]# chkconfig ricci off
[root@server2 nodes]# vim /etc/lvm/lvm.conf
[root@server2 nodes]# chkconfig --list

在这里插入图片描述
在这里插入图片描述
配置文件中需要修改的内容如下:

locking_type = 1

在这里插入图片描述
(5)将所有虚拟机重新启动并将serve3中增加的磁盘删除

[root@server1 nodes]# reboot
[root@server2 nodes]# reboot

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
1.第一次初始化数据库时要将其内的数据晴空
2.-d表示disabled
3.iscsi不能多点写入
4.全局文件系统:多个对同一个文件共同写入
5.需要rhcs底层的支持,才可以多点写入
6.GFS2必须有一个集群的逻辑卷服务是开启的
7.3表示集群锁,激活集群锁
8.-j表示日志的份数,有几个节点就有几个日志
9.GFS2也是一个网络设备,所以需要加net_dev

猜你喜欢

转载自blog.csdn.net/qq_39376481/article/details/89680666