RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)

续上篇

一.iscsi共享磁盘(挂载在数据库的数据目录中)

首先两台主机关闭apache服务(也可以直接在网页中将其disabled)

clusvcadm -d apache

在server3中添加一个硬盘(大小为8G)

server3这台主机主要用来做存储:做共享存储,给server1和server2使用

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第1张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第2张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第3张图片

5.给集群附加存储设备
#1.再开一台虚拟机用来作iscsi共享存储,server3
server3上安装服务端:
yum install -y scsi-*

在这里插入图片描述
HA节点上安装客户端:
yum install -y iscsi-*
在这里插入图片描述

#2.配置存储(配置磁盘共享配置文件)
server3上:
vim /etc/tgt/targets.conf
38 
39     backing-store /dev/vda		##fdisk -l 查看
40 

在这里插入图片描述RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第4张图片

启动:
/etc/init.d/tgtd start

tgt-admin -s		##查看存储信息
ps ax			##看到有2个tgtd进程(此处学生有问题先看进程,如果有4个,就是错误的)

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第5张图片在这里插入图片描述

在HA节点上发现共享存储:
[root@server2 ~]# iscsiadm -m discovery -t st -p 172.25.0.3
Starting iscsid:                                           [  OK  ]
172.25.0.3:3260,1 iqn.2018-11.com.example:server.target1

[root@server2 ~]# iscsiadm -m node -l		##挂载存储

fdisk -cu /dev/sdb	##只分一个区,方便在分区表被破坏的时候恢复


查看磁盘分区,发现共享过来的硬盘,此时,在server3上是虚拟硬盘,但在server1共享过来之后,就是真实设备,所以是sdb

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第6张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第7张图片server2同样的操作
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第8张图片
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第9张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第10张图片
数据库的配置(客户端)

server1:

(1)安装数据库

 yum install -y mysql-server

在这里插入图片描述(2)将已经连接的共享过来的磁盘格式化,格式化为ext4类型(Exf4本地文件系统,写入不同步)

mkfs.ext4 /dev/sdb

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第11张图片(3)将数据库挂载在已经格式化的连接后的磁盘下

 mount /dev/sdb /var/lib/mysql/

(4)修改数据库目录所有者,因为默认为root,改为mysql数据库用户可以进行相应的操作实现共享

 ls -ld /var/lib/mysql/
chown mysql.mysql /var/lib/mysql/
 ls -ld /var/lib/mysql/

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第12张图片(5)启动数据库

 /etc/init.d/mysqld start

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第13张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第14张图片 server2(同server1):

(1)安装数据库

 yum install -y mysql-server

在这里插入图片描述

(2)格式化

  mkfs.ext4 /dev/sdb

在这里插入图片描述
(3)挂载数据库

 mount /dev/sdb /var/lib/mysql/

(4)修改数据库目录的所有者,开启数据库服务

ls -ld /var/lib/mysql/
 chown mysql.mysql /var/lib/mysql/
 ls -ld /var/lib/mysql/

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第15张图片
(5)启动数据库

/etc/init.d/mysqld start

RHCS集群模式下iscsi磁盘共享模式的添加
(1)故障转移域的添加

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第16张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第17张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第18张图片(2)添加iscsi共享磁盘的新的集群资源
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第19张图片添加文件系统
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第20张图片虚拟IP的添加
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第21张图片数据库启动脚本的添加
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第22张图片(3)创建服务组
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第23张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第24张图片(4)在服务组中添加已经所创建好的资源
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第25张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第26张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第27张图片5.测试
(1)刷新页面发现服务运行在server2上,发现server2上自动挂载共享的磁盘,因为设置的失败回切域server2的优先级比server1高,在server1上回切的时间只有5秒。
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第28张图片(2)在客户端的虚拟机上使用命令查看设备的使用情况
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第29张图片(3)在server1和server2俩个客户端分别删掉/var/libmysqld的数据库并关闭数据库服务,在次刷新页面。
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第30张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第31张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第32张图片

GFS2文件系统的简介

1.基本概念

RHCS通过GFS文件系统提供存储集群功能。

GFS(Global FileSyatem)允许多个服务同时去使用一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中,从而消除了同步数据的麻烦。

GFS通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。

2.gfs2与ext4文件系统的比较

ext4:不支持同步写入
gfs2:全局文件系统,支持DLM锁管理,支持并发写,适用于HA集群使用的共享存储适用于LB集群Realserver使用的共享存储

二.模拟rhcs高可用集群下的gfs文件系统的共享存储
server1上的部署
(1)查看支持该文件系统的clvmd集群逻辑卷服务是否开启

 /etc/init.d/clvmd status

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第33张图片(3)集群逻辑卷的配置文件的编辑,开启锁管理器
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第34张图片(4)创建ext4文件系统的lvm集群罗逻辑卷

查看iscsi共享的存储设备为/dev/sdb

 fdisk -l 
逻辑卷的创建

 pvcreate /dev/sdb
 vgcreate clustervg /dev/sdb
 vgs
 lvcreate -L 4G -n demo clustervg
 lvs

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第35张图片在这里插入图片描述
格式化文件系统为ext4类型

 mkfs.ext4 /dev/clustervg//demo 

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第36张图片
挂载所创建的逻辑卷

 mount /dev/clustervg/demo /var/lib/mysql/
 df
 并创建文件

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第37张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第38张图片挂载之后再次建立文件
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第39张图片b.在另一个客户端2上查看的时候发现没有同步到在1上写入的数据
看不到新创建的文件RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第40张图片逻辑卷的扩展
a.关掉数据库服务

/etc/init.d/mysqld stop

卸载
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第41张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第42张图片创建gfs2文件系统的lvm集群逻辑卷
(1)格式化已经创建好的逻辑卷

 mkfs.gfs2 -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo

mkfs.gfs2 
 	-j #: 指定日志区域的个数,有几个就能够被几个节点所挂载; 
 	-J #: 指定日志区域的大小,默认为128MB; 
 	-p {lock_dlm|lock_nolock}:所使用的锁协议名称,集群需要使用lock_dlm; 
 	-t : 锁表的名称
 			   格式为clustername:fsname, 
 			   clustername为当前节点所在的集群的名称
 			   fsname文件系统名称,自定义,要在当前集群惟一,这也叫锁表名称,表明是分布式锁

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第43张图片(2)gfs2文件系统的工具及其安全上下文的查看
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第44张图片gfs2文件系统的挂载
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第45张图片
开启数据库

 /etc/init.d/mysqld start

gfs2文件系统的验证
server
在这里插入图片描述RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第46张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第47张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第48张图片发现在1上的数据已经同步到2上,即实现了gfs2文件系统的同步

在这里插入图片描述RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第49张图片RHCS集群系统下web界面的gfs2文件系统的导入

在上一篇博文中已经创建好了失败回切及其资源组,在资源组中先将ext4文件系统的资源删除,然后再重新添加gfs2文件系统

RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第50张图片在服务组中添加gfs2的资源
删除服务组:sql
重新添加服务组:
RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第51张图片RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入)_第52张图片

存储分享 iscsi:
	集群管理机:
	yum install scsi-target-utils.x86_64 0:1.0.24-10.el6 -y
	vim /etc/tgt/targets.conf
	
	    backing-store /dev/sdb
	    initiator-address 172.25.42.11
	    initiator-address 172.25.42.12
	
	/etc/init.d/tgtd start
	tgt-admin -s (查看分享情况)
	Backing store path: /dev/sdb (如出现此信息:分享成功)
	ACL information:(如没有ip认证 则此处为:all)
	        172.25.42.11
	        172.25.42.12
	集群主运行业务机器:
	yum install iscsi-initiator-utils.x86_64 0:6.2.0.873-10.el6 -y
	iscsiadm -m discovery -t st -p 172.25.42.10
	iscsiadm -m node -l
	fdisk -cu /dev/sdb (磁盘分区 (集群中其中一台虚拟机做就可以了))
	
	vim /etc/lvm/lvm.conf
	462  locking_type = 3
	[root@server2 html]# /etc/init.d/clvmd status
	clvmd (pid  1235) is running...
	Clustered Volume Groups: cluster_vg
	Active clustered Logical Volumes: demo
	
	//ext4是本地文件系统(不能同布)//
	 挂载:
	前提:/etc/init.d/clvmd status (is running)
	 locking_type = 3
	1.两台集群虚拟机
	dd2:
	    pvcreate /dev/sdb1
	    vgcreate dangdang /dev/sdb1
	    lvcreate -L 4G -n dd dangdang
	dd3:
	pvs
	  PV         VG       Fmt  Attr PSize  PFree
	  /dev/sda2  VolGroup lvm2 a--  19.51g    0 
	  /dev/sdb1           lvm2 a--   8.00g 8.00g
	
	vgs
	  VG       #PV #LV #SN Attr   VSize  VFree
	  VolGroup   1   2   0 wz--n- 19.51g    0 
	  dangdang   1   0   0 wz--nc  8.00g 8.00g
	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                                             
	  dd      dangdang -wi-a-----   4.00g
	
	dd2:
	  mkfs.ext4 /dev/dangdang/dd
	  mount /dev/dangdang/dd   /mnt (两台虚拟机同时挂载 eg:其中一台 在/mnt 里面cp /etc/passwd 如不卸载再挂载 则另一台机器上看不到 因为 ext4是本地文件系统(不能同步 (不支持同时写入)))
	 cd /mnt
	 vim index.html
	 umount /dev/dangdang/dd
	
	图形化操作:先加存储 再加服务
	设备、FS标签或UUID Device, FS Label, or UUID
	力卸载 Force Unmount
	使用快速状态检查 Use Quick Status Checks
	如果卸载失败,则重新引导主机节点 Reboot Host Node if Unmount Fails
	// clusvcadm -d apache (是关闭apache服务 两台机器上都没有这个服务了 告诉集群 我不用这个服务了 是集群的命令 与载web界面上操作是一样的)
	   clusvcadm -r apache -m dd3.example.com (把服务转移到dd3.example.com)
	   /etc/init.d/httpd stop (停掉虚拟机上的服务 测试用 系统停掉服务)
	
	多节点同时挂载写入(gfs2:共享文件系统)
	mkfs.gfs2 -p lock_dlm -j 2 -t westos_ha:mygfs2 /dev/dangdang/dd
	kfs.gfs2为gfs2文件系统创建工具,其一般常用的选项有:
	2
	-b BlockSize:指定文件系统块大小,最小为512,默认为4096;
	-J MegaBytes:指定gfs2日志区域大小,默认为128MB,最小值为8MB;
	-j Number:指定创建gfs2文件系统时所创建的日志区域个数,一般需要为每个挂载的客户端指定一个日志区域;
	-p LockProtoName:所使用的锁协议名称,通常为lock_dlm或lock_nolock之一;
	-t LockTableName:锁表名称,一般来说一个集群文件系统需一个锁表名以便让集群节点在施加文件锁时得悉其所关联到的集群文件系统,锁表名称为clustername:fsname,其中的clustername必须跟集群配置文件中的集群名称保持一致,因此,也仅有此集群内的节点可访问此集群文件系统;此外,同一个集群内,每个文件系统的名称必须惟一;
	
	测试:dd2: mount /dev/dangdang/dd  /mnt
	            cd /mnt
	            cp /etc/passwd
	       dd3: mount /dev/dangdang/dd  /mnt
	             
	3.vim /etc/fstab (两台都做)
	 /dev/dangdang/dd        /var/www/html     gfs2   _netdev(网络设备)  0  0
	mount -a
	删除管理网页 Service Group 里面的filesystem 再删除 Resources里面的 webdate
	4.clusvcadm -e apache
	
	挂载跟着服务走 不用自己挂载 服务也不用自己开
	
	
	
	gfs2_tool sb /dev/dangdang/dd all
	
	gfs2_tool journals /dev/dangdang/dd (有几个挂载点就有几份日志)
	
	gfs2_jadd -j 3 /dev/dangdang/dd
	
	支持扩大,也支持缩减,但缩减有风险 (底层是lvm)
	  lvextend -L +1G /dev/dangdang/dd (扩大磁盘空间)
	  gfs2_grow /dev/dangdang/dd (扩大文件系统)
	
	9.表名必须和集群名一样 (不是一个名字挂载不上去)
	 mkfs.gfs2 -p lock_dlm -j 3 -t westos_dd:mygfs2 /dev/dangdang/dd
	 gfs2_tool sb /dev/dangdang/dd table 集群名:mygfs2
	
	
	
	#演示
	dd if=/dev/sdb of=mbr bs=512 count=1	##备份mbr
	dd if=/dev/zero of=/dev/sdb bs=512 count=1	##破坏mbr
	'dd命令不经过文件系统,是从底层设备(bios)直接写入'
	
	重启之后,/proc/partitions下看不到刚分的sdb1
	mount /dev/sdb /mnt	##挂载会报错,因为分区表没了
	
	dd if=mbr of=/dev/sdb	##恢复mbr
	fdisk -cu /dev/sdb	##进去之后,再w保存退出,就可以正常挂载,也可以看到之前保存的内容

你可能感兴趣的:(RHCS高可用集群下的iscsi共享磁盘与GFS2全局文件系统(实现多点写入))