1、实验环境
server2 172.25.66.2(配置Nginx、ricci、luci)
server3 172.25.66.3(Apache)
server4 172.25.66.4 (Apache)
server5 172.25.66.5(配置Nginx、ricci)
二、共享存储iscsi
1、在server3上添加一块磁盘作为共享磁盘
2、在server2和server5上安装iscsi,并在server3中安装scsi服务端(共享磁盘所在处)
[root@server2 ~]# yum install -y iscsi-*
[root@server5 ~]# yum install -y iscsi-*
[root@server3 ~]# yum instal -y scsi-*
3、在server3上编辑iscsi配置文件,允许server2和server5发现并登录共享文件
[root@server3 ~]# vim /etc/tgt/targets.conf
41 <target iqn.2018-10.com.example:server.target1>
42 backing-store /dev/vdc
43 initiator-address 172.25.66.2
44 initiator-address 172.25.66.5
45 </target>
[root@server3 ~]# /etc/init.d/tgtd start
4、在server2和server5客户端发现server3上的共享设备并登录
[root@server2 ~]# iscsiadm -m discovery -t st -p 172.25.66.3
[root@server2 ~]# iscsiadm -m node -l
[root@server2 ~]# cd /var/lib/iscsi/nodes/
[root@server2 nodes]# ls
iqn.2018-10.com.example:server.target1
[root@server5 ~]# iscsiadm -m discovery -t st -p 172.25.66.3
[root@server5 ~]# iscsiadm -m node -l
5、在server2客户端制作LVM分区,在server4中同步
[root@server2 nodes]# pvcreate /dev/sda
[root@server2 nodes]# vgcreate cluster_vg /dev/sda
[root@server2 nodes]# lvcreate -L +4G -n demo cluster_vg
[root@server2 nodes]# mkfs.ext4 /dev/cluster_vg/demo #格式化为ext4文件系统
6、创建数据库
[root@server2 ~]# yum install mysql-server -y
[root@server1 ~]# chown mysql.mysql /var/lib/mysql/
[root@server5 ~]# yum install mysql-server -y
三、集群设置
1、将server3和server4上的httpd服务关闭
2、点击Resources,选择filesystem,添加相应的信息,点击submit
添加storage
添加脚本:
3、点击Service Groups,配置:IP Address —-> Filesystem —-> Script(因为服务开启的顺序就是先分配VIP,然后开启存储,然后再是服务),点击submit
依次添加三个资源:
4、查看集群结果
四、设置共享磁盘为gfs2格式
1、gfs2文件系统
gfs2:集群文件系统,可以让多个节点同时使用同一个文件系统,当一个节点使用时会借助DLM机制通过lock_dlm进行加锁,并通知给其他节点持有的锁信息
GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更切实的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统,例如EXT3、 EXT2所不能做到的。
ext4文件系统是本地文件系统,不能同时在多个地方挂载和进行写操作,容易造成数据的丢失和污染,为了解决这个问题,提出了共享文件系统gfs2
2、配置gfs2文件系统
- 在server2中对lvm作热拉伸,
[root@server5 ~]# lvextend -L +1020 /dev/cluster_vg/demo
[root@server5 ~]# resize2fs /dev/cluster_vg/demo
- 修改lvm文件系统为集群g2fs文件系统
[root@server2 ~]# clusvcadm -d sql
[root@server2 ~]# mkfs.gfs2 -p lock_dlm -t westos_JY:mygfs2 -j 3 /dev/cluster_vg/demo #-j 3 为文件系统中日志的数量加1;-p lock_dlm表示对共享存储进行操作时加锁;-t westos_JY:mygfs2 表示集群名称以及起的文件系统的名称;/dev/cluster_vg/demo 表示共享的磁盘区域
- 在server2上停掉mysql服务
[root@server2 ~]# clusvcadm -d sql
- 挂载,修改mysql目录的所有人和所有组,方便向目录中写文件
[root@server2 ~]# mount /dev/cluster_vg/demo /var/lib/mysql/
[root@server2 ~]# chown mysql.mysql /var/lib/mysql/
- 识别server2中的gfs2文件
[root@server2 ~]# gfs2_tool sb /dev/cluster_vg/demo all
- 在server2和server5中设置开机自动挂载
[root@server2 ~]# vim /etc/fstab
[root@server5 ~]# vim /etc/fstab
这里写入的UUID是用blkid命令查看出来的
- 测试:在server5中mysql目录下写东西,可以同步到server2的mysql目录下
[root@server5 ~]# cd /var/lib/mysql/
[root@server5 mysql]# cp /etc/passwd .
[root@server5 mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql passwd test
在实验中应该注意的是
(1)在ext4文件系统中,ext4是本地文件系统,所以存储的同步的文件显示需要另一台进行卸载再挂载的操作。
(2) 保证clvmd服务开启,要开启才可能同步,还需要软件lvm2-cluster的支持,这些在最开始选择Download(luci图形界面)都自动下载好了
(3)ext4文件系统是本地文件系统,不能同时在多个地方挂载和进行写操作,容易造成数据的丢失和污染,为了解决这个问题,提出了共享文件系统gfs2
我在实验中遇到的一个问题:
解决方法:原因是:在修改vim /etc/tgt/targets.conf时,把initiator-address没有写对,写对是这个的
五、RHCS的完整移除
[root@server5 mysql]# vim /etc/fstab #删除之前添加的UUID行
[root@server5 ~]# umount /var/lib/mysql/ #卸载
[root@server5 ~]# iscsiadm -m node -u #登出
[root@server5 ~]# iscsiadm -m node -o delete #删除node
[root@server5 ~]# /etc/init.d/iscsi restart
[root@server5 ~]# chkconfig modclusterd off
[root@server5 ~]# chkconfig --list modclusterd
modclusterd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server5 ~]# /etc/init.d/ricci stop
[root@server5 ~]# chkconfig ricci off
[root@server2 ~]# vim /etc/fstab #删除开机自启动
[root@server2 ~]# umount /var/lib/mysql/ #卸载
[root@server2 ~]# lvremove /dev/cluster_vg/demo #将lvm删除
[root@server2 ~]# vgremove cluster_vg#将lvm删除
[root@server2 ~]# pvremove /dev/sda #将lvm删除
[root@server2 ~]# iscsiadm -m node -u
[root@server2 ~]# chkconfig modclusterd off
[root@server2 ~]# chkconfig --list cman
cman 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server2 ~]# chkconfig --list rgmanager
rgmanager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server2 ~]# chkconfig --list modclusterd
modclusterd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server2 ~]# lvmconf --disable-cluster
[root@server2 ~]# chkconfig --list clvmd
clvmd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@server2 ~]# chkconfig ricci off #将ricci设置为开机不自启
[root@server2 ~]# chkconfig luci off #将luci设置为开机不自启
[root@server2 ~]# /etc/init.d/ricci stop
[root@server2 ~]# /etc/init.d/luci stop