赞
踩
MFS:MooseFS
使用场景
需要准备:
三台虚拟机server1、2、3和本机的真实主机,server1负责master、server2、3负责数据存储,真实主机负责客户端client。
安装moosefs-master、moosefs-cgiserv
yum install -y moosefs-master-3.0.115-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.115-1.rhsystemd.x86_64.rpm
配置本地解析:
vim /etc/hsots
启动服务:
systemctl start moosefs-master
systemctl start moosefs-cgiserv.service
netstat -antlp
firefxo上查看图形mfs管理界面:
在server2安装mfs-chunkserver:
yum install -y moosefs-chunkserver.x86_64
修改配置文件,添加挂载目录:
cd /etc/mfs
vim mfshdd.cfg
/mnt/chunk1
创建挂载目录:
mkdir /mnt/chunk1
为虚拟机添加虚拟硬盘vdb
:
硬盘分区vdb1
:
格式化vdb1
:
将vdb1挂载到chunk1,并修改目录所有者:
添加master解析:
启动msf服务:
systemctl start moosefs-chunkserver
此时可以在matser
上看到server2
:
安装mfs-chunkserver:
yum install -y moosefs-chunkserver.x86_64
创建挂载目录:
mkdir /mnt/chunk2
chown mfs.mfs /mnt/chunk2/
修改配置文件,添加挂载目录:
cd /etc/mfs
vim mfshdd.cfg
/mnt/chunk2
添加master解析:
启动msf服务:
systemctl start moosefs-chunkserver
查看存储目录:
在master查看server3:
安装mfs-client:
yum install moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm -y
编辑配置文件,指向挂载目录:
cd /etc/mfs/
vim mfsmount.cfg
/mnt/mfs
配置解析:
vim /etc/hosts
创建mfs目录,挂载mfs:
mkdir /mnt/mfs
在server1查看端口指向:
在mfs
目录下创建 dir1 dir2
目录:
mkdir /mnt/mfs/dir1
mkdir /mnt/mfs/dir2
将dir1设定到mfs文件系统进行访问,获取副本数设定:
上传文件,查看文件信息:
将源数据挂载到客户端
mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta/
删除文件:
cd ../../mfs/dir1
ls
rm -fr passwd
恢复文件:
mv '00000004|dir1|passwd' undel/
pwd
cd /mnt/mfs/dir1
查看恢复文件:
原理:MFS可以根据chunk标签更改文件存储方式
在server4上创建chunk3,步骤同上。
编辑server2/3/4
主配,添加标签:
vim /etc/mfs/mfschunkserver.cfg
server2:LABELS = A S
server3:LABELS =A B H S
server4:LABELS = A H
systemctl reload moosefs-chunkserver.service
真机端:
需要在文件所在目录进行
mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 7 classABSH #需要在文件目录中进行
mfssetsclass -r classABSH fstab #将fstab转换存储为2A方式
mfsfileinfo fstab #查看文件fstab存储方式
在master查看存储策略:
热数据时期在AS,AS存放
温数据时期转存到在AS,BS
7天后转存至AH,BH
创建共享虚拟磁盘
安装iscsi:
yum install -y targetcli
systemctl start target
targetcli
配置共享:
安装iscis:
yum install -y iscsi-*
cd /etc/iscsi/
修改配置文件:
vim /etc/iscis/initiatorname.iscs
连接server3:
iscsiadm -m discovery -t st -p 172.25.3.3
iscsiadm -m node -l
此时可以查看共享磁盘:
创建分区,格式化并挂载:
fdisk /dev/sda
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
查看文件,并将master文件复制到iscsi的挂载目录中:
cd /var/lib/mfs/
ls
cp -p * /mnt/
cd /mnt/
ls
ll
chown mfs.mfs /mnt/ -R
umount /mnt/
安装mfs-master:
yum install -y moosefs-master.x86_64
安装iscsi相关:
yum install -y iscsi-*
设置连接配置:
vim /etc/iscis/initiatorname.iscs
连接server3:
iscsiadm -m discovery -t st -p 172.25.3.3
iscsiadm -m node -l
查看共享磁盘并挂载:
fdisk -l
mount /dev/sda1 /var/lib/mfs/
启动server2上master:
cd /var/lib/mfs/
ls
systemctl start moosefs-master
完成master备份
在挂载sda1
至server2
后,启动master会出现异常
启动失败,原因:master启动时,/var/lib/mfs/metadata.mfs必须存在,而启动后会变为metadata.mfs.back,需要将back文件恢复为mfs文件
修复文件
mfsmaster -a
在上一节基础上,安装高可用插件pacemarker实现MFS高可用,即双机热备。
设置集群操作前两个master关闭所有mfs服务并关闭开机自启
server1/2:
vim /etc/yum.repos.d/dvd.repo
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210712220045752.png?x-oss-process=image
/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMDAzODQ4,size_16,color_FFFFFF,t_70)
安装模块:
yum install -y pacemaker pcs psmisc policycoreutils-python
设置server1与server2免密登陆
ssh-keygen
ssh-copy-id server2
修改server1和server2均设定需要认证的用户和密码
echo westos | passwd --stdin hacluster
pcs认证:
pcs cluster auth server1 server2
设置server1和server2组成mycluster集群
pcs cluster setup --name mycluster server1 server2
设置启动及开启自启:
查看状态:
设定后警告取消
pcs property set stonith-enabled=false
添加vip模块
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.3.100 op monitor interval=30s
pcs status #查看状态
添加mfsdata模块
pcs resource create mfsdata ocf:heartbeat:Filesystem device="/dev/sda1" directory="/var/lib/mfs" fstype=xfs op monitor interval=30s
查看状态成功后,会按照状态提示挂载到某个master主机上,此处自动挂载到server1上
遇到问题:
启动master后,强制结束进程,master不能正常启动
原因是启动时,需要metadata.mfs 而启动后会改为metadata.mfs.back,强制结束进程无法恢复此文件。
所以需要修改启动脚本:
vim /usr/lib/systemd/system/moosefs-master.service
reload后启动master成功
添加mfsmaster模块:
查看pcs状态
发现vip、mfsdata、mfsmaster不在同一个主机中,
解决方案,创建mfsgroup 分组,将模块填入:
pcs resource group add mfsgroup vip mfsdata mfsmaster
修改所有server的解析
完成后client端查看文件dir2/fstab 和dir1/passwd
down掉server2
vip mfsdata mfsmaster均迁移到server1中
再次查看文件,没有受到影响
重启server2,没有影响,证明高可用实现
真实主机client客户端安装fence
yum install -y fence-virtd*
配置fence_virtd,需要根据提示设定,其中网络连接设定为本机的桥接br0
mkdir /etc/cluster/
fence_virtd -c
成功后配置写入文件/etc/fence_virt.conf
生成认证钥匙
dd if=/dev/urandom of=fence_xvm.key bs=128 count=1
启动服务,查看端口
systemctl restart fence_virtd.service #重启服务
netstat -anulp|grep :1229 #查看端口,为udp
创建cluster目录:
scp fence_xvm.key root@172.25.3.1:/etc/cluster
scp fence_xvm.key root@172.25.3.2:/etc/cluster
在配置好双机热备份的两个主机server1、2安装fence
yum install -y fence-virt.x86_64
ssh server2 yum install -y fence-virt.x86_64
查看fence安装的模块
创建fence_xvm 名为vmfence 建立主机名与domain name之间的映射
pcs stonith create vmfence fence_xvm pcmk_host_map="server1:vm1;server2:vm2" op monitor interval=60s
查看状态:
之前设定关闭的stonith现在打开,才可以使用fence
pcs property set stonith-enable==true
测试:
关闭网卡br0
ip link set down eth0
关闭网卡后
server1 会自动重启,master会转移至server2
故障排除:
关闭网卡后,server1 会自动重启,重启时,所有服务会跳到server2,等重启结束后,会跳回server1。
解决方法:
pcs resource defaults resource-stickiness=100
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。