mfs 安装实战,解决单点故障和master瓶颈

  • Post author:
  • Post category:其他


4种角色作用:


管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝


元数据日志服务器: 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作


数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.


客户端: 通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix文件系统使用一样的效果.








一个具体的实例


(一)、安装和配置元数据服务(master server)


1、下载源代码



http://ncu.dl.sourceforge.net/pr … 1/mfs-1.6.11.tar.gz



2、tar zxvf mfs-1.6.11.tar.gz


3、创建用户 useradd mfs –s /sbin/nologin


4、./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs


5、make ; make install


6、配置


配置文件位于安装目录/usr/local/mfs/etc,需要的配置文件有两个:mfsmaster.cfg和 mfsexports.cfg,


mfsmaster.cfg是主配置文件,mfsexports.cfg是被挂接目录及权限设置。


(1)、mfsmaster.cfg的配置


[root@nas etc]# cp mfsmaster.cfg.dist mfsmaster.cfg


[root@nas etc]# vi mfsmaster.cfg


# WORKING_USER = mfs


# WORKING_GROUP = mfs


# SYSLOG_IDENT = mfsmaster


# LOCK_MEMORY = 0


# NICE_LEVEL = -19


# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg


# DATA_PATH = /usr/local/mfs/var/mfs


# BACK_LOGS = 50


# REPLICATIONS_DELAY_INIT = 300


# REPLICATIONS_DELAY_DISCONNECT = 3600


# MATOML_LISTEN_HOST = *


# MATOML_LISTEN_PORT = 9419


# MATOCS_LISTEN_HOST = *


# MATOCS_LISTEN_PORT = 9420


# MATOCU_LISTEN_HOST = *


# MATOCU_LISTEN_PORT = 9421


# CHUNKS_LOOP_TIME = 300


# CHUNKS_DEL_LIMIT = 100


# CHUNKS_WRITE_REP_LIMIT = 1


# CHUNKS_READ_REP_LIMIT = 5


# REJECT_OLD_CLIENTS = 0








需要注意的是,凡是用#注释掉的变量均使用其默认值,这里我解释一下这些变量:




#WORKING_USER和WORKING_GROUP:是运行master server的用户和组;


#SYSLOG_IDENT:是master server在syslog中的标识,也就是说明这是由master serve产生的;


#LOCK_MEMORY:是否执行mlockall()以避免mfsmaster 进程溢出(默认为0);


#NICE_LEVE:运行的优先级(如果可以默认是 -19; 注意: 进程必须是用root启动);


#EXPORTS_FILENAME:被挂接目录及其权限控制文件的存放位置


#DATA_PATH:数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;


#BACK_LOGS:metadata的改变log文件数目(默认是 50);


#REPLICATIONS_DELAY_INIT:延迟复制的时间(默认是300s);


#REPLICATIONS_DELAY_DISCONNECT:chunkserver断开的复制延迟(默认是3600);


# MATOML_LISTEN_HOST:metalogger监听的IP地址(默认是*,代表任何IP);


# MATOML_LISTEN_PORT:metalogger监听的端口地址(默认是9419);


# MATOCS_LISTEN_HOST:用于chunkserver连接的IP地址(默认是*,代表任何IP);


# MATOCS_LISTEN_PORT:用于chunkserver连接的端口地址(默认是9420);


# MATOCU_LISTEN_HOST:用于客户端挂接连接的IP地址(默认是*,代表任何IP);


# MATOCU_LISTEN_PORT:用于客户端挂接连接的端口地址(默认是9421);


# CHUNKS_LOOP_TIME :chunks的回环频率(默认是:300秒);


注:原文为Chunks loop frequency in seconds (default is 300)


# CHUNKS_DEL_LIMIT :在一个loop设备中可以删除chunks的最大数 (默认:100)


#REPLICATIONS_DELAY_DISCONNECT chunkserver断开后的复制延时(默认:3600秒)


# CHUNKS_WRITE_REP_LIMIT:在一个循环里复制到一个chunkserver的最大chunk数目(默认是1)


# CHUNKS_READ_REP_LIMIT :在一个循环里从一个chunkserver复制的最大chunk数目(默认是5)


# REJECT_OLD_CLIENTS:弹出低于1.6.0的客户端挂接(0或1,默认是0)


注意mfsexports访问控制对于那些老客户是没用的






以上是对master server的mfsmaster.cfg配置文件的解释,对于这个文件不需要做任何修改就可以工作。












(2)、mfsexports.cfg的配置


[root@nas etc]# vi mfsexports.cfg




#*                      /       ro


#192.168.1.0/24         /       rw


#192.168.1.0/24         /       rw,alldirs,maproot=0,password=passcode


#10.0.0.0-10.0.0.5      /test   rw,maproot=nobody,password=test


*                       .       rw


#*                      /       rw,alldirs,maproot=0




192.168.3.98            /tt     rw,alldirs,maproot=0


192.168.3.139           /       rw,alldirs,maproot=0


192.168.3.138           /       rw,alldirs,maproot=0,password=111111




该文件每一个条目分为三部分:


第一部分:客户端的ip地址


第二部分:被挂接的目录


第三部分:客户端拥有的权限






地址可以指定的几种表现形式:


*                  所有的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段




目录部分需要注意两点:


/ 标识MooseFS 根;


. 表示MFSMETA 文件系统




权限部分:


ro  只读模式共享


rw  的方式共享


alldirs  许挂载任何指定的子目录


maproot   映射为root,还是指定的用户


password  指定客户端密码




7、启动master server


master server可以单独启动(所谓单独启动就是在没有数据存储服务器(chunkserver)的时候也可以启动,但是不能存储,chunkserver启动后会自动的加入)。安装配置完MFS后,即可启动它。


执行命令 /usr/local/mfs/sbin/mfsmaster start ,可通过检查如下:


[root@nas etc]# ps -ef|grep mfs


mfs      12327     1  0 08:38 ?        00:00:00 /usr/local/mfs/sbin/mfsmaster start


8、停止master server


安全停止master server是非常必要的,最好不要用kill。利用mfsmaster –s来安全停止master serve,一旦是用了kill也是有解决方法的,后文有说明。


9、要经常性的查看系统日志(tail -f /var/log/messages)


(二)、安装和配置元数据日志服务器(metalogger)


1、下载源码



http://ncu.dl.sourceforge.net/pr … 1/mfs-1.6.11.tar.gz



2、tar zxvf mfs-1.6.11.tar.gz


3、创建用户 useradd mfs –s /sbin/nologin


4、./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs


5、make ; make install


6、配置


该服务只有一个配置文件,那就是mfsmetalogger.cfg。


[root@mail etc]# vi 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


# MASTER_RECONNECTION_DELAY = 5


MASTER_HOST = 192.168.3.34


# MASTER_PORT = 9419


# MASTER_TIMEOUT = 60


# deprecated, to be removed in MooseFS 1.7


# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock






文中的大多数变量不难理解,类似于mfsmaster.cfg中的变量,其中:



版权声明:本文为zkaipmoo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。