RHCS套件提供了集群系统中三种集群构架,分别是高可用性集群
、负载均衡集群
、存储集群
。
今天了解一下存储集群:
一、环境
[1] 在server2添加一块磁盘作为共享磁盘
[2]. 在server1和server4中安装iscsi客户端:
yum install iscsi-* -y
[3]. 在server2安装scsi服务端(共享磁盘所在端):
yum install -y scsi-*
[4]. 在server2上编写iscsi的配置文件,允许server1和server4发现并登陆共享文件
vim /etc/tgt/targets.conf
/etc/init.d/tgtd start
[5]. 在server1和server4客户端发现server2上的共享设备并登陆
iscsiadm -m discovery -t st -p 172.25.254.2
iscsiadm -m node -l
fdisk -l
cat /proc/partitions
查看server1和server4是否同步
首先我们用的是ext4文件系统进行格式化,ext4是本地文件系统,所以存储的同步的文件显示需要另一台进行卸载再挂载的操作
[6]. 在server1 制作LVM分区,在server4端同步
pvcreate /dev/sda
vgcreate clustervg /dev/sda
lvcreate -L +4G -n demo clustervg
mkfs.ext4 /dev/clustervg/demo
server4 同步结果:
注意:
1、我们用的是ext4文件系统进行格式化,ext4是本地文件系统,所以存储的同步的文件显示需要另一台进行卸载再挂载的操作
同步server1的/mnt
2、保证clvmd服务开启,要开启才可能同步,还需要软件lvm2-cluster的支持,这些在最开始选择Download都自动下载好了
/etc/init.d/clvmd status
rpm -q lvm2-cluster
查看 /etc/lvm/lvm.conf
locking_type = 3 ##集群中使用
二、MYSQL服务在共享磁盘中的应用:
1、ext4文件系统:
[1]. 在serve1和server4端下载mysql-server
yum install mysql-server -y
[2]. 在server1中将LVM分区挂载在数据库的目录下
mount /dev/clustervg/demo /var/ib/mysql
df
[3]. 修改数据库目录的所属人和所属组(为了向这里边写入数据),并打开数据库服务,发现目录中有个文件mysql.sock
chown mysql.mysql /var/lib/mysql
ll -d /var/lib/mysql
[4]. 选择资源Resources,添加Filesystem,加入信息
添加Script,加入信息
[3]. 选择Service Groups,添加mysql服务,重新配置,顺序:IP Address — FileSystem — Script
因为服务开启的顺序就是先分配VIP,然后开启存储,然后再是服务
[4]. 查看server1和server4的提供服务状态
mysql 服务先在server4上(可以更改)
[5]. 在luci界面将提供mysql服务的节点换成server1,在server4上卸载LVM分区查看server4中mysql数据库。(注意mysql服务要为开启状态,下图中还未开服务)
服务切换到了server1上,在server1中的数据库中出现特殊文件
ext4文件系统是本地文件系统,不能同时在多个地方挂载和进行写操作,容易造成数据的丢失和污染,为了解决这个问题,我们介绍一下共享文件系统gfs2.
2、gfs2集群文件系统:
gfs2(global file system2):集群文件系统,可以让多个节点同时使用同一个文件系统,当一个节点使用时会借助DLM机制通过lock_dlm进行加锁,并通知给其他节点持有的锁信息
GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更切实的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统,例如EXT3、EXT2所不能做到的。
[1]. 在server1上停掉mysql服务
[2].remove之前ext4文件系统FileSystem
[3]. 在server1中将lvm挂载到到mysql默认目录,并拉伸其大小为8G,在server4中同步
server4也是8G
[4]. 在server1中对lvm做热拉伸,并用df -h查看拉伸的结果
[5]. 修改lvm文件系统为集群g2fs文件系统
lvremove /dev/clustervg/demo # 删除之前的lv
lvcreate -L 4G -n demo clustervg # 重新建立lv
mkfs.gfs2 -j 3 -p lock_dlm -t jay_mysql:mygfs2 /dev/clustervg/demo
# 修改文件系统为gfs2格式,并做相应配置
# -j 3 为文件系统中日志的数量加1
# -p lock_dlm表示对共享存储进行操作时,加锁
# -t jay_mysql:mygfs2 表示集群名称以及起的文件系统名称
# /dev/clustervg/demo 表示共享的磁盘区域
[6].在server4中识别server1中的gfs2文件系统
gfs2_tool sb /dev/clustervg/demo all
[7].在server1和server4中关闭mysqld,编写自动挂载文件/etc/fstabs并测试挂载情况
/etc/init.d/mysqld stop
mount -a
[8]. 在server1中启动高可用集群来管理mysql服务
[9]. 测试:在server1中mysql的目录下写东西,同步到server4的mysql目录下