RHCS高可用集群iscsi磁盘共享下的GFS2文件系统的共享存储
一.GFS2文件系统的简介
1.基本概念
-
RHCS通过GFS文件系统提供存储集群功能。
-
GFS(Global FileSyatem)允许多个服务同时去使用一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中,从而消除了同步数据的麻烦。
-
GFS通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
2.gfs2与ext4文件系统的比较
ext4:不支持同步写入
gfs2:全局文件系统,支持DLM锁管理,支持并发写,适用于HA集群使用的共享存储适用于LB集群Realserver使用的共享存储
二.模拟rhcs高可用集群下的gfs文件系统的共享存储
1.实验环境
rhel6.5 selinux and iptables disabled
主机环境:
主机名 | IP | 服务 |
---|---|---|
hetoto1 | 172.25.12.1 | ricci,luci,iscsi,mysql-server(客户端) |
hetoto2 | 172.25.12.2 | ricci,iscsi,mysql-server(客户端) |
hetoto3 | 172.25.12.3 | scsi(服务端) |
2.hetoto1上的部署
(1)查看支持该文件系统的clvmd集群逻辑卷服务是否开启
[aaa@qq.com ~]# /etc/init.d/clvmd status
(2)关掉已经设置的sql的服务组
[aaa@qq.com ~]# clustat
[aaa@qq.com ~]# clusvcadm -d sql
[aaa@qq.com ~]# clustat
(3)集群逻辑卷的配置文件的编辑,开启锁管理器
注:如果上述锁管理机制不为3的话需手动设置其为3
a.关闭锁管理机制,发现文件中的参数立马变为1
[aaa@qq.com ~]# lvmconf --disable-cluster
b.开启锁管理机制,文件中的参数会变为3表示开启,可以使用
[aaa@qq.com ~]# lvmconf --enable-cluster
(4)创建ext4文件系统的lvm集群罗逻辑卷
- 查看iscsi共享的存储设备为/dev/sdb
[aaa@qq.com ~]# fdisk -l
- 逻辑卷的创建
[aaa@qq.com ~]# pvcreate /dev/sdb
[aaa@qq.com ~]# vgcreate clustervg /dev/sdb
[aaa@qq.com ~]# vgs
[aaa@qq.com ~]# lvcreate -L 4G -n demo clustervg
[aaa@qq.com ~]# lvs
- 格式化文件系统为ext4类型
[aaa@qq.com ~]# mkfs.ext4 /dev/clustervg//demo
- 挂载所创建的逻辑卷
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# df
- 修改数据库的所有者实现共享
[aaa@qq.como1 ~]# ll -d /var/lib/mysql/
drwxr-xr-x 3 root root 4096 Jun 12 04:57 /var/lib/mysql/
[aaa@qq.com ~]# chown mysql.mysql /var/lib/mysql/
[aaa@qq.com ~]# ll -d /var/lib/mysql/
drwxr-xr-x 3 mysql mysql 4096 Jun 12 04:57 /var/lib/mysql/
- 开启数据库服务
[aaa@qq.com ~]# /etc/init.d/mysqld start
ext4文件系统的验证
a.在数据库目录下复制/etc/passwd到当前目录下
b.在另一个客户端hetoto2上查看的时候发现没有同步到在hetoto1上写入的数据
逻辑卷的扩展
a.关掉数据库服务
[aaa@qq.com mysql]# /etc/init.d/mysqld stop
b.扩展逻辑卷
c.ext4文件系统的缩减
[aaa@qq.com ~]# resize2fs /dev/clustervg/demo
创建gfs2文件系统的lvm集群逻辑卷
(1)格式化已经创建好的逻辑卷
[aaa@qq.com ~]# mkfs.gfs2 -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo
mkfs.gfs2
-j #: 指定日志区域的个数,有几个就能够被几个节点所挂载;
-J #: 指定日志区域的大小,默认为128MB;
-p {lock_dlm|lock_nolock}:所使用的锁协议名称,集群需要使用lock_dlm;
-t <name>: 锁表的名称
格式为clustername:fsname,
clustername为当前节点所在的集群的名称
fsname文件系统名称,自定义,要在当前集群惟一,这也叫锁表名称,表明是分布式锁的范围。
(2)gfs2文件系统的工具及其安全上下文的查看
- gfs2文件系统的挂载,及其所有者的修改(修改为mysql数据库用户)
- 开启数据库
[aaa@qq.com ~]# /etc/init.d/mysqld start
- 添加开机自动挂载
vim /etc/fstab
UUID 可以通过blkid查询
gfs2文件系统的验证
hetoto1:
hetoto2:
发现在hetoto1上的数据已经同步到hetoto2上,即实现了gfs2文件系统的同步
RHCS集群系统下web界面的gfs2文件系统的导入
- 在上一篇博文中已经创建好了失败回切及其资源组,在资源组中先将ext4文件系统的资源删除,然后再重新添加gfs2文件系统
- 在服务组中添加gfs2的资源
b
操作如下:
删除服务组:
重新添加服务组:
在重新添加的服务组中添加资源
点击提交
测试:
hetoto1:(卸载挂载点并且关闭服务)
hetoto2:(同1)
注:在卸载时首先要关闭服务然后再卸载,否则可能卸载不了.
重新刷新网页显示服务运行在hetoto2
在hetoto2上查看:
发现设备再次自动挂载