本篇继续讲解RHCS实现高可用中的存储共享
配置共享存储
生产环境中,多使用光纤或是交换机设备连接共享存储与集群,在此实验中,使用ISCSI。
一、环境配置:
打开server3,添加一块磁盘用来共享:
//成功后可以fdisk -l查看
配置server3(服务)端:
安装scsi-target(服务端软件)
//完成后修改配置文件 /etc/tgt/targets.conf'
<target iqn.2017-09.com.example:server.target1>
backing-store /dev/vdb
initiator-address 172.25.32.1
initiator-address 172.25.32.4
</target>
重新启动启动tgtd服务
tgt-admin -s //查看tgt的信息
......
Backing store path: /dev/vdb //里面有这个才是共享出去
ACL information:
172.25.32.1
172.25.32.4 //这里是指定可以用的ip,文件没写就是ALL
配置iscsi客户端(server1,server4):
安装iscsi
执行如下命令访问共享磁盘:
fdisk -l 出现以下信息为成功:
fdisk -cu /dev/sda创建一个类型为lvm逻辑卷的磁盘
然后就是对iscsi共享lvm逻辑卷的基本测试,包括挂载,扩容,这里因为基础篇都讲过,略过
两个需要注意的点:
*1、首先我们用的是ext4文件系统进行格式化,ext4是本地文件系统,所以存储的同步的文件显示需要另一台进行卸载再挂载的操作
*2、保证clvmd服务开启,要开启才可能同步,还需要软件lvm2-cluster的支持,这些在最开始选择Download都自动下载好了
此时查看文件 /etc/lvm/lvm.conf
//这里3的含义就是在集群中使用的
二、将文件系统共享添加再RHCS管理中:
1、首先在两台服务器上把刚刚开启的httpd服务关闭
clusvcadm -d apache //停掉apache
clusvcadm -e apache //开启apache
2、点击Resources,选择filesystem,添加相应的信息
//Device是刚刚创建的lvm
3、点击Service Groups,删除原来的添加,重新配置,这次的添加顺序是IP
Address —-> Filesystem —-> Script(因为服务开启的顺序就是先分配VIP,然后开启存储,然后再是服务)
*测试
重新开启一台的httpd服务,可以 df 发现刚刚选择的挂载目录/var/www/html 已经挂载,成功
并且如果刚刚在共享的磁盘中写入一个index.html文件,那么这时就直接访问的是存储中的网页文件,因为挂载在了httpd的默认发布页面,文件系统也只会看到这个文件并去读取
三、gfs2文件系统
刚刚因为说道ext4文件系统是本地的,而且需要另一台挂载卸载才能生效,所以一般都会使用集群化文件系统gfs2
1、首先介绍一下gfs2文件系统
gfs2(global file system 2):集群文件系统,可以让多个节点同时使用同一个文件系统,当一个节点使用时会借助DLM机制通过lock_dlm进行加锁,并通知给其他节点持有的锁信息
GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更切实的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统,例如EXT3、 EXT2所不能做到的。
2、操作方式
为了实现多个节点对于一个文件系统同时读写操作,GFS使用锁管理器来管理I/O操作,当一个写进程操作一个文件时,这个文件就被锁定,此时不允许其它进 程进行读写操作,直到这个写进程正常完成才释放锁,只有当锁被释放后,其它读写进程才能对这个文件进行操作,另外,当一个节点在GFS文件系统上修改数据 后,这种修改操作会通过RHCS底层通
信机制立即在其它节点上可见。
双组模式 , 立刻同步,相当于同时写入,所以比主备的使用率高,两边都在用
3、配置gfs2文件系统
软件支持:gfs2-utils.x86_64
1、将两台服务器的httpd服务停掉:clsvcadm -d apache
2、进入luci,点击Resources,将刚刚创建的webdata删除
3、下面点击Add,添加Gfs2的服务
4、Service Groups中顺序添加
这里,因为方式之前已经讲过,所以这里我们用另外一种方式,就是在两台服务器上面手动命令行添加。
文本方式添加
4、命令行手动添加GFS2文件系统
在搭建RHCS集群时,GFS一般作为共享存储,运行在每个节点上,并且可以通过RHCS管理工具对GFS进行配置和管理。
下面都是在server1,server4中执行,两台的操作相同
1、将webdata服务删除后,执行命令
//-j 节点数+1 用来作冗余
帮助 :mkfs.gfs2 -h 可以查看帮助,也可以 man mkfs.gfs2
2、设置开启自动挂载:
编辑文件/etc/fstab
//这里因为开机时,先启动的时配置文件存储肯定在服务之前,而ricci还未开启,所以无法挂载在集群,所以添加_netdev
//这里的UUID是用命令 blkid 中自己添加的分区的UUID
3、几个查看gfs2信息的命令
gfs2_tool sb /dev/clustervg/demo all //查看gfs2的信息
gfs2_tool journals /dev/clustervg/demo //查看gfs2的日至信息
//这三个是基本的,也就是df可以查看到的初始大小
gfs2_jadd -j 3 /dev/clustervg/demo //生成3个日至
//这时df大小就是重新日志总和了
这里顺便提一下du和df查看文件大小的不同。
du : 统计的是文件系统里面的,是在用户程序
df : 统计的是磁盘块,可以统计源数据,从超级块直接读取
4、测试
配置好之后,开启一台的apache,发现就自动挂载上了,并且,这时的操作就是,类似于httpd服务了,在那一台上使用,就可以直接把服务手动飘过去,然后在另一台上就直接实现同步并且可以访问了
同样的,这里仍然可以实现之前的fence故障转移的功能。
这里和之前的操作相同,就不再演示
四、RHCS的完整删除
- clusvcadm -d mysql_db ##如果有数据库,需要先停掉数据库
- umount 删除/etc/fstab ##卸载,删除开机自启
- lvremove vgremove pvremove ##将LVM删除
- stop iscsi ,iscsiadm -m node -o delete ##将共享删除,delete 会删除cluster.conf 文件
- chkconfig iscsi off ##将iscsi设置开机不自启
- /etc/init.d/tgtd stop chkconfig ##将scsi设置为开机不自启
- 在luci上:
- 先离开节点,点击"leave cluster" , 可通过/etc/init.d/cman status查看状态
- 然后删除集群
- chkconfig ricci modclusterd stop & off ##将服务设置开机不自启
- reboot ##重启服务器,系统还原为原来的纯净状态
来源:https://blog.csdn.net/vic_qxz/article/details/100120524