欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

程序员文章站 2024-03-08 15:11:16
...

一.iscsi共享磁盘(挂载在数据库的数据目录中)

第一步:

首先两台主机关闭apache服务(也可以直接在网页中将其disabled)

clusvcadm -d apache

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

使用以下命令是开启apache服务

clusvcadm -e apache

在hang13中添加一个硬盘(大小为8G)

hang13这台主机主要用来做存储:做共享存储,给hang11和hang12使用

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第二步:

配置服务端,在hang13主机上,安装scsi并编辑磁盘共享配置文件

 yum install -y iscsi-*
 yum install scsi-*
  vim /etc/tgt/targets.conf
在里面修改
<target iqn.2019-07.com.example:server.target1>
    backing-store /dev/vda
</target>

/etc/init.d/tgtd start

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第三步:
配置客户端,在hang11和hang12安装并获取共享设备

yum install -y iscsi-*
iscsiadm -m discovery -t st -p 172.25.11.13    #检测共享磁盘
fdisk -l      #此时没有共享磁盘
iscsiadm -m node -l         #连接共享磁盘
fdisk -l       #此刻有共享磁盘

主要演示hang11,hang12过程相同
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

在hang12

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

此块可以做一个分区表备份的实验

fdisk -cu /dev/sdb
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mnt
cd /mnt
ls
touch file 
ls
cd
umount /mnt

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

dd if=/dev/sdb of=mbr bs=512 count=1     备份分区表
cat /proc/partitions      
dd if=/dev/zero of=/dev/sdb bs=512 count=1   将分区表损坏 
reboot     重新加载  
此时再去挂载发现分区表损坏,不能挂载
cat /proc/partitions 此时没有我们已经格式化好的磁盘,磁盘不可用

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

dd if=mbr of=/dev/sdb    恢复分区表
reboot
此时可以挂载
cat /proc/partitions 此时磁盘可用

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

这个实验告诉我们在企业的时候,无论删除什么,最好在之前做好备份,要不然删错了,到时候恢复不了,哪可就要苦唧唧了。

做完这个实验后,为了更好的进行下个实验,我们不对磁盘进行分区:

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第四步:

配置mysql服务
给hang11和hang12安装mysql

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第五步:

将共享设备挂载至mysql的数据目录下(无法成功挂载,故对其进行格式化)

mkfs.ext4 /dev/sdb         #格式化磁盘
mount /dev/sdb  /var/lib/mysql/      #数据库的数据目录
df
cd  /var/lib/mysql/
ls

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

ll  -d /var/lib/mysql/      #挂载的时候数据目录的所属都是root
umount  /var/lib/mysql/
ll  -d /var/lib/mysql/    #不挂载,数据目录的原本所属都是mysql

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

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

mount /dev/sdb  /var/lib/mysql/
chown mysql.mysql   /var/lib/mysql/
/etc/init.d/mysqld start       #启动mysql,生成基础的数据和测试库
cd /var/lib/mysql/
ll

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

为了下一步实验,我们将服务关掉,取消挂载

/etc/init.d/mysqld stop
cd
umount /var/lib/mysql/
/etc/init.d/mysqld status

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第六步:

在浏览器中修改配置

<1>在Failover Domains中增加故障转移并设置hang11和hang12的优先级

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
最后如下图所示:
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

<2>在Resources上增加资源(IP Address,Script,File System)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

<3>在Service Groups增加一个服务并将其资源增加进去

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
在这里插入图片描述
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

开启服务,最后结果如下图所示,因为hang11的优先级高:

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

输入clustat可以查看到apache服务是disaled,而sql服务是在hang11中运行(因为hang11的优先级设置的高)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

可以看见服务,挂载,虚拟ip都在hang11上面开启
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

hang12上面没有

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
使用以下命令将11的sql服务转到12中,使用df命令查看时,会发现在12*享设备已经成功挂载在了数据库的配置文件下

clusvcadm -r sql -m hang12

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

运行独占测试

将apache**,发现apache在hang11上面运行

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

将apache修改为12运行,失败,因为它是运行独占的,所以我们查看的时候它依旧在11上面运行

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

将运行独占取消掉:

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
再去修改apache的运行主机为12,发现成功
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第七步:

单点写入

在12上的操作:
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

此时11和12都在挂载,同时挂载时,在12的mysql的数据目录下创建一个文件,在11上查看,发现无法查看到,说明是单点写入,即只能一个设备写入

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
无法查看到。
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

发现不能实现数据的同步。

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

  • 我们的某个服务需要通过将数据目录挂载到共享存储上,每个节点都能访问存储中的数据,以实现多节点的集群高可用,此时就可以使用GFS2文件系统。

GFS2是一个原生的(native)文件系统,它直接和Linux内核文件系统接口的VFS层进行通信。GFS2使用分布式元数据和多个日志来优化群集操作。要维护文件系统的完整性,GFS2使用一个分布式锁管理器(DLM,DistributedLock
Manager)来协调I/O,当一个节点操作系统时,会进行加锁。当节点修改了GFS2文件系统上的数据,这个改动马上为使用这个文件系统的其他群集节点可见。

第一步:

将两个服务组都disabled

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

在11和12开启clvmd服务并查看是否是**状态

  • CLVM(Cluster Logical Volume Manager,群集逻辑卷管理器)是LVM的一组群集的扩展,作用类似与LVM,但集群文件系统后期如果有规划在线扩容的操作必须要开启clvmd(分发逻辑卷的状态更新),这些扩展允许计算机群集使用LVM管理共享存储(例如:在SAN中),当在一个节点上对共享存储进行LVM操作时,会通过高可用组件通知其他节点。

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

也可以使用命令**

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

注意:

locking_type = 3 中的3表示**状态
locking_type = 1 中的1表示不**状态
如果只开启一台主机,那么之后会在逻辑卷方面报错

第二步:

创建逻辑卷

pvcreate /dev/sdb
pvs
vgcreate clustervg /dev/sdb
vgs
vgdisplay
lvcreate -L 4G -n demo clustervg

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

实验证明ext4文件系统与GFS2系统的区别:

ext4文件系统:

mkfs.ext4 /dev/clustervg/demo
mount /dev/clustervg/demo  /var/lib/mysql

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

11挂载(图没截上),并建立文件
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
12后挂载可以看见建立的文件
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

此时11和12都已经挂载共享磁盘,11再去建立文件

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
12看不见
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

说明ext4文件系统只能支持单个节点写入

GFS2文件系统:

将11和12的共享磁盘卸载,并移除11的已经创建的lv

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

lvremove /dev/clustervg/demo

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

lvcreate -L 4G -n demo clustervg
mkfs.gfs2  -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo   #格式化,-t后加集群名, -j表示几个节点
gfs2_tool sb /dev/clustervg/demo all    #查看gfs2的工具
mount /dev/clustervg/demo  /var/lib/mysql

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

11上面创建文件
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
12挂载并查看,发现可以看见

mount /dev/clustervg/demo  /var/lib/mysql
cd /var/lib/mysql
ls

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

11建立haha
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
12同步更新可以看见

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
12复制文件

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

11也同步更新

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

证明GFS2是多点写入

在浏览器将GFS2文件系统加入服务组里面:

先将共享磁盘在11和12卸载

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第一步:

在浏览器中将之前的dbdata从服务组中移除,再从资源中移除

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第二步:

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

如下图所示:
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第三步:

将新的GFS2添加至服务组中

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

启动sql服务组

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

第四步:

11里面挂载上了

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

也支持多点写入

hang12需要手动挂载上去,建立文件

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

11可以看见
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)