一、MFS构建
1)实验前准备
按照拓扑配置linux服务器IP(这里不再赘述如果不知道如何配置网卡信息,请参考【】【】)
实验环境:
采用5台centos7虚拟机进行本次实验操作,如采用其他系统请注意系统命令区别。其中两台存储chunk-server需要单独添加一块硬盘用来做存储盘。
2)下载安装moosefs
下载地址:https://github.com/moosefs/moosefs/releases
安装moosefs所需要的依赖包
yum install gcc make libpcap-devel zlib-devel fuse3-devel pkgconfig
创建一个当前编译安装的用户(这样做的好处是可以增加系统安全性)
useradd -s /sbin/nologin -M mfs #不允许远程用户,不创建家目录
解压下载的安装包
#下载源码包
https://github.com/moosefs/moosefs/archive/refs/tags/v3.0.117.tar.gz
#解压
tar -zxvf moosefs-3.0.117.tar.gz
编译安装时指定安装目录和用户以及用户组
#指定安装目录,并将目录内的所有文件和文件夹的所有者(用户和组)都设置为mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
#编译安装
make && make install
赋予文件夹权限
chown -R mfs.mfs /usr/local/mfs/
创建常用命令软链接到系统路径中,这样配置完就可以全局调用mfs命令了
ln -s /usr/local/mfs/bin/mfscli /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
赋予文件可执行权限
chmod a+x /usr/local/mfs/bin/mfscli
chmod a+x /usr/local/mfs/sbin/*
3)配置Master服务器
配置可访问的IP端
#需要将 mfsmaster.cfg.sample配置文件启用(文件内容默认即可,不需要修改)
cp mfsmaster.cfg.sample mfsmaster.cfg
#将mfsexports.cfg.sample 配置文件启用
cp mfsexports.cfg.sample mfsexports.cfg
#在文件底部添加允许访问的IP
vim mfsexports.cfg
#允许10.0网段以读写权限访问当前目录,并且是以root身份登录到系统
10.10.10.0/24 . rw,alldirs,maproot=0
切换至usr/local/mfs/var/mfs目录,其中存放的是持久化源数据信息
#启用源数据模板
cp metadata.mfs.empty metadata.mfs
#启动mfs服务
mfsmaster start
启动成功后会显示当前监听的端口信息
开启官方给到的一个监控页面
mfscgiserv #开启后在浏览器中输入master服务器地址加端口号9425直接访问即可
4)配置备份服务器
安装moosefs步骤参考第2步下载安装moosefs
启用 mfsmetalogger.cfg.sample 配置文件
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
修改配置文件,设置主服务器与备份时间
vim mfsmetalogger.cfg
MASTER_HOST = 10.10.10.11 #指定主服务器地址
META_DOWNLOAD_FREQ = 2 #默认为24小时,这里修改为2小时
启动备份服务器
mfsmetalogger start
#查看是否启动成功
lsof -i :9419
如图所示,10.10.10.12已经连接到了10.10.10.11的9419端口,并且源数据自动备份到var/mfs目录下
安装moosefs步骤参考第2步下载安装moosefs
给新安装的磁盘进行分区使其能够正常使用
#查看新磁盘名称
fdsik -l
#分区
fdisk /dev/sdb
#输入n创建分区,p设置为主分区,分区号为1,不划分大小直接回车表示使用整块磁盘。最后输入w保存
#格式化分区为ext4格式
mkfs.ext4 /dev/sdb1
创建磁盘挂载目录
mkdir /mnt/mfs
#赋予权限
chown -R mfs:mfs /mnt/mfs #递归赋予目录权限
挂载磁盘到新创建的目录下
#使用fdisk -l命令查看新格式化的磁盘
mount -t ext4 /dev/sdb1 /mnt/mfs #挂载磁盘到mfs目录中
#刷新目录权限
chown -R mfs:mfs /mnt/mfs
启用 mfschunkserver.cfg 配置文件
#切换至mfs的安装目录下启mfschunkserver.cfg配置文件
cd /usr/local/mfs/etc/mfs #根据自己的安装目录来
cp mfschunkserver.cfg.sample mfschunkserver.cfg
修改配置文件,添加Master服务器地址
MASTER_HOST = 10.10.10.11
MASTER_PORT = 9420 #修改端口,这里我使用默认的端口号
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg #这里是指定该配置文件以什么方式提供存储能力
启用mfshdd.cfg配置文件
cp mfshdd.cfg.sample mfshdd.cfg
#修改配置文件,添加存储规则
vim mfshdd.cfg
#在配置文件的最后一行添加挂载的磁盘目录启动即可
/mnt/mfs
查看是否可用,登录master服务器监控平台10.10.10.11:9425
6)配置客户端
安装客户端相关依赖以及fuse文件系统
yum install fuse fuse-devel fuse-libs
解压下载的安装包
#下载源码包
https://github.com/moosefs/moosefs/archive/refs/tags/v3.0.117.tar.gz
#解压
tar -zxvf moosefs-3.0.117.tar.gz
编译安装时指定安装目录和用户以及用户组
#指定安装目录,并将目录内的所有文件和文件夹的所有者(用户和组)都设置为mfs.并且指定它不是master服务器和chunckserver
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver
#编译安装
make && make install
绑定目录权限
chown -R mfs.mfs /usr/local/mfs/
创建软链接,使mfs可以在全局任意地方执行命令
ln -s /usr/local/mfs/bin/mfscli /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
挂载存储服务器到客户端
mfsmount /mnt/mfs/ -H 10.10.10.11
在挂载目录中写入文件,查看该文件在哪个存储节点中
mfstools mfsfileinfo 1.txt
7)动态添加存储服务器chunck_server2
给新加载的磁盘分区并格式化为ext4格式
#磁盘分区
fdisk -l #查看新插入的磁盘
fdisk /dev/sdb #给该磁盘创建分区
#格式化为ext4格式
mkfs.ext4 /dev/sdb1
给与挂载分区权限
#挂在分区到mnt目录下
mount -t ext4 /dev/sdb1 /mnt/mfs
chown -R mfs.mfs /mnt/mfs
后续配置与第五步 5)配置chunck_server 方法一致这里不再赘述。
再次在监控程序中查看,发现已经成功添加新存储设备。【扩容方便】
二、MFS日常维护操作
(1)MFS的垃圾回收机制
删除文件后可在指定时间段内进行恢复操作
mkdir /mfsback #创建一个挂载回收站的目录
mfsmount -m [挂载的回收站目录] -H [Master服务器IP]
#使用tree命令列出回收站trash中的所有文件夹和子文件
tree . >>/root/1.txt #将树目录写入到1.txt文件中。
误删除文件还原
#在树目录中找到删除的文件名,使用mv移动到trash中的undel目录下即可完成恢复
mv trash/006/00000006|2.txt trash/undel/
注:不是所有文件都可以恢复,默认的文件误删除时间为86400秒,超过这个时间未执行恢复操作文件就会被立即删除。
#查看文件误删除时间
mfsgettrashtime 2.txt
#修改文件误删除时间
mfssettrashtime 【要设置的时间,最低为3600秒,不能比3600秒更低】
(2)快照创建功能
#必须在本存储节点内才可以创建快照,它不会占用两份磁盘空间类似于软链接 【ln -s】
mfsmakesnapshot 1.txt bak/
(3)gloab设置
当某个文件不需要同时存储在多个服务器上时,可以通过修改文件的goal值来实现,以此来避免不必要的存储空间浪费
#设置为1只存储在一台服务器上
mfssetgoal 1 3.txt
#需要存储在多台修改参数即可
mfssetgoal 2 3.txt
MFS高可用性,当某个存储节点宕机不会造成业务中断
当停止掉其中一台mfschunkserver服务器时,存储业务不受影响。
当master服务器宕机后,在mfslog备份节点中找到备份源数据,拷贝至新的mster设备中即可成功恢复数据。
mfsmaster stop #停止master服务器
#在/usr/local/mfs/var/mfs删除源数据
进入备份服务器的mfs源数据目录下进行复制
scp * root@10.10.10.11:/usr/local/mfs/var/mfs/
在master服务器上恢复数据
mfsmaster -a #恢复数据
至此,实验结束!
往期推荐:
原文始发于微信公众号(青菜浪人):
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157682.html