MFS存储集群构建与日常维护

一、MFS构建

1)实验前准备

MFS存储集群构建与日常维护

按照拓扑配置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

启动成功后会显示当前监听的端口信息

MFS存储集群构建与日常维护

开启官方给到的一个监控页面

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目录下

MFS存储集群构建与日常维护

MFS存储集群构建与日常维护5)配置chunck_server【存储服务器】

安装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

MFS存储集群构建与日常维护

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

MFS存储集群构建与日常维护

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存储集群构建与日常维护


二、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.tx
t 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高可用性,当某个存储节点宕机不会造成业务中断

MFS存储集群构建与日常维护

当停止掉其中一台mfschunkserver服务器时,存储业务不受影响。

MFS存储集群构建与日常维护4)模拟master服务器宕机

当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   #恢复数据

MFS存储集群构建与日常维护

至此,实验结束!

往期推荐:








原文始发于微信公众号(青菜浪人):

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157682.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!