RHCS套件HA与mysql+GFS2文件系统实现同步存储
程序员文章站
2024-03-08 15:24:10
...
实验背景:
虚拟机 | ip |
---|---|
server1 | 172.25.55.1 |
server2 | 172.25.55.2 |
server3 | 172.25.55.3 |
三台虚拟机都关闭iptables和内核级防火墙。
三台虚拟机都做了相互的域名解析。
第一步:HA添加集群和fence
可查看上一篇博客
第二步:共享存储
为sever3添加一块磁盘
要安装的软件
[aaa@qq.com html]# yum install -y iscsi-*
[aaa@qq.com ~]# yum install -y iscsi-*
[aaa@qq.com ~]# yum install scsi-*
server3查看设备,添加的8G设备已经存在。
server3编辑targets的配置文件。
[aaa@qq.com ~]# vim /etc/tgt/targets.conf
38 <target iqn.2019-02.com.example:server.target1>
39 backing-store /dev/vda(此名称为添加磁盘的设备名称)
40 </target>
[aaa@qq.com ~]# /etc/init.d/tgtd start(开启服务)
[aaa@qq.com ~]# tgt-admin -s(查看信息)
Target 1: iqn.2019-02.com.example:server.target1
[aaa@qq.com ~]# ps ax(可查看到两个tdtd进程,如果多于两个,关闭进程,重启服务)
1033 ? Ssl 0:00 tgtd
1036 ? S 0:00 tgtd
1065 pts/0 R+ 0:00 ps ax
以下server1与server2操作相同
[aaa@qq.com ~]# iscsiadm -m discovery -t st -p 172.25.28.3(发现共享存储)
[aaa@qq.com ~]# iscsiadm -m node -l(登陆存储)
[aaa@qq.com ~]# fdisk -l (此时查看设备,可查看到共享设备)
Disk /dev/sdb: 8589 MB, 8589934592 bytes
[aaa@qq.com ~]# yum install mysql-server(下载数据库)
[aaa@qq.com ~]# mkfs.ext4 /dev/sdb(格式化存储)
[aaa@qq.com ~]# mount /dev/sdb /var/lib/mysql/
[aaa@qq.com ~]# df
/dev/sdb 8256952 149492 7688032 2% /var/lib/mysql
[aaa@qq.com ~]# ll -d /var/lib/mysql/
drwxr-xr-x 3 root root 4096 Feb 15 16:47 /var/lib/mysql/
[aaa@qq.com ~]# chown mysql.mysql /var/lib/mysql/
[aaa@qq.com ~]# /etc/init.d/mysqld start (开启Mysqld服务)
[aaa@qq.com mysql]# umount /var/lib/mysql 要卸载必须关闭mysql服务
umount: /var/lib/mysql: device is busy.
[aaa@qq.com mysql]# /etc/init.d/mysqld stop
[aaa@qq.com ~]# umount /var/lib/mysql
第三步:添加mysql服务
- 添加故障转移
- 添加资源
添加虚拟ip
添加文件系统(可使设备自动挂载到指定目录)
添加mysqld服务启动脚本。
- 为集群添加服务群
下图的Run Exclusive代表运行独占。不勾选后能通过命令将apache服务自如切换与两个服务端之间。将之前写要的服务都加进去(ip、文件系统和脚本)
[aaa@qq.com ~]# clusvcadm -r sql -m server2
Trying to relocate service:sql to server2...Success
service:sql is now running on server2
重启后sql的disabled的处理
(如果failed先在网页disabled后再操作)
先查看server3的tgtd服务是否打开
[aaa@qq.com ~]# service tgtd start
[aaa@qq.com ~]# chkconfig tgtd on
查看server1上是否由共享存储
[aaa@qq.com ~]# fdisk -l(查看没有存储)
[aaa@qq.com ~]# iscsiadm -m discovery -t st -p 172.25.28.3(发现共享存储)
[aaa@qq.com ~]# iscsiadm -m node -l(登陆共享存储)
[aaa@qq.com ~]# fdisk -l(再次查看设备,可查看到共享设备)
[aaa@qq.com ~]# blkid(查看设备已经格式化)
/dev/sdb: UUID="77c3feb0-28be-4686-a2c3-ef68fad5d97d" TYPE="ext4"
[aaa@qq.com ~]# mount /dev/sdb /var/lib/mysql(挂在设备,删除原本套接字mysql.sock)
[aaa@qq.com ~]# cd /var/lib/mysql
[aaa@qq.com mysql]# rm -fr mysql.sock
[aaa@qq.com mysql]# cd
[aaa@qq.com ~]# umount /dev/sdb(卸载)
打开主机的fence服务
[aaa@qq.com ~]$ systemctl start fence_virtd.service
测试
[aaa@qq.com ~]# clusvcadm -e sql打开sql服务
Local machine trying to enable service:sql...Success
[aaa@qq.com ~]# clusvcadm -d sql关闭sql服务
Local machine disabling service:sql...Success
第四步:实现同步存储
关闭集群中所有的服务:
[aaa@qq.com ~]# clusvcadm -d sql
Local machine disabling service:sql...Success
[aaa@qq.com ~]# clusvcadm -d apache
Local machine disabling service:apache...Success
/dev/sda2 VolGroup lvm2 a-- 19.51g 0
开启clcmd服务
[aaa@qq.com ~]# /etc/init.d/clvmd status(查看状态)
[aaa@qq.com ~]# vim /etc/lvm/lvm.conf
462 locking_type = 3(当服务开启是类型是3)
[aaa@qq.com ~]# lvmconf --disable-cluster
[aaa@qq.com ~]# vim /etc/lvm/lvm.conf
462 locking_type = 1 (关闭是1)
[aaa@qq.com ~]# lvmconf --enable-cluster(打开服务)
创建逻辑卷
[aaa@qq.com ~]# fdisk -l
Disk /dev/sdb: 8589 MB, 8589934592 bytes
[aaa@qq.com ~]# fdisk -cu /dev/sdb(查看设备分区情况)
[aaa@qq.com ~]# pvcreate /dev/sdb(创建物理卷)
[aaa@qq.com ~]# vgcreate clustervg /dev/sdb(创建物理卷组)
[aaa@qq.com ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 19.51g 0
/dev/sdb clustervg lvm2 a-- 8.00g 8.00g
[aaa@qq.com ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 1 2 0 wz--n- 19.51g 0
clustervg 1 0 0 wz--nc 8.00g 8.00g
[aaa@qq.com ~]# lvcreate -L 4G -n demo clustervg(创建逻辑卷,如果创建逻辑卷不成功,查看集群中的两项服务是否关闭,设备是否挂载)
[aaa@qq.com ~]# mkfs.gfs2 -p lock_dlm -j 2 -t westos_ha:mygfs2 /dev/clustervg/demo(格式化)
[aaa@qq.com ~]# gfs2_tool sb /dev/clustervg/demo all(查看逻辑卷的所有信息)
此时在server2上也可查看到物理卷、物理卷组和逻辑卷。
测试:
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# chown mysql.mysql /var/lib/mysql/
[aaa@qq.com ~]# service mysqld start
server2挂载设备并在目录下创建文件。
[aaa@qq.com ~]# mount /dev/clustervg/demo /var/lib/mysql/
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql test
[aaa@qq.com mysql]# touch 1111
[aaa@qq.com mysql]# ls
1111 ibdata1 ib_logfile0 ib_logfile1 mysql test
在server2创建文件后,server1同步到文件。
而我们要使用HA实现同步存储,gfs2与集群中的文件系统dbdata冲突。因此移除dadata,先移去服务组中所加的dadata,在删除资源栏下的dadata.
[aaa@qq.com ~]# vim /etc/fstab (将挂载写入开机自动挂载)
UUID="6184a5e5-13f8-30c1-406d-19645100649f" /var/lib/mysql gfs2 _netdev 0 0
[aaa@qq.com ~]# mount -a(**挂载)
[aaa@qq.com ~]# df
/dev/mapper/clustervg-demo 4193856 286516 3907340 7% /var/lib/mysql
[aaa@qq.com ~]# gfs2_tool -h
[aaa@qq.com ~]# gfs2_tool journals /dev/clustervg/demo
journal1 - 128MB
journal0 - 128MB
2 journal(s) found.
server2
[aaa@qq.com ~]# umount /var/lib/mysql/
[aaa@qq.com ~]# vim /etc/fstab
UUID="6184a5e5-13f8-30c1-406d-19645100649f" /var/lib/mysql gfs2 _netdev 0 0
[aaa@qq.com ~]# mount -a
[aaa@qq.com ~]# df
/dev/mapper/clustervg-demo 4193856 286512 3907344 7% /var/lib/mysql
测试:
server1删除一个文件
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ls
1111 ibdata1 ib_logfile0 ib_logfile1 mysql test
[aaa@qq.com mysql]# rm -fr 1111
[aaa@qq.com mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql test
server1也没有了此文件
[aaa@qq.com ~]# cd /var/lib/mysql/
[aaa@qq.com mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql test
下一篇: asp.net 长文章通过设定的行数分页