MFS的工做原理图:vim
管理服务器:master | 负责各个数据存储服务器的管理,文件读写调度,文件空间回收和恢复,多节点的拷贝 |
元数据日志服务器:metalogger | 负责备份master服务器的变化日志文件,类型为changelog_ml.*.mfs |
数据存储服务器:chunkservers | 负责链接master,遵从master调度,提供存储空间,而且为客户端提供数据传输 |
客户机挂载使用:client | 经过fuse 内核接口远程管理服务上管理的数据存储服务器 |
MFS安装开始:bash
元数据服务器安装和配置:master useradd mfs -s /sbin/nologin tar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs make && make install cd /usr/local/mfs/etc/mfs cp mfsmaster.cfg.dist mfsmaster.cfg cp mfsexports.cfg.dist mfsexports.cfg cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs 这是一个8字节的文件,为mfs新增项目 ln -s /usr/local/mfs/sbin/mfsmaster /usr/sbin/ mfsmaster start
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)
元数据日志服务器安装和配置:metalogger 该服务仅须要一个配置文件,这里咱们只须要从模板文件复制一个,而后稍微加以修改便可 cp mfsmetalogger.cfg.dist mfsmetalogger.cfg vim mfsmetalogger.cfg 修改成master的地址: MASTER_HOST = xxx.xxx.xxx.xxx ln -s /usr/local/mfs/sbin/mfsmetalogger /usr/sbin/ mfsmetalogger start
metalogger配置文件: # 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
数据存储chunkserver服务器的安装配置:chunkservers 数据存储服务器有2个配置服务器须要修改,一个是主配置文件 mfschunkserver.cfg ,另外一个配置文件是 mfshdd.cfg。每一个服务器用来分配给 MFS使用的空间最好是一个单独的硬盘或者一个raid卷,最低要求是一个分区 cp mfschunkserver.cfg.dist mfschunkserver.cfg 修改成master的IP地址: MASTER_HOST = xxx.xxx.xxx.xxx 元数据服务器的名称或地址 cp mfshdd.cfg.dist mfshdd.cfg 须要以下一行内容就能够了: /sdb #我添加了一个硬盘 mkfs.ext4 /dev/vdc mkdir sdb mount /dev/vdc sdb/ chown –R mfs:mfs /sdb ln -s /usr/local/mfs/sbin/mfschunkserver /usr/sbin/ mfschunkserver start
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 使用的磁盘空间配置文件的位置
MFS客户端的安装及配置:client tar zxvf fuse-2.7.4.tar.gz cd fuse-2.7.4 ./configure make && make install tar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount make && make install echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile source /etc/profile mkdir /mnt/mfs ln -s /usr/local/mfs/bin/mfsmount /usr/sbin/ mfsmount /mnt/mfs/ -H xxx.xxx.xxx.xxx 注意,全部的MFS都是挂接同一个元数据服务器master,而不是其余数据存储服务器chunkserver 设置文件副本数量,建议以3份为佳 设置副本数目 mfsrsetgoal 3 /mnt/mfs