测试环境:
IP | 作用 |
192.168.0.1 | master server |
192.168.0.2 | metalogger server |
192.168.0.3 | chunk server |
192.168.0.4 | chunk server |
192.168.0.5 | chunk server |
192.168.0.6 | mfs client |
1.Master Server
192.168.0.1上master安装:
useradd mfs -s /sbin/nologin
http://sourceforge.net/projects/moosefs/files/moosefs/1.6.27/mfs-1.6.27-1.tar.gz/download
tar zxvf mfs-1.6.27-1.tar.gz
cd mfs-1.6.27-1/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable- mfsmount
make
make install
cd /usr/local/mfs/etc
cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件
cp mfsexports.cfg.dist mfsexports.cfg #被挂接目录及权限配置
master配置文件:
vi /usr/local/mfs/etc/mfsmaster.cfg
# WORKING_ USER = mfs #运行master server 的用户 # WORKING_ GROUP = mfs #运行master server 的组 # SYSLOG_IDENT = mfsmaster #master server 在syslog 中的标识,说明是由master serve 产生的 # LOCK_MEMORY = 0 #是否执行mlockall()以避免mfsmaster 进程溢出(默认为0) # NICE_LEVEL = -19 #运行的优先级(如果可以默认是-19; 注意: 进程必须是用root 启动) # EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg #被挂接目录及其权限控制文件的存放位置 # DATA_PATH = /usr/local/mfs/var/mfs #数据存放路径,此目录下大致有三类文件,changelog,sessions 和stats; # BACK_LOGS = 50 #metadata 的改变log 文件数目(默认是50); # REPLICATIONS_ DELAY_INIT = 300 #延迟复制的时间(默认是300s); # REPLICATIONS_ DELAY_DISCONNECT = 3600 #chunkserver 断开的复制延迟(默认是3600); # MATOML_LISTEN_HOST = * #metalogger 监听的IP 地址(默认是*,代表任何IP); # MATOML_LISTEN_PORT = 9419 #metalogger 监听的端口地址(默认是9419); # MATOCS_LISTEN_ HOST = * #用于chunkserver 连接的IP 地址(默认是*,代表任何IP); # MATOCS_LISTEN_PORT = 9420 #用于chunkserver 连接的端口地址(默认是9420); # MATOCU_LISTEN_HOST = * #用于客户端挂接连接的IP 地址(默认是*,代表任何IP); # MATOCU_LISTEN_PORT = 9421 #用于客户端挂接连接的端口地址(默认是9421); # CHUNKS_LOOP_TIME = 300 #chunks 的回环频率(默认是:300 秒);# CHUNKS_DEL_LIMIT = 100 # CHUNKS_WRITE_REP_LIMIT = 1 #在一个循环里复制到一个chunkserver 的最大chunk 数目(默认是1) # CHUNKS_READ_REP_LIMIT = 5 #在一个循环里从一个chunkserver 复制的最大chunk 数目(默认是5) # REJECT_OLD_ CLIENTS = 0 #弹出低于1.6.0 的客户端挂接(0 或1,默认是0) |
修改DATA_PATH指定的目录要权限为mfs,chown -R mfs:mfs /usr/local/mfs/var/mfs
mfsexports 访问控制对于那些老客户是没用的
vi /usr/local/mfs/etc/mfsexports.cfg
#客户端IP 允许挂载的目录 客户端拥有的权限 192.168.0.0/24 / rw,alldirs,maproot=0 # /标识MFS的根 192.168.0.0/24 . rw # .标识MFSMETA 文件系统 |
地址格式:
* #所有的ip 地址 n.n.n.n #单个ip 地址 n.n.n.n/b #IP 网络地址/位数掩码 n.n.n.n/m.m.m.m #IP 网络地址/子网掩码 f.f.f.f-t.t.t.t #IP 段 |
权限说明:
ro #只读模式 rw #读写模式 alldirs #许挂载任何指定的子目录 maproot #映射为root,还是指定的用户 password #指定客户端密码 |
服务操作:
/usr/local/mfs/sbin/mfsmaster [-vdu] [-t locktimeout] [-c cfgfile] [start|stop|restart|reload] #master服务操作
/usr/local/mfs/sbin/mfscgiserv #启动WEBUI 监控服务,访问http://192.168.0.1:9425/
/usr/local/mfs/var/mfs #此目录见mfsmaster.cfg中DATA_PATH配置
metadata.mfs.back #MFS元数据信息,延迟将内存数据写入文件,默认频率1h,默认1d同步一次此文件到metalogger server
changelog.*.mfs #文件操作日志记录,实时记录、同步到metalogger server
sessions.mfs #客户操作状态记录
stats.mfs #?
2.Chunk Server
在192.168.0.3-192.168.0.5上安装chunk server:
useradd mfs -s /sbin/nologin
http://sourceforge.net/projects/moosefs/files/moosefs/1.6.27/mfs-1.6.27-1.tar.gz/download
tar zxvf mfs-1.6.27-1.tar.gz
cd mfs-1.6.27-1/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
make
make install
cd /usr/local/mfs/etc
cp mfschunkserver.cfg.dist mfschunkserver.cfg #chunk配置文件
cp mfshdd.cfg.dist mfshdd.cfg #MFS使用空间配置
chunk server配置文件:
vi /usr/local/mfs/etc/mfschunkserver.cfg
# WORKING_USER = mfs # WORKING_GROUP = mfs # DATA_PATH = /usr/local/mfs/var/mfs # LOCK_FILE = /var/run/mfs/mfschunkserver.pid # SYSLOG_IDENT = mfschunkserver # BACK_LOGS = 50 # MASTER_RECONNECTION_DELAY = 30 MASTER_HOST = 192.168.0.1 #元数据服务器的名称或地址,可以是主机名,也可以是ip 地址 # MASTER_PORT = 9420 #为Matser中 MATOCS_LISTEN_PORT指定的端口 # 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 分配给MFS 使用的磁盘空间配置文件的位置 |
注:
MASTER_HOST 不能为localhost或127.0.0.1
MASTER_PORT必须为元数据服务器配置中MATOCS_LISTEN_PORT指定的端口,且IP必须被master允许。
chown -R mfs:mfs /data
echo 'data' >> /usr/local/mfs/etc/mfshdd.cfg
服务操作:
/usr/local/mfs/sbin/mfschunkserver [-vdu] [-t locktimeout] [-c cfgfile] [start|stop|restart|reload] #chunkserver操作命令
3.MetaLogger Server
在192.168.0.2上安装metalogger server,安装步骤同master,在些略过。
配置文件:
vi /usr/local/mfs/etc/mfsmetalogger.cfg
# WORKING_USER = mfs # WORKING_GROUP = mfs # SYSLOG_IDENT = mfsmetalogger # LOCK_MEMORY = 0 # NICE_LEVEL = -19 # DATA_PATH = /usr/local/mfs/var/mfs # BACK_LOGS = 50 # META_DOWNLOAD_FREQ = 24 元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back 文件。当元数据服务器关闭或者出故障时,matedata.mfs.back 文件将消失,那么要恢复整个mfs,则需从metalogger 服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。 # MASTER_RECONNECTION_DELAY = 5 MASTER_HOST = 192.168.0.1 # MASTER_PORT = 9419 # MASTER_TIMEOUT = 60 # deprecated, to be removed in MooseFS 1.7 # LOCK_FILE = /var/run/mfs/mfsmetalogger.lock |
服务操作:
/usr/local/mfs/sbin/mfsmetalogger [-vdu] [-t locktimeout] [-c cfgfile] [start|stop|restart|reload]
4. MFS Client
在192.168.0.6上执行客户端安装
4.1 FUSE安装:
wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz/download
tar zxf fuse-2.9.3.tar.gz
cd fuse-2.9.3
./configure
make && make install
echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile
source /etc/profile
lsmod |grep fuse #检查fuse是否加载到内核,若没有,执行下面命令
modprobe fuse&&lsmod |grep fuse #若将下列mfsmount挂载操作加入开机自启动,一定将modprobe fuse也加入开机自启
注:
一定要将fuse环境变量配置ok,否则安装mfsmount会装不上
若将下列mfsmount挂载操作加入开机自启动,一定将modprobe fuse也加入开机自启,且在其执行之前执行。
4.2 MFSMount安装:
useradd mfs -s /sbin/nologin
wget http://sourceforge.net/projects/moosefs/files/moosefs/1.6.27/mfs-1.6.27-1.tar.gz/download
tar zxvf mfs-1.6.27-1.tar.gz
cd mfs-1.6.27-1/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver
make;make install
4.3 挂载MFS
mkdir /mnt/mfs /mnt/mfsmeta #创建挂载点
/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.0.1
/usr/local/mfs/bin/mfsmount -m /mnt/mfsmeta -H 192.168.0.1
5.MFS集群的启动与关闭
5.1 安全启动MooseFS 集群:
启动mfsmaster 进程
启动所有的mfschunkserver 进程
启动mfsmetalogger 进程(如果配置了mfsmetalogger)
当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接被export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。
5.2安全的停止MooseFS 集群:
在所有的客户端卸载MooseFS 文件系统
用mfschunkserver stop 命令停止chunkserver 进程
用mfsmetalogger stop 命令停止metalogger 进程
用mfsmaster stop 命令停止master 进程