- RHCS集群下ISCSI共享存储的部署
环境:
server1: ricci,luci, iscsi,mysql-server
server2:ricci,iscsi,mysql-server
server3:scsi 提供共享存储
真机: fence
快照server3,配置ip/主机名,检查yum源
server3:添加一块硬盘
yum install -y scsi-* 安装
vim /etc/tgt/targets.conf
<target iqn.2008-09.com.example:server.target1>
backing-store /dev/vda 共享设备的名字
</target>
/etc/init.d/tgtd start 开启iscsi服务
tgt-admin -s 查看共享磁盘
ps ax 看到两个tgtd的进程(只有两个为正确)
server1和server2:安装共享磁盘的客户端服务,发现/连接共享设备
yum install -y iscsi-* 安装iscsi客户端服务
iscsiadm -m discovery -t st -p 172.25.29.3 发现共享设备
iscsiadm -m node -l 激活共享设备
fdisk -l 查看本地设备中是否有共享设备,一般名字都为sdb
cat /proc/partitions
mkfs.ext4 /dev/sdb 格式化文件系统
- 使用ISCSI共享设备作为mysql数据库的存储文件
server1 & server2:
yum install -y mysql-server
fdisk -cu /dev/sdb 分区
ll -d /var/lib/mysql/ 查看权限是root,因为这是mysql软件运行存放数据的,所以改回mysql
mount /dev/sdb /var/lib/mysql/ 将刚才格式化的设备挂载到mysql的数据目录下
chown mysql.mysql /var/lib/mysql/
ll -d /var/lib/mysql/
umount /var/lib/mysql/ 取消挂载
图型化界面管理mysql
浏览器:
Failover Domains (失败回切域)
–>Add–>(设置优先级)
Resources
Add–>Add Script (添加启动脚本/etc/init.d/mysqld)& IP Address (添加VIP 172.25.29.200) &Filesystem (添加文件系统 ext4 /var/lib/mysql /dev/sdb)
Service Groups (添加服务组,在该服务组中添加资源)
–>Add --> Add Resource --> Add Child Resource–> Submit
cluster 查看集群状态
当server2中mysqld服务关闭,成功转移到server1中
当mysqld服务在server1上,restart apache 服务不会成功,因为服务组添加时选择了独占
停止mysqld服务在server1上,restart apache 服务成功,此时apache服务在server1上,mysqld服务在server2上
修改apache服务组Run Exclusive, 停止server2上的mysqld,apache和mysqld都会在server1上
clusvcadm -r mysqld -m server2 从server2上转出
clusvcadm -d mysqld 关闭
单点写入:
在server1上的mysql的数据目录/var/lib/mysql 下上传一个文件,在server2上查看是否能看得到。server2上是看不到的
- RHCS集群使用GFS2实现文件实时共享
GFS (Global File System)全局文件系统
GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS并不能孤立的存在,安装GFS需要RHCS的底层组件支持。
ext4文件系统不能多点写入
cman是集群管理服务
rgmanger是资源组管理服务
ricc是集权管理节点的基本服务
mod是联系RHCS集群前后端的服务
clvmd是集群的lvm
CMAN管理整个集群的进程
fence控制物理电源
/etc/init.d/clvmd status 确保在共享服务开启前集群逻辑卷这个存储服务是开启的
vim /etc/lvm/lvm.conf
locking_type = 3 查看共享设备模式是否为3,3表示使用内置集群锁
lvmconf --disable-cluster disable表示恢复默认模式1,1表示使用本地文件锁
lvmconf --enable-cluster enable表示开启集群管理,变成模式3
pvcreate /dev/sdb 创建物理卷
pvs
vgcreate clustervg /dev/sdb 创建物理卷组
vgs
lvcreate -L 4G -n demo cluster 创建逻辑卷
lvs
mkfs.ext4 /dev/clustervg/demo
mount /dev/clustervg/demo /var/lib/mysql
ll -d /var/lib/mysql
chown mysql.mysql /var/lib/mysql 需要重新修改权限
ll -d /var/lib/mysql
umount /var/lib/mysql
df -h
mkfs.gfs2 -p lock_dlm -j 2 -t emp_ha:mygfs /dev/clustervg/demo 以gfs2格式将它格式化
-t 集群名称 -p 使用集群锁 -j 指定节点个数
mount /dev/clustervg/demo /var/lib/mysql
ll -d /var/lib/mysql
chown mysql.mysql /var/lib/mysql 需要重新修改权限
blkid 查看本地的设备信息
gfs2_tool
gfs2_tool sb /dev/clustervg/demo all
测试,可以看到实现了文件的实时共享
浏览器:
将ext4文件系统替换为gfs2:在资源组中删除之前添加的ext4文件系统,资源中同样删除文件系统db。资源中添加gfs2,资源组mysqld中添加gfs2
Resources
–>Add -->Add Script (添加启动脚本/etc/init.d/mysqld)& IP Address (添加VIP 172.25.29.200) &Filesystem (添加文件系统 gfs2 /var/lib/mysql /dev/mapper/clustervg-demo )
mysqld资源组点击运行,然后在命令行中进行测试,可以看到server1和server2实现了文件同时共享
总结:
实现集群当中的所有节点使用同一块共享磁盘来存放数据,并且数据在集群中各个节点之间的数据同步