MooseFS

Posted lyshark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MooseFS相关的知识,希望对你有一定的参考价值。

**************************************************************************************************
◆案例◆ 部署MooseFS分布式文件系统
**************************************************************************************************

=====================================================================================
实验环境

[主机类型] [主机IP] [主机作用]

Master-Server 192.168.22.195 主控服务器

MetaLogger-Server 192.168.22.191 备份服务器

Cunk-Server 192.168.22.192 存储节点1
Cunk-Server 192.168.22.193 存储节点2

Client 192.168.22.194 挂载客户端
=====================================================================================

****************************************************************************
◆Master-Server配置◆ <主控服务器>
****************************************************************************

1.服务器上的/etc/hosts中添加下面指向,指明主服务器IP

vim /etc/hosts

192.168.22.195 mfsmaster


2.源码编译安装Master-Server

yum install -y gcc zlib zlib-devel #安装依赖

groupadd mfs #创建用户组

useradd -M -s /sbin/nologin -g mfs mfs #创建用户并将其加入用户组

tar –xzvf moosefs-3.0.99.tar.gz

cd moosefs-3.0.99/

./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver \
--disable-mfsmount

--------------------------------------------------------------------------------------------------------------
参数解释
--prefix=/usr #指定主目录存放位置
--sysconfdir=/etc #指定配置文件存放位置
--localstatedir=/var/lib #存放二进制文件metadata和文本文件changelog
--with-default-user=mfs #指定用户
--with-default-group=mfs #指定组
--disable-mfschunkserver #关闭chunk-server
--disable-mfsmount #关闭挂载
--------------------------------------------------------------------------------------------------------------

make && make install


3.成功安装 Master 以后,系统会在/etc/mfs目录自动生成样例配置文件

修改生成配置文件
--------------------------------------------------------------------------------------------------------------
cd /etc/mfs/
cp -a mfsmaster.cfg.sample mfsmaster.cfg
cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
cp -a mfsexports.cfg.sample mfsexports.cfg

cd /var/lib/mfs
cp -a metadata.mfs.empty metadata.mfs
--------------------------------------------------------------------------------------------------------------

4.启动Master-Server服务和CGI 监控服务

/usr/sbin/mfsmaster start #启动Master-Server

/usr/sbin/mfscgiserv #启动监控服务


5.设置Mfsmaster和mfscgiserv进程开机自启动

echo "/usr/sbin/mfsmaster start" >> /etc/profile

echo "/usr/sbin/mfscgiserv" >> /etc/profile


6.现在我们来测试一下

http://192.168.22.195:9425 #查看是否启动成功


****************************************************************************
◆MetaLogger-Server配置◆ <备份服务器>
****************************************************************************

因为Metalogger server主要作用是主控服务器的备份
所以Metalogger server 的安装和master server的安装是一样的我们用以下命令


1.服务器上的/etc/hosts中添加下面指向,指向主服务器IP(可选/不指定则要做第3步)

vim /etc/hosts

192.168.22.195 mfsmaster


2.源码编译安装Masterlog-Server

yum install -y gcc zlib zlib-devel #安装依赖

groupadd mfs #创建用户组

useradd -M -s /sbin/nologin -g mfs mfs #创建用户并将其加入用户组

tar -xzvf moosefs-3.0.99.tar.gz

cd moosefs-3.0.99/

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib \
--with-default-user=mfs --with-default-group=mfs \
--disable-mfschunkserver --disable-mfsmount

--------------------------------------------------------------------------------------------------------------
参数解释
--prefix=/usr #指定主目录存放位置
--sysconfdir=/etc #指定配置文件存放位置
--localstatedir=/var/lib #存放二进制文件metadata和文本文件changelog
--with-default-user=mfs #指定用户
--with-default-group=mfs #指定组
--disable-mfschunkserver #关闭chunk-server
--disable-mfsmount #关闭挂载
--------------------------------------------------------------------------------------------------------------

make && make install


3.Masterlog-Server修改主配置文件,绑定主服务器IP

修改生成配置文件
--------------------------------------------------------------------------------------------------------------
cd /etc/mfs

cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
--------------------------------------------------------------------------------------------------------------

调整配置参数
--------------------------------------------------------------------------------------------------------------
vim /etc/mfs/mfsmetalogger.cfg

META_DOWNLOAD_FREQ = 2 #元数据备份文件下载请求频率(默认24小时)

MASTER_HOST = 192.168.22.195 #指定Master-Server地址(主控地址)
--------------------------------------------------------------------------------------------------------------

4.启动Metalogger server备用服务器进程

/usr/sbin/mfsmetalogger start


5.检查从服务器是否启动成功并同步了数据

cd /var/lib/mfs #查看是否有文件产生(产生了文件说明成功)

lsof -i :9419 #检查端口是否开启


6.设置Metalogger server进程开机自启动

echo "/usr/sbin/mfsmetalogger start" >> /etc/profile


****************************************************************************
◆Cunk-Server配置◆ <真正存储数据的节点,扩建它增加容量>
****************************************************************************

1.Cunk-server服务器上的/etc/hosts中添加下面指向,指明主服务器IP
(可选/不指定则要做第4步)

vim /etc/hosts

192.168.22.195 mfsmaster

2.源码编译安装Cunk-Server

yum install -y gcc zlib zlib-devel #安装依赖

groupadd mfs #创建用户组

useradd -M -s /sbin/nologin -g mfs mfs #创建用户并将其加入用户组

tar -xzvf moosefs-3.0.99.tar.gz

cd moosefs-3.0.99/

./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfsmaster

--------------------------------------------------------------------------------------------------------------
参数解释
--prefix=/usr #指定主目录存放位置
--sysconfdir=/etc #指定配置文件存放位置
--localstatedir=/var/lib #存放二进制文件metadata和文本文件changelog
--with-default-user=mfs #指定用户
--with-default-group=mfs #指定组
--disable-mfschunkserver #关闭chunk-server
--disable-mfsmount #关闭挂载
--------------------------------------------------------------------------------------------------------------

make && make install


3.重命名 Chunk-Server 服务所需的配置文件(开启配置文件)

--------------------------------------------------------------------------------------------------------------
cd /etc/mfs

cp -a mfschunkserver.cfg.sample mfschunkserver.cfg
cp -a mfshdd.cfg.sample mfshdd.cfg
--------------------------------------------------------------------------------------------------------------

4.修改Chunk-Server 配置文件,服务器地址

--------------------------------------------------------------------------------------------------------------
vim /etc/mfs/mfschunkserver.cfg

MASTER_HOST = 192.168.22.195 #指明Master-Server服务器地址

MASTER_PORT = 9420 #指明Master-Server端口

HDD_CONF_FILENAME = /etc/mfs/mfshdd.cfg #指明哪个配置文件来配置共享磁盘的

在配置文件 mfshdd.cfg 中我们给出了用于客户端挂接 MooseFS 分布式文件系统根分区所使用的共享空间位置.
建议在Chunk-Server上划分单独的空间给 MooseFS 使用,这样做的好处是便于管理剩余空间.此处我们假定要使用一个共享点/mnt/mfschunk(如果没有,请先创建共享点).
--------------------------------------------------------------------------------------------------------------

5.编辑/etc/mfs/mfshdd.cfg,在最后面添加下面的文本行
--------------------------------------------------------------------------------------------------------------
vim /etc/mfs/mfshdd.cfg

/mnt/mfschunk #Chunk-Server共享的目录
--------------------------------------------------------------------------------------------------------------
mkdir -p /mnt/mfschunk

chown -R mfs:mfs /mnt/mfschunk


6.启动 Cunk-Server 服务

/usr/sbin/mfschunkserver start


7.设置 Cunk-Server 开机自启动

echo "/usr/sbin/mfschunkserver start" >> /etc/profile

现在再通过浏览器访问 http://192.168.22.195:9425/
应该可以看见这个 MooseFS 系统的全部信息(包括主控 master和存储服务 chunkserver)
在Disks上可以看到我们的挂载/ghost目录了


****************************************************************************
◆Client客户端配置◆ <实际使用,例如:每台apache都挂载上>
****************************************************************************

1.在/etc/hosts中添加下面指向,指明主服务器IP(可选/不指定则要通过IP挂载)

vim /etc/hosts

192.168.22.195 mfsmaster


2.为了挂载基于MooseFS的文件系统,需要所有客户端安装FUSE包

tar -xzvf fuse-2.9.3.tar.gz

cd fuse-2.9.3/

./configure

make && make install


3.执行下面命令,不然编译mfsmount会报Fuse不存在的错

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH


4.编译安装客户端软件mfsmount

yum install -y gcc zlib zlib-devel #安装依赖

groupadd mfs #创建用户组

useradd -M -s /sbin/nologin -g mfs mfs #创建用户并将其加入用户组

tar -xzvf moosefs-3.0.99.tar.gz

cd moosefs-3.0.99/

./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfsmaster \
--disable-mfschunkserver

--------------------------------------------------------------------------------------------------------------
参数解释
--prefix=/usr #指定主目录存放位置
--sysconfdir=/etc #指定配置文件存放位置
--localstatedir=/var/lib #存放二进制文件metadata和文本文件changelog
--with-default-user=mfs #指定用户
--with-default-group=mfs #指定组
--disable-mfschunkserver #关闭chunk-server
--disable-mfsmount #关闭挂载
--------------------------------------------------------------------------------------------------------------

make && make install


5.假定客户端的挂接点是 /media,我们将以下面的指令来使用 MooseFS 分布式系统


/usr/bin/mfsmount/mfsmount /media -H mfsmaster #不指定挂接地址

/usr/bin/mfsmount/mfsmount /media -H 192.168.1.12 #挂接地址挂载(指定主存储IP)

#上面的解释,用/usr/bin/mfsmount将192.168.22.195的资源挂载到本地/media下

#挂载成功后,执行命令 df -h 查看分区情况


6.应该写入配置文件/etc/fstab或者/etc/profile开机自动挂载

echo "/usr/bin/mfsmount /media -H 192.168.22.195" >> /etc/profile


****************************************************************************
◆MooseFS分布式文件系统基础用法◆
****************************************************************************

1.数据误删除恢复操作,垃圾回收站机制

mfssettrashtime 64800 /ghost/l1.txt #给1.txt设置一个保存时间
mkdir /back
chown mfs.mfs /back
mfsmount -m /back -H 192.168.22.195 #指定服务器IP

find . -name *1.txt* #搜索删除的1.txt
mv 002/00000002\|1.txt /back/trash/undel/ #拿到undel队列里,就恢复了


2.快照功能(提取数据)

mkdir /back
chown mfs.mfs back/
mfsmakesnapshot 1.txt back/ #拷贝1.txt的源信息到back/目录下
cd back/ #拷贝出来的数据


3.冗余 goal 设置(自定义备份个数)

mfsgetgoal /ghost/1.txt #查看1.txt的冗余数
mfsfileinfo /ghost/1.txt #查看1.txt的冗余分布在那几台机器上
mfssetgoal 3 /ghost/1.txt #设置1.txt的冗余个数 (要备份几份)


4.还原 master数据(主服务器的宕机/数据丢失/恢复数据)

去从服务器,将从的数据拷贝到主上,并重新建立文件索引

scp /usr/local/mfs/var/mfs/* [email protected]:/usr/local/mfs/var/mfs

mfsmaster -a #自动恢复重新建立索引

netstat -an |grep "9419" #检查是否开启成功

以上是关于MooseFS的主要内容,如果未能解决你的问题,请参考以下文章

存储调研:MooseFS分布式文件系统体系结构