RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
一.RHCS高可用集群下的iscsi共享磁盘与mysql数据库的部署(共享存储硬盘)
1.配置服务端(server3是服务器)
1.首先关闭apache服务(也可以直接在网页中将其disabled)
[[email protected] ~]# clusvcadm -d apache
[[email protected] ~]# clusvcadm -d apache
注意:
使用以下命令是开启apache服务
[[email protected] ~]# clusvcadm -e apache(在server1下开启时,会自动在server1下开启服务)
2.在server3中添加一个硬盘(大小为8G)
注意:
硬盘的名称必须是以v打头,且不能和客户端在“/”目录下挂载的设备名称相同
3.查看硬盘是否添加成功
[[email protected] ~]# fdisk -l
当图中出现的信息有Disk /dev/vdb: 8589 MB, 8589934592 bytes
说明硬盘添加成功
4.服务端安装scsi并编辑磁盘共享配置文件
[[email protected] ~]# yum install scsi-* -y
[[email protected] ~]# vim /etc/tgt/targets.conf
配置文件中增加的内容如下:
38 <target iqn.2019-04.com.example:server.target1>
39 backing-store /dev/vdb
40 </target>
<5>启动服务
[[email protected] ~]# /etc/init.d/tgtd start
<6>查看进程,tgtd只能有两个进程,否则有问题
[[email protected] ~]# ps ax
<7>查看共享目录
[[email protected] ~]# tgt-admin -s
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
在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
3.配置mysql服务
1.在server1和server2中下载mysql
[[email protected] ~]# yum install mysql-server -y
[[email protected] ~]# yum install mysql-server -y
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
注意:
格式化时不需要输入任何内容
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/
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/
4.在浏览器中修改配置
<1>在Failover Domains中增加故障转移并设置server1和server2的优先级
<2>在Resources上增加资源(IP Address,Script,File System)
<3>在Service Groups增加一个服务并将其资源增加进去
<4>再次刷新后查看界面
注意:
有时服务会一直显示disabled,关闭服务再重新开启服务即可
[[email protected] ~]# clusvcadm -d sql
[[email protected] ~]# clusvcadm -e sql
5.测试
<1>在server1中尝试输入clustat可以查看到apache服务是disaled,而mysql服务是在server1中运行(因为server1的优先级设置的高)
[[email protected] ~]# clustat
<2>在server1中输入命令mysql发现可以成功使用此命令,并且使用df命令查看时,会发现共享设备已经成功挂载在了数据库的配置文件下(此时,server下无法正常使用mysql命令且无法查看到共享设备的挂载)
在server1中可以成功查看:
[[email protected] ~]# mysql
[[email protected] ~]# df
[[email protected] ~]# ip a
在server2中可以无法成功查看:
[[email protected] ~]# mysql
[[email protected] ~]# df
[[email protected] ~]# ip a
<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
6.单点写入
在server1的mysql的数据目录下创建一个文件,在server2上查看,发现无法查看到,说明是单点写入,即只能一个设备写入
在server1上的操作:
[[email protected] ~]# cd /var/lib/mysql
[[email protected] mysql]# touch file22
[[email protected] mysql]# ll
在server2上的操作:
[[email protected] ~]# cd /var/lib/mysql
[[email protected] 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
[[email protected] ~]# clusvcadm -d sql
[[email protected] ~]# clusvcadm -d apache
[[email protected] ~]# clustat
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
配置服务文件中的内容如下:
locking_type = 3
注意:
1.locking_type = 3 中的3表示**状态
locking_type = 1 中的1表示不**状态
2.如果只开启一台主机,那么之后会在逻辑卷方面报错
补充:
[[email protected] ~]# lvmconf --disable-cluster #输入此命令,代表不**
[[email protected] ~]# vim /etc/lvm/lvm.conf
配置文件中的内容如下:
[[email protected] ~]# lvmconf --enable-cluster #输入此命令,代表**
[[email protected] ~]# vim /etc/lvm/lvm.conf
配置文件中的内容如下:
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
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
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
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
注意:
-t后加集群名 -j表示几个节点
7.查看gfs2的工具
[[email protected] ~]# gfs2_tool sb /dev/clustervg/demo all
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
9.查看生成的两个文件
[[email protected] ~]# gfs2_tool journals /dev/clustervg/demo
测试:
10.在浏览器中将之前的dbdata从服务组中移除,再从资源中移除
11.将新的GFS2添加进资源中,继而添加至服务组中
12.在浏览器中进行刷新
13.在server1和server2中查看节点的状态并查看挂载
14.在server1和server2中同时创建一个文件并查看,会发现此时可以进行多点写入,即同时写入
注意:
服务在哪个主机上,便在哪个主机中开启服务
三.关闭集群
(1)在server1中做以下操作:
1.首先在server3(服务器)中开启tgtd服务,以便于客户端可以获取到共享设备
[[email protected] ~]# /etc/init.d/tgtd start
[[email protected] ~]# /etc/init.d/tgtd status
2.在server1上查看集群的状态,将开启的服务设为disabled
[[email protected] ~]# clustat
[[email protected] ~]# clusvcadm -d sql #将sql设为disabled
[[email protected] ~]# clustat #检查服务是否都是disabled
3.查看是否有挂载,如果有,将其卸载,如果没有,跳过即可
[[email protected] ~]# df
4.登陆共享设备(如果没有成功登陆,其原因可能是服务器没有开启tgtd服务)并查看共享设备是否共享成功
[[email protected] ~]# iscsiadm -m node -l
[[email protected] ~]# fdisk -l
5.查看pv,lv的状态
[[email protected] ~]# pvs
[[email protected] ~]# lvs
6.依次删除逻辑卷(存储设备)
[[email protected] ~]# lvremove /dev/clustervg/demo
[[email protected] ~]# vgremove clustervg
[[email protected] ~]# pvremove /dev/sdb
7.退出登陆共享设备
[[email protected] ~]# iscsiadm -m node -u
8.退出登陆后共享设备的数据依旧存在
[[email protected] ~]# cd /var/lib/iscsi/nodes/
[[email protected] nodes]# ls ##数据存在
[[email protected] nodes]# iscsiadm -m node -o delete #删除数据
[[email protected] nodes]# ls #再次查看,发现数据不存在
(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
(3)在物理机的浏览器中进行操作
在浏览器中输入https://172.25.33.1:8084
先将节点从集群中脱离出来,不能直接删除,因为还在使用中,之后再删除
(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
配置文件中需要修改的内容如下:
locking_type = 1
在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
配置文件中需要修改的内容如下:
locking_type = 1
(5)将所有虚拟机重新启动并将serve3中增加的磁盘删除
[[email protected] nodes]# reboot
[[email protected] nodes]# reboot
注意:
1.第一次初始化数据库时要将其内的数据晴空
2.-d表示disabled
3.iscsi不能多点写入
4.全局文件系统:多个对同一个文件共同写入
5.需要rhcs底层的支持,才可以多点写入
6.GFS2必须有一个集群的逻辑卷服务是开启的
7.3表示集群锁,**集群锁
8.-j表示日志的份数,有几个节点就有几个日志
9.GFS2也是一个网络设备,所以需要加net_dev