Linux平台上MFS(MooseFS)的部署
版 本 历 史 版本号 V0.5 更新时间 2009-9-17 说 明 Linux平台上MFS(MooseFS)的部署 创建者 刘胜利
Page 1 of 9
武汉天喻 安装配置手册
目 录
1 概述 ..................................................................................................................................................... 3 2 实验环境 ............................................................................................................................................. 3 3 安装和配置MFS Master .................................................................................................................. 4
3.1 安装master ............................................................................................................................ 4 3.2 配置master ............................................................................................................................ 4 3.3 启动和停止master服务 ....................................................................................................... 5 4 安装和配置ChunkServer ................................................................................................................. 5
4.1 安装ChunkServer ................................................................................................................. 5 4.2 配置ChunkServer ................................................................................................................. 5 4.3 启动和停止ChunkServer服务 ............................................................................................ 6 5 安装和配置MFS Client .................................................................................................................... 6
5.1 安装FUSE .............................................................................................................................. 6 5.2 安装MFS Client ..................................................................................................................... 7 5.3 使用MFS ................................................................................................................................ 7 5.4 设置副本数量 ......................................................................................................................... 7 5.5 设置空间回收时间 ................................................................................................................. 8 6 破坏性测试 ......................................................................................................................................... 9
6.1 测试数据存储服务器 ............................................................................................................. 9 6.2 测试元数据服务器 ................................................................................................................. 9
Page 2 of 9
武汉天喻 安装配置手册
1 概述
MFS(MooseFS)是一个Linux/Unix平台上开源的分布式文件系统。它可以把文件复制成多份(如3份)分别放置在多个数据服务器(ChunkServer)上,实现文件的冗余。而且可以动态的增加ChunkServer,实现动态存储容量扩展,甚至可以支持PB级的存储容量。
2 实验环境
硬件和软件环境:
PC: Intel(R) Core(TM)2 Quad CPU Q9550@ 2.83GHz, 8G RAM OS: CentOS 5.2 (x86_64), Kernel: 2.6.18-92.el5xen MFS: MooseFS v1.5.12
Page 3 of 9
武汉天喻 安装配置手册
表2-1 安装MFS所需软件列表
软件包 Fuse MFS fuse-2.7.4.tar.gz mfs-1.5.12.tar.gz 表2-2 MFS系统网络设置 主机名称 test41 test42 test43 test44 test45 IP地址 10.8.2.41 10.8.2.42 10.8.2.43 10.8.2.44 10.8.2.45 说明 MFS元数据服务器(Master) MFS数据存储服务器(ChunkServer) 1 MFS数据存储服务器(ChunkServer) 2 MFS数据存储服务器(ChunkServer) 3 MFS客户端(Client) 文件名 备注 网络下载 网络下载 服务器的网络设置如下: 3 安装和配置MFS Master
3.1 安装master
创建用户
# useradd mfs -s /sbin/nologin 安装master
# tar xvzf mfs-1.5.12.tar.gz # cd mfs-1.5.12
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make
# make install
3.2 配置master
创建目录
# mkdir -p /var/run/mfs
# chown mfs:mfs /var/run/mfs
更改配置文件/usr/local/mfs/etc/mfsmaster.cfg:
#WORKING_USER = mfs #WORKING_GROUP = mfs
#LOCK_FILE = /var/run/mfs/mfsmaster.pid #DATA_PATH = /usr/local/mfs/var/mfs #SYSLOG_IDENT = mfsmaster #BACK_LOGS = 50
#REPLICATIONS_DELAY_INIT = 300
#REPLICATIONS_DELAY_DISCONNECT = 3600
Page 4 of 9
武汉天喻 安装配置手册
#MATOCS_LISTEN_HOST = * #MATOCS_LISTEN_PORT = 9420 #MATOCU_LISTEN_HOST = * #MATOCU_LISTEN_PORT = 9421 #CHUNKS_LOOP_TIME = 300 #CHUNKS_DEL_LIMIT = 100 #CHUNKS_REP_LIMIT = 15
3.3 启动和停止master服务
启动master服务
# /usr/local/mfs/sbin/mfsmaster start 停止master服务
# /usr/local/mfs/sbin/mfsmaster -s 查看master日志/var/log/messages
# tail -f /var/log/messages
4 安装和配置ChunkServer
4.1 安装ChunkServer
创建用户
# useradd mfs -s /sbin/nologin 安装ChunkServer
# tar xvzf mfs-1.5.12.tar.gz # cd mfs-1.5.12
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make
# make install
4.2 配置ChunkServer
创建目录
# mkdir -p /var/run/mfs
# chown mfs:mfs /var/run/mfs
创建共享存储的挂载点,建议分配整个磁盘分区
# mount /dev/xvdb1 /data # chown mfs:mfs /data
更改配置文件/usr/local/mfs/etc/mfschunkserver.cfg:
#WORKING_USER = mfs #WORKING_GROUP = mfs
#DATA_PATH = /usr/local/mfs/var/mfs
Page 5 of 9
武汉天喻 安装配置手册
#LOCK_FILE = /var/run/mfs/mfschunkserver.pid #SYSLOG_IDENT = mfschunkserver #BACK_LOGS = 50
#MASTER_RECONNECTION_DELAY = 30 MASTER_HOST = 10.8.2.41 MASTER_PORT = 9420 #MASTER_TIMEOUT = 60 #CSSERV_LISTEN_HOST = * #CSSERV_LISTEN_PORT = 9422 #CSSERV_TIMEOUT = 60 #CSTOCS_TIMEOUT = 60
#HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg
更改配置文件/usr/local/mfs/etc/mfshdd.cfg, 增加文件系统挂载点:
/data1 /data2
注意:配置的挂载点必须让mfs用户有读写权限,如没有,用如下命令赋权限: # chown mfs:mfs /data1
4.3 启动和停止ChunkServer服务
启动chunkserver服务
# /usr/local/mfs/sbin/mfschunkserver start 停止chunkserver服务
# /usr/local/mfs/sbin/mfschunkserver -s 查看chunkserver日志/var/log/messages
# tail -f /var/log/messages
5 安装和配置MFS Client
5.1 安装FUSE
增加环境变量并使其生效
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:. export PATH=$PATH:/usr/local/mfs/bin:. 安装fuse
# tar xvzf fuse-2.7.4.tar.gz # cd fuse-2.7.4 # ./configure # make
# make install
Page 6 of 9
武汉天喻 安装配置手册
5.2 安装MFS Client
创建用户
# useradd mfs -s /sbin/nologin 安装MFS Client
# tar xvzf mfs-1.5.12.tar.gz # cd mfs-1.5.12
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
# make
# make install
5.3 使用MFS
如果报错fuse: device not found, 请先fuse mount.
# modprobe fuse 挂载MFS文件系统
# mkdir /mfsdata
# /usr/local/mfs/bin/mfsmount -h 10.8.2.41 -w /mfsdata 使用MFS
# dd if=/dev/urandom of=/mfsdata/test.dat bs=1M count=200 # md5sum /mfsdata/test.dat
522c27c45064c2d0463c168593f5bead /mfsdata/test.dat
5.4 设置副本数量
查看目录现在的副本数量:
# mfsgetgoal /mfsdata /mfsdata: 1
# mfsfileinfo /mfsdata/test.dat /mfsdata/test.dat:
chunk 0: 0000000000000013_00000004 / (id:19 ver:4) copy 1: 10.8.2.44:9422
chunk 1: 0000000000000014_00000003 / (id:20 ver:3) copy 1: 10.8.2.42:9422
chunk 2: 0000000000000015_00000003 / (id:21 ver:3) copy 1: 10.8.2.42:9422
chunk 3: 0000000000000016_00000001 / (id:22 ver:1) copy 1: 10.8.2.42:9422 更改目录现在的副本数量:
# mfsrsetgoal 3 /mfsdata /mfsdata/:
inodes with goal changed: 3 (3)
Page 7 of 9
武汉天喻 安装配置手册
inodes with goal not changed: 0 (0) inodes with permission denied: 0 (0) 查看更改后目录的副本数量:
# mfsgetgoal /mfsdata /mfsdata: 3
# mfsfileinfo /mfsdata/test.dat /mfsdata/test.dat:
chunk 0: 0000000000000013_00000004 / (id:19 ver:4) copy 1: 10.8.2.42:9422 copy 2: 10.8.2.43:9422 copy 3: 10.8.2.44:9422
chunk 1: 0000000000000014_00000003 / (id:20 ver:3) copy 1: 10.8.2.42:9422 copy 2: 10.8.2.43:9422 copy 3: 10.8.2.44:9422
chunk 2: 0000000000000015_00000003 / (id:21 ver:3) copy 1: 10.8.2.42:9422 copy 2: 10.8.2.43:9422 copy 3: 10.8.2.44:9422
chunk 3: 0000000000000016_00000001 / (id:22 ver:1) copy 1: 10.8.2.42:9422 copy 2: 10.8.2.43:9422 copy 3: 10.8.2.44:9422
5.5 设置空间回收时间
查看目录当前回收时间:
# mfsgettrashtime /mfsdata /mfsdata: 86400
设置目录当前回收时间为600秒:
# mfsrsettrashtime 600 /mfsdata /mfsdata:
inodes with trashtime changed: 3 (3) inodes with trashtime not changed: 0 (0) inodes with permission denied: 0 (0) 查看更改后空间回收时间:
# mfsgettrashtime /mfsdata /mfsdata: 600
Page 8 of 9
武汉天喻 安装配置手册
6 破坏性测试
6.1 测试数据存储服务器
现在用4个服务器组成了MFS的存储平台,其中一个是master,其余三个服务器是chunkserver. 先停止一个chunkserver服务,然后在某个MFS客户端往挂接点的目录(/mfsdata)里复制数据或者创建目录/文件、或者读取文件、或者删除文件,观察操作是否能正常进行。
再停止第2个服务器,执行类似的文件读些操作。 减少chunkserver试验后,我们再来逐步增加chunkserver服务器,然后对MFS执行读写等相关访问操作,检验其正确性。
通过增减chunkserver服务器的测试,服务的可靠性确实不错,哪怕只剩下最后一个服务器,也能正常提供存储访问服务。
6.2 测试元数据服务器
元数据服务器最重要的文件在目录 /usr/local/mfs/var/mfs。MFS每一个数据的变化,都被记录在这个目录的文件里,我们可以通过备份这个目录的全部文件,来保障整个MFS文件系统的可靠性.
在正常情况下,元数据服务器的改变日志文件(changelogs) 实时地、自动地复制到所有的数据存储服务器,并且以changelog_csback.*.mfs的形式命名。
换句换说,即使元数据服务器报废了,也能再部署一个元数据服务器,然后从数据存储服务器chunkserver取得恢复所需要的文件。
本地测试
1. 停止元数据服务 /usr/local/mfs/sbin/mfsmaster
2. 备份元数据服务器数据 cd /usr/local/mfs/var; tar czvf mfs.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. 复制元数据服务器数据目录(/usr/local/mfs/var/mfs)到这个新的元数据服务器。 3. 停止原先的那个元数据服务器(关闭计算机或停止它的网络服务)。 4. 更改新的元数据服务器的ip为原来那个服务器的ip. 5. 启动新的元数据服务 /usr/local/mfs/sbin/mfsmaster start
6. 在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
Page 9 of 9
因篇幅问题不能全部显示,请点此查看更多更全内容