续我的上片博文:https://blog.csdn.net/y_yang666/article/details/87541559
高可用之mysql+共享磁盘(ext4文件系统)的部署:
一.给server3添加磁盘用来共享
二.共享磁盘的配置server1,server2及server3
server3:
[root@server3 ~]# yum install -y scsi-* ##安装软件
[root@server3 ~]# vim /etc/tgt/targets.conf ##编辑文件,将磁盘共享出来(修改38,39,40行)
38 <target iqn.2019-02.com.example:server.target1>
39 backing-store /dev/vda
40 </target>
[root@server3 ~]# /etc/init.d/tgtd start ##开启服务后共享成功
[root@server3 ~]# ps ax ##注意tgtd只能有这两个进程
1048 ? Ssl 0:00 tgtd
1051 ? S 0:00 tgtd
server1:
[root@server1 cluster]# yum install -y iscsi-*
[root@server1 cluster]# iscsiadm -m discovery -t st -p 172.25.4.3 ##发现共享出来的设备
[root@server1 cluster]# iscsiadm -m node -l ##登陆
[root@server1 cluster]# fdisk -l ##查看共享设备
server2:
[root@server2 ~]# yum install -y iscsi-*
[root@server2 ]# iscsiadm -m discovery -t st -p 172.25.4.3 ##发现共享出来的设备
[root@server2 ]# iscsiadm -m node -l ##登陆
[root@server2 ]# fdisk -l ##查看共享设备
三.server1与server2配置mysql服务
server1:
[root@server1 cluster]# yum install -y mysql-server ##安装mysql服务
[root@server1 cluster]# mkfs.ext4 /dev/sdb ##格式化磁盘为ext4文件系统格式
[root@server1 cluster]# mount /dev/sdb /var/lib/mysql/ ##挂载磁盘到/var/lib/mysql目录下
[root@server1 cluster]# chown mysql.mysql /var/lib/mysql/ ##修改目录所有人和所有组
[root@server1 cluster]# ll -d /var/lib/mysql/
drwxr-xr-x 3 mysql mysql 4096 Feb 15 16:32 /var/lib/mysql/
[root@server1 cluster]# /etc/init.d/mysqld start ##开启服务
[root@server1 cluster]# /etc/init.d/mysqld stop
[root@server1 cluster]# umount /var/lib/mysql/ ##关掉服务,将其卸载掉,方便后面实验
server2:
[root@server2 ~]# yum install -y mysql-server
四.给集群添加新的资源及故障回切域
将之前的apache服务disabled掉
1.添加资源,选择Resources,点击add进行添加
1)添加vip:
2).添加Filesystem
3).添加Script脚本
2.添加故障回切域,点击Failover Domains进行故障切换域设置,接着点击add进行添加
六.资源整合
选择Service Groups,点击add进行添加
接着点击Add Resource
选择前面添加过的vip,script脚本及Filesystems
测试:
资源整合完后,点击submit提交后,发现没有mysql服务在srever1上运行,vip也在server1上(因为mysql服务server1的优先级高)
clustat查看集群状态
df查看共享磁盘已经挂载到/var/lib/mysql下
高可用之mysql+共享磁盘(gfs2文件系统)
上面我们用的是ext4文件系统进行格式化,ext4是本地文件系统,不支持实时同步,同步的文件显示需要另一台进行卸载再挂载的操作,所以一般都会使用集群化文件系统gfs2
gfs2简介:
- GFS2是一个基于GFS的先进的集群文件系统,能够同步每台主机的集群文件系统的metadata,能够进行文件锁的管理,并且必须要redhat cluster suite(RHCS)支持,GFS2可以grow,进行容量的调整,不过这是在LVM基础上
- GFS是Redhat公司开发的一款集群文件系统,目前的最新版本是GFS2,GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS并不能孤立的存在,安装GFS需要RHCS的底层组件支持
GFS2文件系统的部署:
1.停掉之前高可用实验添加的apache和mysql服务
[root@server1 ~]# clusvcadm -d mysql
[root@server1 ~]# clusvcadm -d apache
2.保证clvmd服务是开启的
3.server1上创建lvm逻辑卷
[root@server1 ~]# pvcreate /dev/sdb
[root@server1 ~]# vgcreate clustervg /dev/sdb
[root@server1 ~]# lvcreate -L 4G -n demo clustervg
4.格式化逻辑卷
[root@server1 ~]# mkfs.gfs2 -p lock_dlm -j 2 -t westos_ha:mygfs2 /dev/clustervg/demo ##lock_dlm 是文件系统使用的锁定协议,因为这是一个集群的文件系统;westos_ha是集群名;mygfs2是名称可随意
查看信息:gfs2_tool sb /dev/clustervg/demo all
5.挂载及相关配置
[root@server1 ~]# mount /dev/clustervg/demo /var/lib/mysql/
[root@server1 ~]# ll -d /var/lib/mysql/
drwxr-xr-x 2 root root 3864 Feb 16 10:54 /var/lib/mysql/
[root@server1 ~]# chown mysql.mysql /var/lib/mysql/ ##更改所有人及所有组
[root@server1 ~]# ll -d /var/lib/mysql/
drwxr-xr-x 2 mysql mysql 3864 Feb 16 10:54 /var/lib/mysql/
6.server2上挂载共享磁盘,当server1开启mysql服务时,server2下的/var/lib/mysql目录下自动生成相应文件
server1上开启mysql服务
server2上挂载磁盘,查看/var/lib/mysql目录下文件(自动生成,说明同步成功):
web集群管理网页删除之前添加的ext4文件系统
1.先删除整合资源中的Filesystems(ext4文件系统):点击Service Group,双击mysql,接着点击Filesystems部分中的remove进行删除,删除完后点击submit提交即可
2.在删除Resource资源中的dbdata(之前的ext4文件系统):点击Resource,选中dbdata,点击delete进行删除
注意:要删除dbdata,必须要先删除整合资源中的Filesystem(ext4文件系统)
手动添加存储:
本来可以直接在图形界面将gfs2资源添加到集群中,但此添加方式是单点的,不方便,并且只能将磁盘挂载到优先级较高的服务器上,,所以建议手动添加(即设置开机自动挂载)
1.在server1上设置开机自动挂载
[root@server1 mysql]# vim /etc/fstab
写入:UUID="44ff85d9-05a2-617b-8cc0-54f2532d0701" /var/lib/mysql gfs2 _netdev 0 0
[root@server1 lib]# umount /var/lib/mysql/
[root@server1 lib]# mount -a ##执行挂载策略
[root@server1 lib]# df ##查看
2.在server2上也设置开机自动挂载
[root@server2 mysql]# vim /etc/fstab
写入:UUID="44ff85d9-05a2-617b-8cc0-54f2532d0701" /var/lib/mysql gfs2 _netdev 0 0
[root@server1 lib]# umount /var/lib/mysql/
[root@server1 lib]# mount -a ##执行挂载策略
[root@server1 lib]# df ##查看
测试(验证同步):
1.在server2上的/var/lib/mysql目录下建立文件
2.直接在server1上该目录下查看,是否存在passwd文件,存在说明同步成功