CentOS6基于RHCS集群(使用gfs2,clvmd解决SAN存储 “多节点”–“数据一致性问题及在线扩容问题”)

 每日运维   2019-01-14 17:39   4636 人阅读  0 条评论

CentOS6基于RHCS集群(使用gfs2,clvmd解决SAN存储 “多节点”–“数据一致性问题及在线扩容问题”)  第1张
规划,环境准备

(集群的node与管理节点都是centos6系列,这里是centos6.9,存储可以是其他的版本)

	主机名/角色	IP地址
	node1		192.168.1.41
	node2		192.168.1.42
	node3		192.168.1.43
	manage		192.168.1.44
	storage		192.168.1.40	#环境已经准备好啦,设备也共享出来了,此实验中不需要任何操作此机器,如何配置此参看https://boke.wsfnk.com/archives/349.html

配置RHCS群集

第一:根据规划,修改主机名,修改hosts文件
	vim /etc/hosts
	vim /etc/syscomfig/network第二:所有节点,关闭selinux和iptables

	chkconfig iptables off
	sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config第三:在manage管理节点上安装集群管理软件
	yum install luci -y
	chkconfig luci on
	service luci start	#启动luci后,会显示一个地址,我们这里是https://storage:8084/,通过浏览器对其访问,注意,登录的用户名是root,密码就是系统root的密码。第四:在node节点上安装RHCS集群包(ricci rgmanager cman)
	yum install ricci rgmanager cman -y第五:在node节点上启动ricci,rgmanager(cman可以先不启动,等集群创建成功并启动启动后,会自动启动)
	chkconfig ricci on
	chkconfig rgmanager on
	chkconfig cman on

	service ricci start
	service rgmanager start第六:在各个node节点上配置ricci用户的密码
	passwd ricci第七:访问集群管理节点,并创建集群
	https://192.168.1.44:8084

	Manage Clusters >> Create >> 填上节点的主机名,还有密码,其他的默认不填 >> 勾选Use Locally Installed Packages >> 勾选Enable Shared Storage Support 然后提交第八:验证,在各个node节点上运行clustat命令,就能看到节点在群集中的状态

	clustat[root@node1 ~]# clustatCluster Status for picture-cluster @ Fri Oct 13 18:37:40 2017Member Status: Quorate

 Member Name                  ID   Status
 ------ ----                  ---- ------
 node1                            1 Online, Local
 node2                            2 Online
 node3                            3 Online

	#可以看到各节点状态都是online,说明配置成功

创建gfs文件系统,并挂载使用,以解决数据一致性问题

第九:创建GFS集群文件系统,并启动clvmd	#在各个node节点上安装lvm2-cluster gfs2-util
	yum install lvm2-cluster gfs2-utils -y

	chkconfig clvmd on
	lvmconf --enable-cluster
	service clvmd start第十:在各个node节点上安装initiator端,并挂载storage端导出的共享设备
	yum install -y iscsi-initiator-utils
	iscsiadm --mode discovery --type sendtargets --portal 192.168.1.40	#发现设备[root@node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.40192.168.1.40:3260,1 iqn.1994-05.com.redhat:scst1

	iscsiadm -d2 -m node --login	#挂载设备

	应该加上iscsid的开机自动启动
	chkconfig iscsid on第十一:在一个节点上,对共享的那块磁盘,进行分区,创建lv
	fdisk /dev/sdb
		n
		p		1
		t			8e
		w

	pvcreate /dev/sdb1		#问题一:解决为何在第一个节点上第一次创建pv成功后,其他节点pvs不会显示pv状态,若是在第十步重启过所有的node节点系统,就不会出现这个问题
	vgcreate datavg /dev/sdb1

	lvcreate -n lvdata1 -L 1.5G datavg		#问题二:若是这一步提示error,可以尝试命令	clvmd -R第十二:格式化成gfs2文件系统
	#在其中的一个已经挂载共享磁盘的node节点执行就可以:
	mkfs.gfs2 -p lock_dlm -t cluster-A:wsfnk -j 2 /dev/datavg/lvdata1		-j #: 指定日志区域的个数,有几个就能够被几个节点所挂载; GFS分区中最多支持多少个节点同时挂载,通常设定值为节点数+1 
		-J #: 指定日志区域的大小,默认为128MB;  
		-p {lock_dlm|lock_nolock}:所使用的锁协议名称,集群需要使用lock_dlm;  
		-t <name>: 锁表的名称,格式为clustername:fsname, clustername为当前节点所在的集群的名称,这也是为什么要使用RHCS;fsname文件系统名称,自定义,要在当前集群惟一,这也叫锁表名称,表明是分布式锁的范围。第十三:在两个节点上分别挂载
	mount -t gfs2 /dev/datavg/lvdata1 /tmp

常见问题之,挂载数量限制与使用clvmd解决在线扩容问题

#问题一:解决挂载数量限制问题[root@node3 ~]# mount -t gfs2 /dev/datavg/lvdata1 /tmpToo many nodes mounting filesystem, no free journals[root@node2 tmp]# gfs2_tool journals /tmp	#在已经挂载好的node节点上查看一下,所挂载到的目录下的日志文件(发现只有两个,)journal1 - 128MBjournal0 - 128MB2 journal(s) found.

	解决方法:在任意node节点上
	gfs2_jadd -j 1 /dev/datavg/lvdata1		#后面是设备

	再次查看日志数量[root@node2 tmp]# gfs2_tool journals /tmp
journal2 - 128MBjournal1 - 128MBjournal0 - 128MB3 journal(s) found.
#问题二:在线扩展逻辑卷(在其中任何一个node节点上执行就行)
	先查看
		lvs[root@node1 tmp]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 28.31g                                                    
  lv_swap VolGroup -wi-ao----  3.20g                                                    
  lvdata1 datavg   -wi-ao----  1.50g

	扩展
		lvextend -L +300M /dev/datavg/lvdata1
		resize2fs /dev/datavg/lvdata1			#你会发现此命令报错,那是因为使用了gfs文件系统,这个命令不是管理gfs的,

	再次查看[root@node1 tmp]# lvs
  LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao---- 28.31g                                                    
  lv_swap VolGroup -wi-ao----  3.20g                                                    
  lvdata1 datavg   -wi-ao----  1.79g


	查看df挂载情况(发现还是没有变成1.79)[root@node1 tmp]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root                       28G  887M   26G   4% /
tmpfs                 939M   32M  908M   4% /dev/shm/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/datavg-lvdata1                      1.5G  388M  1.2G  26% /tmp

	需要同步gfs(此操作,只需要在其中任何一个节点执行就可以了,因为数据一致性问题已经解决了)
	gfs2_grow /dev/datavg/lvdata1	再次查看(发现,已经正常了)[root@node1 tmp]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root                       28G  887M   26G   4% /
tmpfs                 939M   32M  908M   4% /dev/shm/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/datavg-lvdata1                      1.8G  388M  1.4G  22% /tmp

注意:要先在node节点上卸载umount设备,node节点才能关机哦
扩展知识

	查看所挂载的目录属性
	gfs2_tool gettune /tmp[root@node2 tmp]# gfs2_tool gettune /tmp
incore_log_blocks = 8192log_flush_secs = 60quota_warn_period = 10quota_quantum = 60max_readahead = 262144complain_secs = 10statfs_slow = 0quota_simul_sync = 64statfs_quantum = 30quota_scale = 1.0000   (1, 1)new_files_jdata = 0		#最常用,设置是否立刻同步到磁盘的,一般设置为1,下面我们就来设置一下


	gfs2_tool settune /tmp new_files_jdata 1		#此操作针对单节点有效,想要都有效,需要都执行

	gfs2_tool gettune /tmp[root@node2 tmp]# gfs2_tool gettune /tmpincore_log_blocks = 8192log_flush_secs = 60quota_warn_period = 10quota_quantum = 60max_readahead = 262144complain_secs = 10statfs_slow = 0quota_simul_sync = 64statfs_quantum = 30quota_scale = 1.0000   (1, 1)new_files_jdata = 1


本文地址:https://linux365.cn/102.html
版权声明:本文为原创文章,版权归 每日运维 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?