存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,经过FC交换机链接存储阵列和服务器主机,创建专用于数据存储的区域网络。SAN通过十多年历史的发展,已经至关成熟,成为业界的事实标准(但各个厂商的光纤交换技术不彻底相同,其服务器和SAN存储有兼容性的要求)。 |
规划,环境准备html
集群的node与管理节点都是centos6系列,这里是centos6.9,存储能够是其余的版本node
主机名/角色 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群集linux
第一:根据规划,修改主机名,修改hosts文件vim
vim /etc/hosts vim /etc/syscomfig/network
第二:全部节点,关闭selinux和iptablescentos
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能够先不启动,等集群建立成功并启动启动后,会自动启动)app
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 ~]# clustat Cluster Status for picture-cluster @ Fri Oct 13 18:37:40 2017 Member 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.40 192.168.1.40:3260,1 iqn.1994-05.com.redhat:scst1 iscsiadm -d2 -m node --login #挂载设备 应该加上iscsid的开机自动启动 chkconfig iscsid on
第十一:在一个节点上,对共享的那块磁盘,进行分区,建立lv
fdisk /dev/sdb 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 : 锁表的名称,格式为clustername:fsname, clustername为当前节点所在的集群的名称,这也是为何要使用RHCS;fsname文件系统名称,自定义,要在当前集群唯一,这也叫锁表名称,代表是分布式锁的范围。
第十三:在两个节点上分别挂载
mount -t gfs2 /dev/datavg/lvdata1 /tmp
常见问题之,挂载数量限制与使用clvmd解决在线扩容问题
问题一:解决挂载数量限制问题
[root@node3 ~]# mount -t gfs2 /dev/datavg/lvdata1 /tmp Too many nodes mounting filesystem, no free journals [root@node2 tmp]# gfs2_tool journals /tmp #在已经挂载好的node节点上查看一下,所挂载到的目录下的日志文件(发现只有两个,) journal1 - 128MB journal0 - 128MB 2 journal(s) found. 解决方法:在任意node节点上 gfs2_jadd -j 1 /dev/datavg/lvdata1 #后面是设备 再次查看日志数量 [root@node2 tmp]# gfs2_tool journals /tmp journal2 - 128MB journal1 - 128MB journal0 - 128MB 3 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 -h Filesystem 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 -h Filesystem 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 = 8192 log_flush_secs = 60 quota_warn_period = 10 quota_quantum = 60 max_readahead = 262144 complain_secs = 10 statfs_slow = 0 quota_simul_sync = 64 statfs_quantum = 30 quota_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 = 8192 log_flush_secs = 60 quota_warn_period = 10 quota_quantum = 60 max_readahead = 262144 complain_secs = 10 statfs_slow = 0 quota_simul_sync = 64 statfs_quantum = 30 quota_scale = 1.0000 (1, 1) new_files_jdata = 1