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

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

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

[[email protected] ~]# clusvcadm -d apache
[[email protected] ~]# clusvcadm -d apache

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
使用以下命令是开启apache服务

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

2.在server3中添加一个硬盘(大小为8G)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
硬盘的名称必须是以v打头,且不能和客户端在“/”目录下挂载的设备名称相同

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

[[email protected] ~]# fdisk -l

当图中出现的信息有Disk /dev/vdb: 8589 MB, 8589934592 bytes
说明硬盘添加成功
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
4.服务端安装scsi并编辑磁盘共享配置文件

[[email protected] ~]# yum install scsi-* -y
[[email protected] ~]# vim /etc/tgt/targets.conf

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
配置文件中增加的内容如下:

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<5>启动服务

[[email protected] ~]# /etc/init.d/tgtd start

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<6>查看进程,tgtd只能有两个进程,否则有问题

[[email protected] ~]# ps ax

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<7>查看共享目录

[[email protected] ~]# tgt-admin -s

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
2.配置客户端
在server1安装并获取共享设备

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
在server2安装并获取共享设备

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
3.配置mysql服务
1.在server1和server2中下载mysql

[[email protected] ~]# yum install mysql-server -y
[[email protected] ~]# yum install mysql-server -y

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
2.尝试将共享设备挂载至mysql的配置目录下(无法成功挂载,故对其进行格式化)

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
格式化时不需要输入任何内容

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

[[email protected] ~]# ll -d /var/lib/mysql
[[email protected] ~]# umount /var/lib/mysql/
[[email protected] ~]# ll -d /var/lib/mysql/
[[email protected] ~]# mount /dev/sdb /var/lib/mysql/
[[email protected] ~]# chown mysql.mysql /var/lib/mysql
[[email protected] ~]# ll -d /var/lib/mysql/

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
4.开启mysqld服务生成基础的数据和测试库,再关闭就可以

[[email protected] ~]# /etc/init.d/mysqld start
[[email protected] ~]# cd /var/lib/mysql
[[email protected] mysql]# ls
[[email protected] mysql]# /etc/init.d/mysqld stop
[[email protected] ~]# umount /var/lib/mysql/

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

4.在浏览器中修改配置
<1>在Failover Domains中增加故障转移并设置server1和server2的优先级
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<2>在Resources上增加资源(IP Address,Script,File System)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)<3>在Service Groups增加一个服务并将其资源增加进去RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<4>再次刷新后查看界面
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

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

[[email protected] ~]# clusvcadm -d sql
[[email protected] ~]# clusvcadm -e sql

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
5.测试
<1>在server1中尝试输入clustat可以查看到apache服务是disaled,而mysql服务是在server1中运行(因为server1的优先级设置的高)

[[email protected] ~]# clustat

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<2>在server1中输入命令mysql发现可以成功使用此命令,并且使用df命令查看时,会发现共享设备已经成功挂载在了数据库的配置文件下(此时,server下无法正常使用mysql命令且无法查看到共享设备的挂载)
在server1中可以成功查看:

[[email protected] ~]# mysql
[[email protected] ~]# df
[[email protected] ~]# ip a

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
在server2中可以无法成功查看:

[[email protected] ~]# mysql
[[email protected] ~]# df
[[email protected] ~]# ip a

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
<3>使用以下命令将server1的sql服务转到server2中,使用df命令查看时,会发现在servre2*享设备已经成功挂载在了数据库的配置文件下,而server1下没有共享设备的挂载

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
6.单点写入
在server1的mysql的数据目录下创建一个文件,在server2上查看,发现无法查看到,说明是单点写入,即只能一个设备写入
在server1上的操作:

[[email protected] ~]# cd /var/lib/mysql
[[email protected] mysql]# touch file22
[[email protected] mysql]# ll

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

[[email protected] ~]# cd /var/lib/mysql
[[email protected] mysql]# ll

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

注意:
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

[[email protected] ~]# clusvcadm -d sql
[[email protected] ~]# clusvcadm -d apache
[[email protected] ~]# clustat

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
2.在server1和server2开启clvmd服务并查看是否是**状态

[[email protected] ~]# /etc/init.d/clvmd start 
[[email protected] ~]# vim /etc/lvm/lvm.conf
[[email protected] ~]# /etc/init.d/clvmd start
[[email protected] ~]# vim /etc/lvm/lvm.conf

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
配置服务文件中的内容如下:

locking_type = 3

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
1.locking_type = 3 中的3表示**状态
locking_type = 1 中的1表示不**状态
2.如果只开启一台主机,那么之后会在逻辑卷方面报错

补充:
[[email protected] ~]# lvmconf --disable-cluster #输入此命令,代表不**
[[email protected] ~]# vim /etc/lvm/lvm.conf

配置文件中的内容如下:
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

[[email protected] ~]# lvmconf --enable-cluster	#输入此命令,代表**
[[email protected] ~]# vim /etc/lvm/lvm.conf

配置文件中的内容如下:
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

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

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
4.将逻辑卷进行挂载,并修改其权限

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
5.开启服务使其数据初始化,数据初始化后,再次将服务关闭

[[email protected] ~]# /etc/init.d/mysqld start
[[email protected] ~]# cd /var/lib/mysql
[[email protected] mysql]# ls
[[email protected] mysql]# /etc/init.d/mysqld stop

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
6.格式化文件系统为gfs2格式

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
-t后加集群名 -j表示几个节点

7.查看gfs2的工具

[[email protected] ~]# gfs2_tool sb /dev/clustervg/demo all

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
8.将逻辑卷挂载并查看,同时再次修改权限(更改格式后需要再次修改权限),查看逻辑卷的格式是否发生改变

[[email protected] ~]# mount /dev/clustervg/demo /var/lib/mysql
[[email protected] ~]# df
[[email protected] ~]# ll -d /var/lib/mysql/
[[email protected] ~]# chown mysql.mysql /var/lib/mysql
[[email protected] ~]# ll -d /var/lib/mysql/
[[email protected] ~]# blkid

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
9.查看生成的两个文件

[[email protected] ~]# gfs2_tool journals /dev/clustervg/demo 

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
测试:
10.在浏览器中将之前的dbdata从服务组中移除,再从资源中移除
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
11.将新的GFS2添加进资源中,继而添加至服务组中
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
12.在浏览器中进行刷新
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
13.在server1和server2中查看节点的状态并查看挂载
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
14.在server1和server2中同时创建一个文件并查看,会发现此时可以进行多点写入,即同时写入
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

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

三.关闭集群

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

[[email protected] ~]# /etc/init.d/tgtd start
[[email protected] ~]# /etc/init.d/tgtd status

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
2.在server1上查看集群的状态,将开启的服务设为disabled

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
3.查看是否有挂载,如果有,将其卸载,如果没有,跳过即可

[[email protected] ~]# df

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
4.登陆共享设备(如果没有成功登陆,其原因可能是服务器没有开启tgtd服务)并查看共享设备是否共享成功

[[email protected] ~]# iscsiadm -m node -l
[[email protected] ~]# fdisk -l

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
5.查看pv,lv的状态

[[email protected] ~]# pvs
[[email protected] ~]# lvs

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
6.依次删除逻辑卷(存储设备)

[[email protected] ~]# lvremove /dev/clustervg/demo
[[email protected] ~]# vgremove clustervg
[[email protected] ~]# pvremove /dev/sdb

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
7.退出登陆共享设备

[[email protected] ~]# iscsiadm -m node -u

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
8.退出登陆后共享设备的数据依旧存在

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
(2)在server2中做同样的操作(如果有的操作在server1中已经被彻底删除,那么在srver2中就不需要再做了,只需要查看即可)

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

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
(3)在物理机的浏览器中进行操作
在浏览器中输入https://172.25.33.1:8084
先将节点从集群中脱离出来,不能直接删除,因为还在使用中,之后再删除
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
(4)在server1和server2中进行以下操作:
在server1中使用命令查看集群的状态,发现会出现以下情况Could not connect to CMAN: No such file or directory,此时说明集群已被删除,并将集群相关的服务都设置成开机不启动
在server1中进行如下操作:

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

配置文件中需要修改的内容如下:
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)

locking_type = 1

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
在server2中进行如下操作:

[[email protected] nodes]# clustat
[[email protected] nodes]# chkconfig --list
[[email protected] nodes]# chkconfig cman off
[[email protected] nodes]# chkconfig rgmanager off
[[email protected] nodes]# chkconfig modclusterd off
[[email protected] nodes]# chkconfig ricci off
[[email protected] nodes]# vim /etc/lvm/lvm.conf
[[email protected] nodes]# chkconfig --list

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
配置文件中需要修改的内容如下:

locking_type = 1

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
(5)将所有虚拟机重新启动并将serve3中增加的磁盘删除

[[email protected] nodes]# reboot
[[email protected] nodes]# reboot

RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
注意:
1.第一次初始化数据库时要将其内的数据晴空
2.-d表示disabled
3.iscsi不能多点写入
4.全局文件系统:多个对同一个文件共同写入
5.需要rhcs底层的支持,才可以多点写入
6.GFS2必须有一个集群的逻辑卷服务是开启的
7.3表示集群锁,**集群锁
8.-j表示日志的份数,有几个节点就有几个日志
9.GFS2也是一个网络设备,所以需要加net_dev