主机环境:rhel6.5 selinux and iptables disabled
主机名 | ip | 服务 |
---|---|---|
rhcs1 | 172.25.254.1 | ricci、luci、apache、iscsi |
rhcs2 | 172.25.254.2 | ricci、apache、iscsi |
rhcs3 | 172.25.254.3 | scsi |
物理机 | 172.25.254.73 | fence |
共享存储搭建步骤(单点挂载):
1.新建一个虚拟机,添加一个虚拟硬盘;
[root@rhcs3 ~]# fdisk -l
2.在服务端安装软件(yum源必须高级)
[root@rhcs3 ~]# yum install scsi-* -y
3.在文件里配置共享策略,开启服务,查看
[root@rhcs3 ~]# vim /etc/tgt/targets.conf
38 <target iqn.2019-04.com.example:server.target1>
39 backing-store /dev/vda
40 </target>
[root@rhcs3 ~]# /etc/init.d/tgtd start
[root@rhcs3 ~]# tgt-admin -s
[root@rhcs3 ~]# ps ax
注意:只能有这两个tgtd进程,否则不成功
4.在客户端安装iscsi软件,并查看服务端共享出来的存储
[root@rhcs1 ~]# yum install iscsi-* -y
[root@rhcs1 ~]# iscsiadm -m discovery -t st -p 172.25.254.3
[root@rhcs2 ~]# yum install iscsi-* -y
[root@rhcs2 ~]# iscsiadm -m discovery -t st -p 172.25.254.3
5.在服务端继续添加共享策略,只允许执行的服务器进行访问
[root@rhcs3 ~]# vim /etc/tgt/targets.conf
38 <target iqn.2019-04.com.example:server.target1>
39 backing-store /dev/vda
40 initiator-address 172.25.254.1
41 initiator-address 172.25.254.2
42 </target>
[root@rhcs3 ~]# /etc/init.d/tgtd restart
6.在客户端重新发现存储
7.激活存储
[root@rhcs1 ~]# iscsiadm -m node -l
[root@rhcs1 ~]# fdisk -l
[root@rhcs2 ~]# iscsiadm -m node -l
[root@rhcs2 ~]# fdisk -l
8.确定共享信息
[root@rhcs1 ~]# vim /etc/lvm/lvm.conf
9.查看clvmd状态,划分区(只需要在一台上操作)
[root@rhcs1 ~]# /etc/init.d/clvmd status
[root@rhcs1 ~]# fdisk -cu /dev/sdb
n,1,p,t,8e,wq,
[root@rhcs1 ~]# partprobe
[root@rhcs1 ~]# fdisk -l
[root@rhcs2 ~]# fdisk -l
[root@rhcs2 ~]# fdisk -cu /dev/sdb
p,wq
[root@rhcs2 ~]# partprobe
10.创建组
[root@rhcs2 ~]# pvcreate /dev/sdb1
dev_is_mpath: failed to get device for 8:17
Physical volume "/dev/sdb1" successfully created
[root@rhcs2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 19.51g 0
/dev/sdb1 lvm2 a-- 20.00g 20.00g
[root@rhcs2 ~]# vgcreate dd /dev/sdb1
Clustered volume group "dd" successfully created
[root@rhcs2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 1 2 0 wz--n- 19.51g 0
dd 1 0 0 wz--nc 20.00g 20.00g
[root@rhcs2 ~]# lvcreate -L 4G -n cc dd
Logical volume "cc" created
[root@rhcs2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv_root VolGroup -wi-ao---- 18.54g
lv_swap VolGroup -wi-ao---- 992.00m
cc dd -wi-a----- 4.00g
11.对创建出来的设备进行格式化
[root@rhcs1 ~]# mkfs.ext4 /dev/dd/cc
12.在一台上进行挂载,写入一个html发布页
注意:
当格式化之后两台同时进行挂载的时候,在其中一台写入东西(正常看见),另一台可以看见(看以看见但有报错,不能进行删除);当在写入的一端进行删除后,另一端仍可以看见,在进行卸载后再挂载才能消失
13.将apache服务组件资源停掉
[root@rhcs2 ~]# clusvcadm -d apache
14.添加新的集群资源
01.添加文件系统
15.创建新的资源组(此处同是httpd,所以将以前的修改)
先ip后挂载再httpd服务
16.开启apache组资源,查看(对应的设置会在apache开启的服务器上生效)
测试:
将apache服务迁移(因为有存储,所以不能进行爆头;因为客户端用的是一块存储)
[root@rhcs1 ~]# clusvcadm -r apache -m rhcs2
Trying to relocate service:apache to rhcs2...Success
service:apache is now running on rhcs2
集群存储(多点挂载):
RedhatGFS:
GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更切实的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统不能实现的。
为了实现多个节点对于一个文件系统同时读写操作,GFS使用锁管理器来管理I/O操作,当一个写进程操作一个文件时,这个文件就被锁定,此时不允许其它进程进行读写操作直到这个写进程正常完成才释放锁,有当锁被释放后,其它读写进程才能对这个文件进行操作,另外,当一个节点在GFS文件系统上修改数据后,这种修改操作会通过RHCS底层通信机制立即在其它节点上可见。
在搭建RHCS集群时,GFS一般作为共享存储,运行在每个节点上,并且可以通过RHCS管理工具对GFS进行配置和管理。这些需要说明的是RHCS和GFS之间的关系,一般初学者很容易混淆这个概念:运行RHCS,GFS不是必须的,只有在需要共享存储时,才需要GFS支持,而搭建GFS集群文件系统,必须要有RHCS的底层支持,所以安装GFS文件系统的节点,必须安装RHCS组件。
搭建步骤:
1.将apache组件资源停掉(此时在2上所以停掉2的)
[root@rhcs2 ~]# clusvcadm -d apache
Local machine disabling service:apache...Success
2.格式化组设备,采用gfs2
mkfs.gfs2为gfs2文件系统创建工具,其一般常用的选项有:
-b BlockSize:指定文件系统块大小,最小为512,默认为4096;
-J MegaBytes:指定gfs2日志区域大小,默认为128MB,最小值为8MB;
-j Number:指定创建gfs2文件系统时所创建的日志区域个数,一般需要为每个挂载的客户端指定一个日志区域;
-p LockProtoName:所使用的锁协议名称,通常为lock_dlm或lock_nolock之一;
-t LockTableName:锁表名称,一般来说一个集群文件系统需一个锁表名以便让集群节点在施加文件锁时得悉其所关联到的集群文件系统,锁表名称为clustername:fsname,其中的clustername必须跟集群配置文件中的集群名称保持一致,因此,也仅有此集群内的节点可访问此集群文件系统;此外,同一个集群内,每个文件系统的名称必须惟一;
[root@rhcs1 ~]# mkfs.gfs2 -p lock_dlm -j 3 -t westos:mygfs2 /dev/dd/cc
3.测试多点挂载
4.将组设备分别永久挂载在/var/www/html下
[root@rhcs2 ~]# vim /etc/fstab
/dev/dd/cc /var/www/html gfs2 _netdev 0 0
[root@rhcs1 mnt]# vim /etc/fstab
/dev/dd/cc /var/www/html gfs2 _netdev 0 0
5.将已有的挂载进行卸载,重新激活挂载设备
6.进入挂载点,编写一个默认发布页
7.将资源组里的文件系统删除,再删除资源里的(注意顺序)
8.开启apache组资源
[root@rhcs2 ~]# clusvcadm -e apache
Local machine trying to enable service:apache...Success
service:apache is now running on rhcs2
测试:
将apache服务迁移到rhcs1上
[root@rhcs2 ~]# clusvcadm -r apache -m rhcs1
Trying to relocate service:apache to rhcs1...Success
service:apache is now running on rhcs1
####################################################################################
gfs2的相关操作
查看配置的gfs2的信息
[root@rhcs2 ~]# gfs2_tool sb /dev/dd/cc all
mh_magic = 0x01161970
mh_type = 1
mh_format = 100
sb_fs_format = 1801
sb_multihost_format = 1900
sb_bsize = 4096
sb_bsize_shift = 12
no_formal_ino = 2
no_addr = 23
no_formal_ino = 1
no_addr = 22
sb_lockproto = lock_dlm
sb_locktable = westos:mygfs2
uuid = fb8336ae-e410-33fb-5820-c610484037bc
查看保留的日志信息
[root@rhcs2 ~]# gfs2_tool journals /dev/dd/cc
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.
如果再添加3个挂载点,对应的需要增加3份日志信息
[root@rhcs2 ~]# gfs2_jadd -j 3 /dev/dd/cc
Filesystem: /var/www/html
Old Journals 3
New Journals 6
对设备进行扩容
[root@rhcs2 ~]# lvextend -L +1G /dev/dd/cc
注意:此时文件系统大小并没有改变,需要进行如下操作
[root@rhcs2 ~]# gfs2_grow /dev/dd/cc