HTML5 nginx php wordpress linux Ubuntu centos linux命令 google apache mysql java shell Windows 微软 Android 开源 Python 程序员 Firefox

分布式存储MooseFS的搭建

MooseFS介绍

mooseFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。

MooseFS文件系统结构包括以下四种角色:

1 管理服务器managing server (master)
2 元数据日志服务器Metalogger server(Metalogger)
3数据存储服务器data servers (chunkservers)
4 客户机挂载使用client computers

原理图:

read862

write862

搭建的环境介绍

Master server: 10.96.153.223
Metalogger server : 10.96.153.224
chunk server : 10.96.153.221 10.96.153.222
client server : 10.96.153.225

这里使用两台chunk server,master、metalogger和client各一台进行测试,当然,如果由于服务器有限,可以把master和metalogger分别放在chunkserver上。

Master Server安装

1、下载解压

#cd /usr/src
#wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
#tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

#groupadd mfs
#useradd -g mfs mfs
#cd mfs-1.6.26/
#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfschunkserver

3、编译并安装

#make
#make install

4、配置文件

#cd /usr/local/mfs/etc
#cp mfsmaster.cfg.dist mfsmaster.cfg
#cp mfsexports.cfg.dist mfsexports.cfg

更改配置文件mfsexports.cfg

10.96.153.0/24 / rw,alldirs,maproot=0

5、启动前准备

#cd /usr/local/mfs/var/mfs
#cp metadata.mfs.empty metadata.mfs
#echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、启动mfsmaster

#/usr/local/mfs/sbin/mfsmaster start

7、监控服务

#/usr/local/mfs/sbin/mfscgiserv

浏览器输入10.96.153.221:9425

mfsmetalogger搭建

1、下载解压

#cd /usr/src
#wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
#tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

#groupadd mfs
#useradd -g mfs mfs
#cd mfs-1.6.26/
#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfschunkserver

3、编译并安装

#make
#make install

4、配置文件

#cd /usr/local/mfs/etc
#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

5、启动前准备

#echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、启动mfsmetalogger

##/usr/local/mfs/sbin/mfsmetalogger start

Chunk servers 安装

1、下载解压

#cd /usr/src
#wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
#tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

#groupadd mfs
#useradd -g mfs mfs
#cd mfs-1.6.26/
#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfsmaster

3、编译并安装

#make
#make install

4、创建磁盘(100G)

#dd if=/dev/zero of=/mnt/storage/mfschunks1 bs=1024 count=1 seek=$((100*1024*1024-1))
#mkfs -t ext3 /mnt/storage/mfschunks1
#mkdir -p /mnt/mfs1
#mount -t ext3 -o loop /mnt/storage/mfschunks1 /mnt/mfs1

5、配置文件

#cd /usr/local/mfs/etc
#cp mfschunkserver.cfg.dist mfschunkserver.cfg
#cp mfshdd.cfg.dist mfshdd.cfg

更改配置文件mfshdd.cfg,加入:

/mnt/mfs1

6、启动前准备

#echo "10.96.153.221 mfsmaster" >> /etc/hosts
#chown -R mfs:mfs /mnt/mfs1

7、启动chunkserver

##/usr/local/mfs/sbin/mfschunkserver start

mfsclient安装

1、下载解压

#cd /usr/src
#wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
#tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

#groupadd mfs
#useradd -g mfs mfs
#cd mfs-1.6.26/
#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster--disable-mfschunkserver

3、编译并安装

#make
#make install

4、启动前准备

mkdir /mnt/mfs
#echo "10.96.153.221 mfsmaster" >> /etc/hosts

5、开始挂载

#/usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster

6、检查
df -h查看输出

MFS维护

5.1、启动MFS集群

  • 1、启动mfsmaster 进程
  • 2、启动所有的mfschunkserver 进程
  • 3、启动mfsmetalogger 进程(如果配置了mfsmetalogger)
  • 4、当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接被export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。

5.2、停止MFS集群

  • 1、在所有的客户端卸载MooseFS 文件系统(用umount 命令或者是其它等效的命令)
  • 2、用mfschunkserver stop 命令停止chunkserver 进程
  • 3、用mfsmetalogger stop 命令停止metalogger 进程
  • 4、用mfsmaster stop 命令停止master 进程

5.3、MFS chunkservers 的维护

若每个文件的goal(目标)都不小于2,并且没有under-goal 文件(这些可以用mfsgetgoal –r和mfsdirinfo 命令来检查),那么一个单一的chunkserver 在任何时刻都可能做停止或者是重新启动。以后每当需要做停止或者是重新启动另一个chunkserver 的时候,要确定之前的chunkserver 被连接,而且要没有under-goal chunks。

5.4、MFS元数据备份

用rsync定时备份/usr/local/app/soft/mfs/var/mfs/metadata.mfs.back

5.5、MFS Master的恢复

mfsmetarestore -a

5.6、从MetaLogger中恢复Master

mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs

延伸阅读

  • 抱歉,暂无相关内容!

评论