Linux学习19-moosefs部署与SBD共享磁盘
moosefs
简介
MooseFS 是一个分布式网络文件系统
它的核心设计思路是:
Master Server:管理整个集群的元数据(文件名、目录结构、文件分布在哪些 chunkserver上),常驻内存
Chunkserver:实际存储数据块的节点,数据被切分成固定大小的 chunk(默认 64MB),可以设置多个副本分散存储在不同 chunkserver 上
Metalogger:备份 Master 的元数据变更日志,Master 挂了可以用它恢复
Client:通过 FUSE 挂载 MooseFS 到本地目录,像访问普通文件系统一样读写
作用:把多台普通服务器的硬盘"拼"成一个超大容量的统一文件系统,同时提供高可用(多副本)和横向扩展能力
部署
新建四台rocy9虚拟机
四台虚拟机先配置yum源,sever1下载master,sever2下载chunkservers,sever3下载chunkserver和metalogger,sever4下载client
sever1启动master和cgi,sever2启动chunkserver,浏览器访问sever1的9425端口
sever2和sever3创建文件夹,提升权限
浏览器刷新页面
sever4
sever3启动metalogger
sever4上启动副本保护
先在sever1上分配通用标签
重新加载配置
sever4查看
这里如果出现挂载错误,之后虚拟机会无法启动,需要进入单用户模式注释掉新增的磁盘,重新启动
还可以添加标签
出现标签
整理了一份MooseFS常用命令速查手册
https://www.kdocs.cn/l/cpp5bQ7fVghU
与pacemaker高可用结合
新建sever5,作为chunkserver,sever1与sever5做好免密
可参照之前pacemaker的部署进行
sever1与sever5同步执行
先启用高可用仓库
下载
启动服务
写入密码
授权
设置
启动
设置开机自启
查看状态
若出现以下报错
执行该命令
设置策略
配置虚拟ip资源
查看
修改注释,每个sever
sever4新增一块磁盘
重新启动后下载
启动,设置开机自启
进入命令行
用新创建的磁盘创建一个 block backstore
查看
回到sever1,查找iscsi下载包
下载,sever5也需要下载
回到sever4,成功创建了一个 iSCSI Target(目标端),存储服务器现在有了一个对外提供存储服务的"入口"
查看
把刚才准备好的硬盘(my_disk / /dev/sdb)正式绑定(绑定为 LUN 0)
创建ACL指定可访问主机
退出
在sever1上编辑白名单,复制到sever5
重启使白名单生效,发起发现发现请求,返回结果与在sever4上设置的相同
sever5也成功
实现自动故障转移
sever1,挂载
复制文件
停止挂载
将硬盘分区挂载到 MooseFS 的数据存储目录
确保master状态正常
停止服务
停止挂载
sever5下载
启动服务
查看状态正常后关闭服务
创建资源
查看
创建 Pacemaker 资源来管理 MooseFS 的 Master 服务
查看(这里不正确,VIP,mfsdata,mfsmaster应该在同一个sever)
打包为资源组
查看(笔者中间把挂载的硬盘的名字搞错了,重新修改了一下)
SBD 共享磁盘隔离防脑裂
简介
SBD 全称 STONITH Block Device(也叫 STONITH 块设备),是 Linux HA 集群(Pacemaker/Corosync)中实现 Fencing(隔离) 机制的一种手段
Fencing 的作用就是:在接管之前,先把"疑似故障"的节点彻干掉重启或关机,确保停止后才能接管资源
部署
新建磁盘
这里注意需要mfsdata和sbd使用不同的盘
先关闭sever1,sever5,打开windows命令行
查看虚拟机存放目录
切入
新建文件夹(只需sever1)
创建一个1GB的磁盘作为共享
修改文件(sever1,sever5都需要)
末尾添加
虚拟机sever1,5启动
可能会报错,进入单用户模式禁用iscsi开机自启
进入后禁用iscsi,查看磁盘,出现共享
如果sever5没有出现新建的硬盘,直接去虚拟机添加新磁盘,使用已有磁盘
使用新建的磁盘
保存现有格式,添加
重新启动,成功添加
确保集群状态正常(iscsi需要启动才能挂载)
sbd配置
sever1,5安装sbd组件
加载且验证,出现/dev/watchdog即为成功
获取SBD磁盘持久by‑id路径,例如scsi-36000c29xxxxxxx(确保为新建盘的id,下文有查看方式)
仅在其中一个节点执行create初始化SBD头部
校验SBD头部信息,正常会输出header版本、timeout参数
启用 SBD stonith 隔离
pcs 一键配置 fence_sbd
先查看新建的盘的id
手动创建 stonith 资源
pcs stonith create sbd-fence fence_sbd \
devices="/dev/disk/by-id/scsi-36000c29xxxxxxx" \
op monitor interval=30s timeout=20s \
op start timeout=20s \
op stop timeout=20s
查看stonith配置
激活fence
最后重启
