mfs github地址:https://github.com/moosefs/moosefs
一. 准备
1. 名字解释
- Mfsmaster 元数据
- Metalogger 元数据备份,用于恢复数据(和master安装在不同的假期)
- ChunkServer 数据存储
- mfscgiserv 监控服务
- Client 挂载
2. 部署环境
172.16.20.71 Mfsmaster ChunkServer mfscgiserv Client
172.16.20.72 Metalogger ChunkServer Client
172.16.20.72 ChunkServer Client
安装用户:root
3. 关闭防火墙
service firewalld stop
4. 配置master主机地址
三台机器都进行配置
vim /etc/hosts
172.16.20.71 mfsmaster
5.添加用户
useradd -s /sbin/nologin -M mfs
二. 安装
1. 下载源码包并安装
- 进入到github https://github.com/moosefs/moosefs
-
根据自己的需求下载相应的版本
# 安装依赖
yum install gcc make libpcap-devel zlib-devel fuse-devel pkgconfig fuse -y
cd /usr/local/src
# 下载
wget https://github.com/moosefs/moosefs/archive/master.zip
# 将下载的源码包传到其他两台机器, 解压编译安装
unzip master.zip
cd moosefs-master
# 编译安装
sh linux_build.sh && make install
2. 启动不同的服务
2.1 安装master
#71 安装mfsmaster
cd /etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
#初始化元数据
cd /var/lib/mfs
cp metadata.mfs.empty metadata.mfs
chown mfs:mfs metadata.mfs
rm metadata.mfs.empty
启动 : mfsmaster start
停止 :mfsmaster stop
2.2 安装metalogger
# 72 执行
cd /etc/mfs
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
启动:mfsmetalogger start
停止:mfsmetalogger stop
2.3 安装chunckserver(三台机器安装, 可以根据自己的情况进行配置, 三台都安装就是将实际数据储存到三台机器)
cd /etc/mfs
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
- 修改配置文件vim mfshdd.cfg
可以自己选择一个自己的目录
# use hard drive '/mnt/hd1' with default options:
#/mnt/hd1
# 我这里将数据存储到/mfs目录下, 分配10Gb空间, 可以根据实际情况自己进行配置
/mfs 10GiB
- 创建目录
mkdir /mfs
chown -R mfs:mfs /mfs
chmod 770 /mfs
启动:mfschunkserver start
停止:mfschunkserver stop
修改配置支持平滑加载: mfschunkserver reload
2.4 挂载client
根据实际需要, 在不同的主机挂载客户端
#挂载mfs客户端到/data目录下
mkdir -p /data
mfsmount /data -H mfsmaster
df -h 查看
mount 查看
# 测试
cd /data
touch 1.log
在其他机器/data目录查看文件是否创建成功
#卸载mfs客户端
umount /data
2.5 启动监控
- 71执行
mfscgiserv start - 浏览器访问
http://172.16.20.71:9425
三. 集群维护
1. 启动MFS集群
安全的启动MooseFS 集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤:
启动mfsmaster 进程
- 启动所有的mfschunkserver 进程
- 启动mfsmetalogger 进程(如果配置了mfsmetalogger)
- 当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接被export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。
2.停止MFS集群
安全的停止MooseFS 集群:
- 在所有的客户端卸载MooseFS 文件系统(用umount 命令或者是其它等效的命令)
- 用mfschunkserver stop 命令停止chunkserver 进程
- 用mfsmetalogger stop 命令停止metalogger 进程
- 用mfsmaster stop 命令停止master 进程
3. 可能出现的问题
chunckserver 启动后,并未真正连接到集群
/var/log/message 报错 MATOCS_MASTER_ACK - wrong meta data id. Can't connect to master
当前机器作为另一个mfs 集群的chunkserver
操作:
1. 停止 chunckserver
1. 清理 /var/lib/mfs
2. 清理 挂载目录下的 .metaid
3. 启动 chunkserver:句柄数不够
修改文件数限制
4. MFS副本
- 设置副本
mfssetgoal -r 2 /mnt/mfs - MFS查看文件夹下的副本
mfsgetgoal -r /mnt/mfs