您的位置:首页 > 职场人生

程序员的素质

2016-02-02 15:56 786 查看
mfs1.6.11版本完全安装

包含4种角色:

管理服务器managing server (master)

元数据日志服务器Metalogger server(Metalogger)

数据存储服务器data servers (chunkservers)

客户机挂载使用client computers

4种角色作用:

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

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

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

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

一个具体的实例

master server 172.16.34.235

metalogger 172.16.34.236

chunkserver 172.16.34.237

client 172.16.34.238

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

1、下载源代码

wget http://jaist.dl.sourceforge.net/project/moosefs/moosefs/1.6.25-1/mfs-1.6.25-1.tar.gz

2、tar zxvf mfs-1.6.11.tar.gz

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

4、./configure --prefix=/usr/local/mfs --disable-mfschunkserver --disable-mfsmount --with-default-user=mfs --with-default-group=mfs

5、make ; make install

6、配置

与mfs-1.5.12版本不同的是:mfs-1.6.x版安装完成只有模版文件,其后缀形如mfsmaster.cfg.dist。为了使mfs master正常工作,需要两个配置文件mfsmaster.cfg及mfsexports.cfg。

配置文件位于安装目录/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 server产生的;

#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:(master to metalogger)metalogger监听的端口地址(默认是9419);

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

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

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

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

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

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

# CHUNKS_DEL_LIMIT = 100

# 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

172.16.34.236 /tt rw,alldirs,maproot=0

172.16.34.237 / rw,alldirs,maproot=0

172.16.34.238 / 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)也是能正常工作的。安装配置完MFS后,即可启动它。

执行命令 /usr/local/mfs/sbin/mfsmaster start ,如果没有意外,master server就应该作为一个守护进程运行起来。是否启动,检查如下:

[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,将导致下次启动时出现找不到相关文件,而不能正常启动服务器。这个一定要谨慎。当然,如果发生了这个事情,还是可以通过 mfsmetastore 来恢复的。

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

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

1、下载源码

wget http://jaist.dl.sourceforge.net/project/moosefs/moosefs/1.6.25-1/mfs-1.6.25-1.tar.gz

2、tar zxvf mfs-1.6.11.tar.gz

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

4、./configure --prefix=/usr/local/mfs --disable-mfschunkserver --disable-mfsmount --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 = 172.16.34.235

# MASTER_PORT = 9419

# MASTER_TIMEOUT = 60

# deprecated, to be removed in MooseFS 1.7

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

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

META_DOWNLOAD_FREQ需要说明一下:

元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,matedata.mfs.back文件将消失,那么要恢复整个mfs,则需从metalogger服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。

这个文件中需要修改的是MASTER_HOST变量,这个变量的值是master server的IP地址。

7、启动metalogger服务

[root@mail sbin]# ./mfsmetalogger start

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfsmetalogger modules ...

mfsmetalogger daemon initialized properly

这说明metalogger服务正常启动了。利用命令检查:

通过进程:

[root@mail sbin]# ps -ef | grep mfs

mfs 12254 1 0 15:25 ? 00:00:00 ./mfschunkserver start

通过检查端口:

[root@mail sbin]# lsof -i:9419

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

mfsmetalo 12292 mfs 7u IPv4 1395372 TCP mail.tt.com:52456->192.168.3.34:9419 (ESTABLISHED)

查看日志服务器的工作目录

[root@mail mfs]# pwd

/usr/local/mfs/var/mfs

[root@mail mfs]# ll

total 8

-rw-r----- 1 mfs mfs 249 Jan 13 15:39 changelog_ml.1.mfs

-rw-r----- 1 mfs mfs 519 Jan 13 15:40 sessions_ml.mfs

这是运行18小时后:

[root@mail mfs]# ll

total 1808

-rw-r----- 1 mfs mfs 0 Jan 14 08:40 changelog_ml.0.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 23:39 changelog_ml.10.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 22:39 changelog_ml.11.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 21:39 changelog_ml.12.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 20:39 changelog_ml.13.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 19:39 changelog_ml.14.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 18:39 changelog_ml.15.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 17:39 changelog_ml.16.mfs

-rw-r----- 1 mfs mfs 4722 Jan 13 16:39 changelog_ml.17.mfs

-rw-r----- 1 mfs mfs 249 Jan 13 15:39 changelog_ml.18.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 08:39 changelog_ml.1.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 07:39 changelog_ml.2.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 06:39 changelog_ml.3.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 05:39 changelog_ml.4.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 04:39 changelog_ml.5.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 03:39 changelog_ml.6.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 02:39 changelog_ml.7.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 01:39 changelog_ml.8.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 00:39 changelog_ml.9.mfs

-rw-r----- 1 mfs mfs 915016 Jan 14 09:00 csstats.mfs

-rw-r----- 1 mfs mfs 777640 Jan 14 08:10 metadata_ml.mfs.back

-rw-r----- 1 mfs mfs 519 Jan 14 09:16 sessions_ml.mfs

8、停止metalogger服务

[root@mail sbin]# ./mfsmetalogger -s

working directory: /usr/local/mfs/var/mfs

sending SIGTERM to lock owner (pid:12284)

waiting for termination ... terminated

(三)、安装配置数据存储服务器(chunkserver)

1、下载源代码

wget http://jaist.dl.sourceforge.net/project/moosefs/moosefs/1.6.25-1/mfs-1.6.25-1.tar.gz

2、tar zxvf mfs-1.6.11.tar.gz

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

4、./configure --prefix=/usr/local/mfs --disable-mfsmaster --disable-mfsmount --with-default-user=mfs --with-default-group=mfs

5、make ; make install

6、配置

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

mfschunkserver.cf是主配置文件,mfshdd.cfg是服务器用来分配给 MFS使用的空间,最好是一个单独的硬盘或者一个raid卷,最低要求是一个分区。

(1)、mfschunkserver.cfg的配置

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

MASTER_PORT = 9420

# 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

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

其中:

MASTER_HOST: 元数据服务器的名称或地址,可以是主机名,也可以是ip地址。只要数据存储服务器能访问到元数据服务器就行。

CSSERV_LISTEN_PORT :这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制。

HDD_CONF_FILENAME: 分配给MFS使用的磁盘空间配置文件的位置。

(2)、mfshdd.cfg的配置

[root@mail etc]# more mfshdd.cfg

/mfsdata

这个文件默认情况下有好几行,最好把它删掉,因为按常规情况用注释符号“#”好像不起作用。

在这里/data是一个给mfs的分区,但在本机上是一个独立的磁盘的挂载目录,用 chown –R mfs:mfs /data 把属主改变为mfs。

MFS使用的空间最好是一个单独的硬盘或者一个raid卷,最低要求是一个分区。作者举的例子是创建一个大文件,然后挂接在本地,这不是个好主意,只能用来做实验了。

7、启动mfschunkserver

执行命令 /usr/local/mfs/sbin/mfschunkserver start ,如果没有意外,mfschunkserver 就应该作为一个守护进程运行起来。是否启动,检查如下:

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

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

8、停止mfschunkserver

停止mfschunkserver,利用mfschunkserver –s来安全停止mfschunkserver。

(四)、MFS客户端的安装及配置

由于MFS客户端依赖于fuse,所以要先安装fuse。

1、 fuse的安装

wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.8.1/fuse-2.8.1.tar.gz

(1)、解包 tar zxvf fuse-2.8.1.tar.gz

(2)、./configure --prefix=/usr

(3)、make;make install

./configure如果忘了加参数--prefix=/usr,否则默认安装在/usr/local/lib,这样需要编辑/etc/ld.so.conf把/usr/local/lib加进去,再执行 /sbin/ldconfig,否则会报错。

如果所在的系统已经安装了fuse,则跳过这个步骤,高版本的Linux内核已经支持了。

2、 安装MFS客户端

(1)修改环境变量文件/etc/profile ,追加下面的行,然后再执行命令source /etc/profile使修改生效。

 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

(2)、下载源代码

wget http://jaist.dl.sourceforge.net/project/moosefs/moosefs/1.6.25-1/mfs-1.6.25-1.tar.gz

(3)、tar zxvf mfs-1.6.11.tar.gz

(4)、创建用户 useradd mfs –s /sbin/nologin

(5)、./configure --prefix=/usr/local/mfs --disable-mfsmaster --disable-mfschunkserver --with-default-user=mfs --with-default-group=mfs --enable-mfsmount

说明:在这个过程中,当执行到--enable-mfsmount时可能出现”checking for FUSE… no configure: error: mfsmount build was forced, but fuse development package is not installed”这样的错误,而不能正确安装MFS客户端程序,这是因为环境变量没有设置,先编辑/etc/profile在此文件中加入如下条目:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

然后再利用source命令 /etc/profile使修改生效:source /etc/profile即可,也可直接在命令行中直接执行:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

(5)、make ; make install

3、挂接MFS文件系统

(1)、创建挂接点 mkdir /mnt/mfs

(2)、加载fuse模块到内核:modprobe fuse

(3)、挂接MFS

/usr/local/mfs/bin/mfsmount /mnt/mfs -H 172.16.34.235 -p

然后在输入密码就可以了

特别需要注意的是,所有的MFS都是挂接同一个元数据服务器master的IP,而不是其他数据存储服务器chunkserver的IP。

(4)、查看挂载情况

通过df命令查看磁盘使用情况来检查是否被挂接成功

[root@CentOS5-D mfs]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 9.9G 3.6G 5.9G 38% /

/dev/sda3 9.5G 2.2G 6.8G 25% /data

/dev/sda1 99M 12M 83M 13% /boot

tmpfs 125M 0 125M 0% /dev/shm

mfs#172.16.34.235:9421

19G 0 19G 0% /mnt/mfs

利用mount命令查看:

[root@CentOS5-D mfs]# mount

/dev/sda2 on / type ext3 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/sda3 on /data type ext3 (rw)

/dev/sda1 on /boot type ext3 (rw)

tmpfs on /dev/shm type tmpfs (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

mfs#172.16.34.235:9421 on /mnt/mfs type fuse (rw,nosuid,nodev,allow_other,default_permissions)

(五)、对mfscgiserv的使用

Mfscgiserv是用python编写的一个web服务器,它的监听端口是9425,

可以利用:

/usr/local/mfs/sbin/mfscgiserv来启动,用户利用浏览器http://172.16.34.235:9425就可全面监控所有客户挂接,chunkserver及master server,客户端的各种操作等等,绝对是个好工具。

本文出自 “Hanxq Technology Blog” 博客,请务必保留此出处http://hanxiaoqi.blog.51cto.com/271873/1096806
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: