元数据服务器可以是Linux,也可以是UNIX,你可以根据自己的使用需要选择操作系统。
安装元数据服务
MooseFS可以通过Linux发行版的包管理器进行安装,也可以通过源代码来安装。用包管理器安装的版本比较旧(见:https://moosefs.com/download/centosfedorarhel.html ),建议用最新源代码来安装。
首先,下载最新源代码:
$ curl -O http://ppa.moosefs.com/src/moosefs-3.0.51-1.tar.gz
解包:
$ tar xzvf moosefs-3.0.51-1.tar.gz
切换目录:
$ cd moosefs-3.0.51/
创建用户:
$ sudo useradd mfs -s /sbin/nologin
配置:
$ sudo ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
编译安装:
$ sudo make && sudo make install
配置元数据服务
元数据服务器的配置文件被放置于安装目录/usr/local/mfs/etc/mfs。注意,这里只有配置的模板文件,如:mfsmaster.cfg.sample。为了使mfs master正常工作,需要两个配置文件:mfsmaster.cfg及mfsexports.cfg。前者为主配置文件,后者为权限控制文件(MFS客户端挂接时使用)。
1. 主配置文件mfsmaster.cfg,可以直接从模板文件mfsmaster.cfg.sample中拷贝而来。打开这个配置文件/usr/local/mfs/etc/mfsmaster.cfg,看看都有哪些内容:
# 这些#号都是注释 # WORKING_USER = mfs # WORKING_GROUP = mfs # SYSLOG_IDENT = mfsmaster # LOCK_MEMORY = 0 # NICE_LEVEL = -19 # FILE_UMASK = 027 # DATA_PATH = /usr/local/mfs/var/mfs # EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg # TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg # BACK_LOGS = 50 # BACK_META_KEEP_PREVIOUS = 1 # CHANGELOG_PRESERVE_SECONDS = 1800 # MISSING_LOG_CAPACITY = 100000 # MATOML_LISTEN_HOST = * # MATOML_LISTEN_PORT = 9419 # MATOCS_LISTEN_HOST = * # MATOCS_LISTEN_PORT = 9420 # MATOCS_TIMEOUT = 10 # REPLICATIONS_DELAY_INIT = 300 # CHUNKS_LOOP_MAX_CPS = 100000 # CHUNKS_LOOP_MIN_TIME = 300 # CHUNKS_SOFT_DEL_LIMIT = 10 # CHUNKS_HARD_DEL_LIMIT = 25 # CHUNKS_WRITE_REP_LIMIT = 2,1,1,4 # CHUNKS_READ_REP_LIMIT = 10,5,2,5 # CS_HEAVY_LOAD_THRESHOLD = 100 # CS_HEAVY_LOAD_RATIO_THRESHOLD = 5.0 # CS_HEAVY_LOAD_GRACE_PERIOD = 900 # ACCEPTABLE_PERCENTAGE_DIFFERENCE = 1.0 # PRIORITY_QUEUES_LENGTH = 1000000 # MATOCL_LISTEN_HOST = * # MATOCL_LISTEN_PORT = 9421 # SESSION_SUSTAIN_TIME = 86400 # QUOTA_DEFAULT_GRACE_PERIOD = 604800
尽管每行都被注释掉了,但它们却是配置文件的默认值,要改变这些值,需要取消注释,然后明确指定其取值。接下来说明一下其中一些项目的含义。
EXPORTS_FILENAME=/usr/local/mfs/etc/mfs/mfsexports.cfg:权限控制文件的存放位置。
DATA_PATH=/usr/local/mfs/var/mfs:数据存放路径,指元数据的存放路径。
MATOCS_LISTEN_PORT=9420:MATOCS,Master to Chunk Server,即元数据服务器使用9420这个监听端口来接受数据存储服务器Chunk Server端的连接。
MATOML_LISTEN_PORT=9419:MATOML,Master to Meta Logger,用于备份元数据服务器的变化日志。
MATOCU_LISTEN_PORT=9421:元数据服务器在9421端口监听,用以接受客户端对MFS进行远程挂接(客户端以mfsmount挂接MFS)。
其他部分可以看配置文件中的注释描述就不难理解了。还有几个与时间相关的数值,其单位是秒。目前,这个配置文件,不必做修改就能工作。
2. 配置文件/usr/local/mfs/etc/mfsexports.cfg,也可以直接从模板mfsexports.cfg.example模板文件复制而来。这个文件的内容,十分类似NFS服务器的exports文件。实际配置时,可参照这个文件的默认行来修改以满足自己的应用需求。例:
# Allow everything but "meta". * / rw,alldirs,admin,maproot=0:0 # Allow "meta". * . rw
3. 复制文件:
$ sudo cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs
这是一个8字节的文件。
启动元数据服务器Master
元数据服务器可以单独启动,即使没有任何数据存储服务器(Chunk Server)也是能正常工作的。因此当我们安装配置完MFS后,即可启动它。执行命令 /usr/local/mfs/sbin/mfsmaster start,如果没有意外,元数据服务器就应该作为一个守护进程运行起来。现在我们可以通过3个方面来检查一下MFS Master的运行状况。
检查进程
$ sudo ps aux | grep mfsmaster | grep -v grep
上图为检查MFS Master进程运行情况
检查网络状态
$ netstat -an
上图为检测MFS Master监听端口
检查系统日志
$ sudo tail -f /var/log/messages
MFS的日志会直接写入系统日志。当我们增加数据存储服务器或数据存储服务器出现故障时,都能在系统日志找到这些记录。注意,这个日志跟元数据变化日志不是一回事情。
关闭元数据服务器
关闭元数据服务器务必使用:/usr/local/mfs/sbin/mfsmaster stop。如果直接使用kill杀死进程,将导致下次启动时出现找不到相关文件,而不能正常启动服务器。一定要谨慎!当然,如果发生了这样的事情,还是可以通过mfsmetastore来恢复的。
$ sudo /usr/local/mfs/sbin/mfsmaster stop
最后注意:把要开放的端口都开放!!!!元数据服务器需要大内存!!