MFS部署
部署环境:RHEL6.1
mfs版本:mfs-1.6.17.tar.gz
官网地址:www.moosefs.org
官网最新版本为v1.6.26
说明:实验过程元数据服务器和元日志服务器在一台机器即Master管理服务器上,在生产环境中建议元数据服务器和元日志服务器分开,这样安全性相对会高
IP部署
----------------------------------------------------------------------------------------------------------------------
Master(管理服务器):192.168.100.1
---chunkserver1 192.168.100.10
chunkservers(数据存储服务器)|
---chunkserver2 192.168.100.11
---client1 192.168.100.20
client客户机|
---client2 192.168.100.21
----------------------------------------------------------------------------------------------------------------------
Master相关配置
软件安装
#./configure --disable-mfschunkserver--disable-mfsmount --with-default-user=daemon --with-default-group=daemon
#make && make install
# cp /usr/local/etc/mfsmaster.cfg.dist/usr/local/etc/mfsmaster.cfg
//模板默认生效,该文件不需要修改
#cp /usr/local/etc/mfsexports.cfg.dist/usr/local/etc/mfsexports.cfg
#vim /usr/local/etc/mfsexports.cfg
# cat /usr/local/etc/mfsexports.cfg
192.168.100.0/24 / rw,alldirs,maproot=0
192.168.100.0/24 . rw
# cd /usr/local/var/mfs // /usr/local/var/mfs元数据存放目录
#cp metadata.mfs.empty metadata.mfs
//启用元数据配置文件
#/usr/local/sbin/mfsmaster start || stop
//开启||关闭服务
#usr/local/sbin/mfscgiserv start
//开启web监控,mfscgiserv是使用python开发的web服务器,http://Master_IP:9425即可访问
trunkServer相关配置
#./configure --disable-mfsmaster--disable-mfsmount --disable-mfscgi --disable-mfscgiserv --with-default-user=daemon--with-default-group=daemon
#make && make install
#cp/usr/local/etc/mfschunkserver.cfg.dist /usr/local/etc/mfschunkserver.cfg
#vim /usr/local/etc/mfschunkserver.cfg
#cat /usr/local/etc/mfschunkserver.cfg
WORKING_USER = daemon
WORKING_GROUP = daemon
SYSLOG_IDENT = mfschunkserver
LOCK_MEMORY = 0
NICE_LEVEL = -19
DATA_PATH = /usr/local/var/mfs
MASTER_RECONNECTION_DELAY = 5
BIND_HOST = *
MASTER_HOST = 192.168.100.1
MASTER_PORT = 9420
MASTER_TIMEOUT = 60
HDD_CONF_FILENAME = /usr/local/etc/mfshdd.cfg
HDD_TEST_FREQ = 10
LOCK_FILE = /var/run/mfs/mfschunkserver.lock
BACK_LOGS = 50
◆ MASTER_HOST = 192.168.100.1 元数据服务器的名称或地址,可以是主机名,也可以是ip地址,只要数据存储服务器能访问到元数据服务器就行。
◆ LOCK_FILE = /var/run/mfs/mfschunkserver.pid 与元数据服务器master的处理完全相同.
◆ CSSERV_LISTEN_PORT = 9422 CSSERV—chunkserver,这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制。
◆ HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 分配给MFS使用的磁盘空间配置文件的位置。
#cp /usr/local/etc/mfshdd.cfg.dist/usr/local/ect/mfshdd.cfg
#vim /usr/local/ect/mfshdd.cfg
#cat /usr/local/ect/mfshdd.cfg
/mfs #挂载点
#mkdir /mfs
#mount /dev/sdb1 /mfs
//这里使用的是独立的磁盘,已经格式化ext4,分区格式化这里不作介绍
//注意:CHUNKSERVER共享出去的磁盘需要大于1G以上,否则会提示空间不足,另外CHUNKSERVER也会占用几百M的空间
#chown daemon:daemon /mfs -R
//必须修改权限,否则服务启动不了
#/usr/local/sbin/mfschunkserver start ||stop
//可以查看messages日志获得启动和连接信息
client相关配置
#yum install fuse* -y //client通过fuse模块连接Master
#./configure --disable-mfsmaster--disable-mfschunkserver --disable-mfscgi --disable-mfscgiserv --with-default-user=daemon--with-default-group=daemon
#make && make install
#mkdir /mnt/{data,metadata}
#mfsmount -H 192.168.100.1 /mnt/data
#mfsmount -m -H 10.1.1.10 metadata
# /usr/local/bin/mfsdirinfo /mnt/data/ //查看chunk信息
/mnt/data/:
inodes: 2
directories: 1
files: 1
chunks: 23
length: 1522139136
size: 1522256896
realsize: 1522256896
#/usr/local/bin/mfsgetgoal -h /mnt/data/ //获取文件备份信息
/mnt/data/:1 //1表示没有备份,只有一个文件
# /usr/local/bin/mfssetgoal -r 2 /mnt/data/ //等段时间之后生效,这样修改之后,文件就实现冗余功能了
# /usr/local/bin/mfsfileinfo 文件名 //可以查看该文件的个数
另外对于客户端需要说明的是类似iscsi或者NFS这些,2个客户端同时挂载使用的时,client1写入数据,client2是读不到数据的,而MFS实现client1和client2同步,在client1上写入文件,client2即可获取,实现同时读写
(一)本地测试
1、停止元数据服务 /usr/local/mfs/sbin/mfsmaster
2、备份元数据服务器数据 cd /usr/local/mfs/var; tar czvfmfs.tgz mfs
3、删除目录 mv mfs mfs.bk 或 rm –rf mfs
4、启动元数据服务 ../sbin/mfsmaster start 启动失败,提示不能初始化数据。
5、解包 tar zxvf mfs.tgz
6、执行恢复操作 .. /sbin/mfsmetarestore –a
7、启动元数据服务 ../sbin/mfsmaster start
8、在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
(二) 迁移测试
1、 安装新的MFS元数据服务器。
2、 从当前的元数据服器(master)或日志备份服务器(mfsmetalogger)复制备份文件 metadata.mfs.back/metadate_ml.mfs.back到新的元服务器目录(metadata.mfs.back需要定时用crontab备份).
3、 从当前的元数据服器(master)或日志备份服务器(mfsmetalogger)复制元数据服务器数据目录(/usr/local/mfs/var/mfs)到这个新的元数据服务器。
4、 停止原先的那个元数据服务器(关闭计算机或停止它的网络服务)。
5、 更改新的元数据服务器的ip为原来那个服务器的ip.
6、 执行数据恢复操作,其命令为:mfsmetarestore -mmetadata.mfs.back -o metadata.mfs changelog_ml.*.mfs 恢复成功后再执行启动新的元数据服务操作。
7、 启动新的元数据服务 /usr/local/mfs/sbin/mfsmasterstart
8、 在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
参考:http://bbs.chinaunix.net/thread-1644309-1-1.html
http://www.moosefs.org/tl_files/manpageszip/moosefs-step-by-step-tutorial-cn-v.1.1.pdf
http://www.tanpao.com/archives/35 维基百科
http://blog.formyz.org/?p=299#more-299