MFS分布式文件系统安装配置
Linux平台上MFS(MooseFS)的部署v0.5
Linux平台上MFS(MooseFS)的部署目录1 概述 (3)2 实验环境 (3)3 安装和配置MFS Master (4)3.1 安装master (4)3.2 配置master (4)3.3 启动和停止master服务 (5)4 安装和配置ChunkServer (5)4.1 安装ChunkServer (5)4.2 配置ChunkServer (5)4.3 启动和停止ChunkServer服务 (6)5 安装和配置MFS Client (6)5.1 安装FUSE (6)5.2 安装MFS Client (7)5.3 使用MFS (7)5.4 设置副本数量 (7)5.5 设置空间回收时间 (8)6 破坏性测试 (9)6.1 测试数据存储服务器 (9)6.2 测试元数据服务器 (9)1 概述MFS(MooseFS)是一个Linux/Unix平台上开源的分布式文件系统。
它可以把文件复制成多份(如3份)分别放置在多个数据服务器(ChunkServer)上,实现文件的冗余。
而且可以动态的增加ChunkServer,实现动态存储容量扩展,甚至可以支持PB级的存储容量。
2 实验环境●硬件和软件环境:✓PC:Intel(R) Core(TM)2 Quad CPU Q9550@ 2.83GHz, 8G RAM✓OS: CentOS 5.2 (x86_64), Kernel: 2.6.18-92.el5xen✓MFS: MooseFS v1.5.12表2-1 安装MFS所需软件列表3 安装和配置MFS Master3.1 安装master●创建用户# useradd mfs -s /sbin/nologin●安装master# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install3.2 配置master●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●更改配置文件/usr/local/mfs/etc/mfsmaster.cfg:#WORKING_USER = mfs#WORKING_GROUP = mfs#LOCK_FILE = /var/run/mfs/mfsmaster.pid#DATA_PATH = /usr/local/mfs/var/mfs#SYSLOG_IDENT = mfsmaster#BACK_LOGS = 50#REPLICATIONS_DELAY_INIT = 300#REPLICATIONS_DELAY_DISCONNECT = 3600#MATOCS_LISTEN_HOST = *#MATOCS_LISTEN_PORT = 9420#MATOCU_LISTEN_HOST = *#MATOCU_LISTEN_PORT = 9421#CHUNKS_LOOP_TIME = 300#CHUNKS_DEL_LIMIT = 100#CHUNKS_REP_LIMIT = 153.3 启动和停止master服务●启动master服务# /usr/local/mfs/sbin/mfsmaster start●停止master服务# /usr/local/mfs/sbin/mfsmaster -s●查看master日志/var/log/messages# tail -f /var/log/messages4 安装和配置ChunkServer4.1 安装ChunkServer●创建用户# useradd mfs -s /sbin/nologin●安装ChunkServer# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install4.2 配置ChunkServer●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●创建共享存储的挂载点,建议分配整个磁盘分区# mount /dev/xvdb1 /data# chown mfs:mfs /data●更改配置文件/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 = 30MASTER_HOST = 10.8.2.41MASTER_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●更改配置文件/usr/local/mfs/etc/mfshdd.cfg, 增加文件系统挂载点:/data1/data2注意:配置的挂载点必须让mfs用户有读写权限,如没有,用如下命令赋权限:# chown mfs:mfs /data14.3 启动和停止ChunkServer服务●启动chunkserver服务# /usr/local/mfs/sbin/mfschunkserver start●停止chunkserver服务# /usr/local/mfs/sbin/mfschunkserver -s●查看chunkserver日志/var/log/messages# tail -f /var/log/messages5 安装和配置MFS Client5.1 安装FUSE●增加环境变量并使其生效export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:.export PATH=$PATH:/usr/local/mfs/bin:.●安装fuse# tar xvzf fuse-2.7.4.tar.gz# cd fuse-2.7.4# ./configure# make# make install5.2 安装MFS Client●创建用户# useradd mfs -s /sbin/nologin●安装MFS Client# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount# make# make install5.3 使用MFS●如果报错fuse: device not found, 请先fuse mount.# modprobe fuse●挂载MFS文件系统# mkdir /mfsdata# /usr/local/mfs/bin/mfsmount -h 10.8.2.41 -w /mfsdata●使用MFS# dd if=/dev/urandom of=/mfsdata/test.dat bs=1M count=200# md5sum /mfsdata/test.dat522c27c45064c2d0463c168593f5bead /mfsdata/test.dat5.4 设置副本数量●查看目录现在的副本数量:# mfsgetgoal /mfsdata/mfsdata: 1# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422●更改目录现在的副本数量:# mfsrsetgoal 3 /mfsdata/mfsdata/:inodes with goal changed: 3 (3)inodes with goal not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后目录的副本数量:# mfsgetgoal /mfsdata/mfsdata: 3# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:94225.5 设置空间回收时间●查看目录当前回收时间:# mfsgettrashtime /mfsdata/mfsdata: 86400●设置目录当前回收时间为600秒:# mfsrsettrashtime 600 /mfsdata/mfsdata:inodes with trashtime changed: 3 (3)inodes with trashtime not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后空间回收时间:# mfsgettrashtime /mfsdata/mfsdata: 6006 破坏性测试6.1 测试数据存储服务器现在用4个服务器组成了MFS的存储平台,其中一个是master,其余三个服务器是chunkserver.先停止一个chunkserver服务,然后在某个MFS客户端往挂接点的目录(/mfsdata)里复制数据或者创建目录/文件、或者读取文件、或者删除文件,观察操作是否能正常进行。
分布式文件系统MFS(moosefs)实现存储共享
由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。
通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。
在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得 NFS服务器不堪重负。
察看系统日志,全是nfs服务超时之类的报错。
一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。
下面是某个集群使用nfs共享的示意图:这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。
基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。
采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS 客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。
到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lustre,hadoop,Pnfs等等。
我尝试了 PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。
为什么要选它呢?我来说说我的一些看法:1、实施起来简单。
MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。
看看lustre 700多页的pdf文档,让人头昏吧。
2、不停服务扩容。
MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。
分布式OS分布式文件系统
7.4 接口
7.4.3 目录服务
2 构建一个分层文件系统。类Unix分层文件系统由 排成树结构的目录组成。每个目录含有自身可以存 取到的文件和其他目录的名字。
一个类UNIX文件命名系统可以由采用了展开文件服 务和目录服务的客户组件实现。树形目录可以这样 实现:叶节点是文件,其他节点是目录。这种方法 可以用AddName操作和属性记录中的引用数值来实 现。
7.6 NFS分析
7.1 分布式文件系统的要求
分布式文件系统是分布式系统的基本构件之一,完成的功能 类似与传统操作系统的文件系统。它用来支持永久性存储介 质和信息的共享,允许用户程序直接存取远程文件而不需要 拷贝到本地站点。
文件系统在分布式操作系统中使用最频繁,因此它的功能和 性能要求很高。其设计需要满足分布式系统中的一些透明性 要求。要均衡灵活性和扩展性两方面的考虑。
当前的分布式文件系统大多支持以下部分的透明性:
7.1 分布式文件系统的要求
存取透明性:不知道文件的分布。 位置透明性:全局文件名空间。 并发存取透明性:一个用户修改不影响另一用户。 故障透明性:客户端或服务器端故障时不影响其它的正
确操作。 性能透明性:不会因距离而产生过多的性能衰减。
7.1 分布式文件系统的要求
7.4 接口
可以通过对接口过程的简单描述来描述这些系统接口。过程 名、输入参数、结果、错误条件的产生以及操作如下:
过程名(变量1,变量2,…)
(结果1,结果2,…)
Reports(错误1,错误2,…) 描述
输入参数数列在过程名后面的括号里。它的命名遵循下面的 规则。结果列在输入参数后面,中间用箭头隔开。其命名规 则同输入参数一样。所有可能的异常和错误条件都列在关键 字Reports的后面。
2022年职业考证-软考-信息系统运行管理员考试全真模拟易错、难点剖析AB卷(带答案)试题号:87
2022年职业考证-软考-信息系统运行管理员考试全真模拟易错、难点剖析AB卷(带答案)一.综合题(共15题)1.单选题系统管理员小孙使用uptime命令查看系统负载情况,下列输出结果显示服务器负荷较高的是()。
问题1选项A.12:08:37 up 160 days, 23:33, 15 users, load average: 0.01, 0.15, 0.10B.14:02:17 up 120 days, 21:33, 16 users, load average: 3.11, 2.65, 2.70C.15:08:37 up 660 days, 21:35, 19 users, load average: 2.01, 2.15, 2.10D.13:02:37 up 560 days, 20:36, 65 users, load average: 1.01, 2.15, 2.10【答案】B【解析】uptime的命令格式为:当前时间系统运行的天数,小时数,分钟数,当前登录到系统上的用户数,一分钟、五分钟、十五分钟的平均负载,显然B选项的后面三位数远高于其他选项,故选B。
2.单选题小张是信息系统设施运维工程师,他某天的工作内容为机房巡检、UPS电池扩容、月度应急演练。
从运维内容看,每项工作分别对应的类别为()。
问题1选项A.例行操作、优化改善、响应支持B.例行操作、例行操作、例行操作C.例行操作、响应支持、例行操作D.例行操作、优化改善、例行操作【答案】D【解析】机房巡检、月度应急演练这些是例行操作的工作,时刻关注机房的状况,以及应对突发事件。
UPS电池扩容这个是优化改善中的工作,原有的电池容量可能不够用了,扩容属于优化改善。
3.单选题银行信息系统要实现的目标包括:()、高度安全性、支持对大规模数据的并发处理、数据集中管理。
问题1选项A.数据分析与挖掘B.数据脱敏管理C.数据加密存储D.数据实时处理【答案】D【解析】本题考查银行信息系统的目标。
mfs分布式文件系统
mfs安装配置一、mfs安装1、首先全部关闭防火墙, 或者让9425, 9421, 9420通过主控服务器Master: 10.10.10.251备份服务器Metalogger: 192.168.1.161 存储服务器1 Chunk Servers 1: 192.168.0.59路径:编译路径/opt/soft安装路径/opt/mfs日志路径/data/mfs数据路径/mnt/mfschunks用户和组:组mfs用户mfs安装顺序为:master -> metalogger -> chunk server -> client在安装成功后, 我们再统一来修改配置, 启动, 使用服务器. 安装之前创建用户组和目录, 并赋予权限:groupadd mfsuseradd mfs -g mfs -s /sbin/nologinmkdir -p /opt/soft /data /mnt/mfschunkschown -R mfs:mfs /mnt/mfschunks2、首先安装mastercd /opt/mfs-1.6.27A、编译./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --locals tatedir=/data --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmountB、安装Make && make installC、配置文件cd /opt/mfs/etc/mfscp mfsmaster.cfg.dist mfsmaster.cfgcp mfsmetalogger.cfg.dist mfsmetalogger.cfgcp mfsexports.cfg.dist mfsexports.cfgcd /data/mfscp metadata.mfs.empty metadata.mfs3、然后是metalogger, metalogger和mester类似:cd mfs-1.6.27./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --locals tatedir=/data --with-default-user=mfs --with-default-group=mf s --disable-mfschunkserver --disable-mfsmountmake && make installcd /opt/mfs/etc/mfscp mfsmetalogger.cfg.dist mfsmetalogger.cfg4、然后是chunk server:./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --local statedir=/data --with-default-user=mfs --with-default-group=mf s --disable-mfsmaster --disable-mfsmounte)make && make installF)cd /opt/mfs/etc/mfsg)cp mfschunkserver.cfg.dist mfschunkserver.cfgh)cp mfshdd.cfg.dist mfshdd.cfg5、最后是client, 就是要使用mfs的机器cd /opt/mfs-1.6.27./configure --localstatedir=/data --with-default-user=mfs --wi th-default-group=mfs --disable-mfsmaster --disable-mfschunkse rver --enable-mfsmountMake && make install6、centos用户可以使用yum, 命令如下:yum install fuse.i386 fuse-devel.i386 fuse-libs.i386 z lib-devel.i386二、mfs配置1、mastervi /opt/mfs/etc/mfsexports.cfg第二行的"*"为指定允许挂载的ip, 我们以让192.168.1.1-255允许挂载为例:192.168.1.0/24 / rw,alldirs,maproot=0第一部分:客户端的ip地址第二部分:被挂接的目录第三部分:客户端拥有的权限第二部分说明/ 标识MooseFS根第三部分详细说明ro 只读模式共享rw 读写的方式共享alldirs 允许挂载任何指定的子目录maproot映射为root,还是指定的用户(0表示ROOT)password 指定客户端密码启动master/opt/mfs/sbin/mfsmaster start停止master/opt/mfs/sbin/mfsmaster stop检查是否配置成功ps -ef |grep mfsNetstat -nlp查看日志more -s /var/log/messages/opt/mfs/sbin/mfscgiserv #这个提供web的方式来查看master的状态, 访问地址为http://ip(master):9425在每台服务器的hosts加入如下vi /etc/hosts10.10.10.251 mfsmaster2、chunk serverVi /opt/mfs/etc/mfshdd.cfg加入如下, 指定客服端产生的数据存储位置:/mnt/mfsdd启动/opt/mfs/sbin/mfschunkserver start停止/opt/mfs/sbin/mfschunkserver stop3、Clinet挂载假如我们要挂载到/mnt/mfs目录mkdir -p /mnt/mfs/usr/local/bin/mfsmount /mnt/mfs/ -H mfsmasterdf -h就可以查看到mfsmaster已经被挂载了, 还有mfs的使用情况4、关闭顺序关闭如下, 客户端首先卸载文件系统:umount /mnt/mfs/opt/mfs/sbin/mfschunkserver stop/opt/mfs/sbin/mfsmetalogger stop/opt/mfs/sbin/mfsmaster stop(注:可以挂在根/目录下的子目录,配置文件加上192.168.40.0/24 /test rw,alldirs,maproot=0,password=tes t,注意test目录是在根目录已经创建好的子目录,并且挂载时使用mfsmount /mnt/client -H mfsmaster -o mfssubfolder=/test -p,否则会出现mfsmaster register error: Permission denied的错误。
MFS 分布式存储配置
MFS 文件系统的组成:1、元数据服务器。
在整个体系中负责管理管理文件系统,目前MFS 只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。
希望今后MFS 能支持多个master 服务器,进一步提高系统的可靠性。
2、数据存储服务器chunkserver。
真正存储用户数据的服务器,存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3,数据服务器可以是多个,并且数量越多,可使用的"磁盘空间"越小,可靠性也越高。
3、元数据日志服务器metalogger。
负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server 出问题的时候接替其进行工作,在1.6 版中新增加的功能。
4、客户端。
使用MFS 文件系统来存储和访问的主机称为MFS 的客户端,成功挂载MFS 文件系统以后,就可以像以前使用NFS 一样共享这个虚拟性的存储了。
搭建过程:mfsmaster:192.168.1.11mfschunk01:192.168.1.12mfschunk02:192.168.1.13mfsmetalogger:192.168.1.14client:192.168.1.15注意:都要关闭防火墙和Selinux首先搭建master[root@master opt]# lsmfs-1.6.26-1.el6.rf.x86_64.rpmmfs-cgi-1.6.26-1.el6.rf.x86_64.rpm[root@master opt]# rpm -ivh mfs-1.6.26-1.el6.rf.x86_64.rpm[root@master opt]# rpm -ivh mfs-cgi-1.6.26-1.el6.rf.x86_64.rpm[root@master opt]# ls -l /etc/mfstotal 24-rw-r--r--. 1 root root 509 Mar 21 2013 mfschunkserver.cfg.dist-rw-r--r--. 1 root root 0 Mar 10 10:14 mfsexports.cfg-rw-r--r--. 1 root root 4060 Mar 21 2013mfsexports.cfg.dist-rw-r--r--. 1 root root 57 Mar 21 2013mfshdd.cfg.dist-rw-r--r--. 1 root root 0 Mar 10 10:13 mfsmaster.cfg-rw-r--r--. 1 root root 879 Mar 21 2013 mfsmaster.cfg.dist-rw-r--r--. 1 root root 409 Mar 21 2013 mfsmetalogger.cfg.dist-rw-r--r--. 1 root root 1123 Mar 21 2013mfstopology.cfg.dist[root@master opt]# cd /etc/mfs/[root@mastermfs]# cpmfsmaster.cfg.distmfsmaster.cfg[root@mastermfs]# cpmfsexports.cfg.distmfsexports.cfg上面两个无需更改[root@mastermfs]# cp /var/mfs/metadata.mfs.empty /var/mfs/metadata.mfs[root@mastermfs]# /etc/init.d/mfsmaster startStarting mfsmaster:[root@mastermfs]# netstat -lanput|grepmfstcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 1275/mfsmastertcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 1275/mfsmastertcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 1275/mfsmaster[root@mastermfs]# chkconfigmfsmaster onmetalogger配置[root@metalogger ~]# lsanaconda-ks.cfg install.log mfs-1.6.26-1.el6.rf.x86_64.rpmDiscuz_X2_SC_UTF8.zip install.log.syslog[root@metalogger ~]# rpm -ivh mfs-1.6.26-1.el6.rf.x86_64.rpm[root@metalogger ~]# cd /etc/mfs/[root@metaloggermfs]# lsmfschunkserver.cfg.distmfshdd.cfg.distmfsmetalogger.cfg.distmfsexports.cfg.distmfsmaster.cfg.distmfstopology.cfg.dist[root@metaloggermfs]# cpmfsmetalogger.cfg.dist ./mfsmetalogger.cfg[root@metaloggermfs]# vimmfsmetalogger.cfg15 # MASTER_HOST = mfsmaster16 MASTER_HOST = 192.168.1.1117 # MASTER_PORT = 9419[root@metaloggermfs]# /etc/init.d/mfsmetalogger startStarting mfsmetalogger:[root@metaloggermfs]# netstat -lanput|grepmfstcp 0 0 192.168.1.14:50544 192.168.1.11:9419 ESTABLISHED 1553/mfsmetalogger[root@metaloggermfs]# chkconfigmfsmetaloggeronclient01配置[root@chunkserver01 ~]# rpm -ivh mfs-1.6.26-1.el6.rf.x86_64.rpm[root@chunkserver01 ~]# cd /etc/mfs/[root@chunkserver01 mfs]# lsmfschunkserver.cfg.distmfshdd.cfg.distmfsmetalogger.cfg.distmfsexports.cfg.distmfsmaster.cfg.distmfstopology.cfg.dist[root@chunkserver01 mfs]# ls /dev/sd*/dev/sda /dev/sda2 /dev/sda4 /dev/sdb/dev/sda1 /dev/sda3 /dev/sda5 /dev/sdb1[root@chunkserver01 mfs]# vimmfschunkserver.cfg12 # MASTER_HOST = mfsmaster13 MASTER_HOST = 192.168.1.11 master的ip[root@chunkserver01 mfs]# tail -n 1 mfshdd.cfg/data创建并且要挂在的目录[root@chunkserver01 mfs]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda2 10079084 2893460 6673624 31% /tmpfs 189864 22576 167288 12% /dev/shm/dev/sda1 198337 33891 154206 19% /boot/dev/sda5 9351388 6679728 2196628 76% /opt/dev/sr0 3632776 3632776 0 100% /iso/dev/sdb1 2063504 1216656 742028 63% /data[root@chunkserver01 mfs]# cat>> /etc/fstab<<EOF> /dev/sdb1 /data ext4 defaults 1 2> EOF[root@chunkserver01 mfs]# tail -n 1 /etc/fstab/dev/sdb1 /data ext4 defaults 1 2[root@chunkserver01 mfs]# /etc/init.d/mfschunkserver startStarting mfschunkserver:[root@chunkserver01 mfs]# chkconfigmfschunkserver on[root@chunkserver01 mfs]# netstat -lanput|grepmfstcp 0 0 0.0.0.0:9422 0.0.0.0:* LISTEN 2480/mfschunkservertcp 0 0 192.168.1.12:54588 192.168.1.11:9420 ESTABLISHED 2480/mfschunkserver[root@chunkserver01 mfs]# ls /data00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0 FF01 10 1F 2E 3D 4C 5B 6A 79 88 97 A6 B5 C4 D3 E2 F1 lost+found02 11 20 2F 3E 4D 5C 6B 7A 89 98 A7 B6 C5 D4 E3 F203 12 21 30 3F 4E 5D 6C 7B 8A 99 A8 B7 C6 D5 E4 F304 13 22 31 40 4F 5E 6D 7C 8B 9A A9 B8 C7 D6 E5 F405 14 23 32 41 50 5F 6E 7D 8C 9B AA B9 C8 D7 E6 F506 15 24 33 42 51 60 6F 7E 8D 9C AB BA C9 D8 E7 F607 16 25 34 43 52 61 70 7F 8E 9D AC BB CA D9 E8 F708 17 26 35 44 53 62 71 80 8F 9E AD BC CB DA E9 F809 18 27 36 45 54 63 72 81 90 9F AE BD CC DB EA F90A 19 28 37 46 55 64 73 82 91 A0 AF BE CD DC EB FA0B 1A 29 38 47 56 65 74 83 92 A1 B0 BF CE DD EC FB0C 1B 2A 39 48 57 66 75 84 93 A2 B1 C0 CF DE ED FC0D 1C 2B 3A 49 58 67 76 85 94 A3 B2 C1 D0 DF EE FD0E 1D 2C 3B 4A 59 68 77 86 95 A4 B3 C2 D1 E0 EF FEchunk02也是一样的配置client的配置[root@client mfs-1.6.27]# ls ~/anaconda-ks.cfginstall.log.syslog mfs-1.6.27install.logiso mfs-1.6.27-1.tar.gz[root@client mfs-1.6.27]# tar -xvf mfs-1.6.27-1.tar.gz[root@client mfs-1.6.27]# lsaclocal.m4 configure.ac ltmain.shmfsdata READMEconfig.guess COPYING m4 mfsmaster rpmconfig.hdebianMakefilemfsmetadump stamp-h1config.h.indepcomp Makefile.am mfsmetalogger UPGRADEconfig.log doc Makefile.in mfsmetarestoreconfig.status INSTALLmfscgimfsmountconfig.sub install-shmfschunkserver missingconfigurelibtoolmfscommon NEWS[root@client mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --enable-mfsmount[root@client mfs-1.6.27]# make&& make install[root@client mfs-1.6.27]# vim /root/.bash_profilePATH=/usr/local/mfs/bin:$PATH:$HOME/bin[root@client mfs-1.6.27]# source /root/.bash_profile[root@client mfs-1.6.27]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda2 9.7G 1.9G 7.4G 20% /tmpfs 184M 0 184M 0% /dev/shm/dev/sda1 194M 42M 142M 23% /boot/dev/sda5 9.0G 185M 8.3G 3% /opt/dev/sr0 3.5G 3.5G 0 100% /iso192.168.1.11:9421 3.2G 0 3.2G 0% /mnt[root@client mfs-1.6.27]# dd if=/dev/zero of=/mnt/aa01 bs=1M count=2048 2048+0 records in2048+0 records out2147483648 bytes (2.1 GB) copied, 76.4833 s, 28.1 MB/s查看chunk01:chunk02[root@chunkserver01 mfs]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda2 9.7G 2.8G 6.4G 31% /tmpfs 186M 23M 164M 12% /dev/shm/dev/sda1 194M 34M 151M 19% /boot/dev/sda5 9.0G 6.4G 2.1G 76% /opt/dev/sr0 3.5G 3.5G 0 100% /iso/dev/sdb1 2.0G 1.1G 853M 56% /data[root@chunkserver02host ~]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda3 a1 194M 26M 159M 14% /boot /dev/sr0 3.5G 3.5G 0 100% /iso/dev/sdb1 2.0G 1.1G 853M 56% /data数据各自存储一半测试:当机一台chunk01,看是否能够存储[root@chunkserver01 mfs]# /etc/init.d/mfschunkserver stopStopping mfschunkserver:[root@chunkserver01 mfs]# netstat -lanput|grepmfs[root@client mfs-1.6.27]# dd if=/dev/zero of=/mnt/aa01 bs=1M count=500 [root@client mfs-1.6.27]# dd if=/dev/zero of=/mnt/aa01 bs=1M count=500 500+0 records in500+0 records out524288000 bytes (524 MB) copied, 21.7707 s, 24.1 MB/s[root@chunkserver02host ~]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda3 14G 5.4G 7.6G 42% /tmpfs 186M 26M 161M 14% /dev/shm/dev/sda1 194M 26M 159M 14% /boot/dev/sr0 3.5G 3.5G 0 100% /iso/dev/sdb1 2.0G 793M 1.1G 42% /data[root@client mfs-1.6.27]# dd if=/dev/zero of=/mnt/aa01 bs=1M count=500500+0 records in500+0 records out524288000 bytes (524 MB) copied, 21.7707 s, 24.1 MB/s[root@chunkserver02host ~]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda3 14G 5.4G 7.6G 42% /tmpfs 186M 26M 161M 14% /dev/shm/dev/sda1 194M 26M 159M 14% /boot/dev/sr0 3.5G 3.5G 0 100% /iso/dev/sdb1 2.0G 537M 1.4G 29% /data再次启动chunk01[root@chunkserver01 mfs]# /etc/init.d/mfschunkserver startStarting mfschunkserver:[root@chunkserver01 mfs]# netstat -lanput|grepmfstcp 0 0 0.0.0.0:9422 0.0.0.0:* LISTEN 4028/mfschunkservertcp 0 0 192.168.1.12:54616 192.168.1.11:9420 ESTABLISHED 4028/mfschunkserver[root@chunkserver01 mfs]# df -hFilesystemSize Used Avail Use% Mounted on/dev/sda2 9.7G 2.8G 6.4G 31% /tmpfs 186M 23M 164M 12% /dev/shm/dev/sda1 194M 34M 151M 19% /boot/dev/sda5 9.0G 6.4G 2.1G 76% /opt/dev/sr0 3.5G 3.5G 0 100% /iso/dev/sdb1 2.0G 1.1G 853M 56% /data发现数据依然没有变化。
mfs安装使用说明
分布式文件系统MFS(moosef s)实现存储共享(第二版)作者:田逸(***********m)由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keep alived的方式),但仍然有用户反馈访问慢的问题。
通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。
在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得N FS服务器不堪重负。
察看系统日志,全是nfs服务超时之类的报错。
一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。
下面是某个集群使用nfs共享的示意图:这种架构除了性能问题而外,还存在单点故障,一旦这个NF S服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rs ync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。
基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。
采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。
到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lust re,hadoop,Pnfs等等。
我尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moose fs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。
为什么要选它呢?我来说说我的一些看法:1、实施起来简单。
mfs文件系统使用手册
MFS文件系统使用手册作者:ltgz s777整理:nonamexz对于mfs文件系统也用了半年了,确实不错,最近又翻译了作者的三篇文章,再此一同发上,希望对大家有所帮助。
不足之处还请指出,以便完善,谢谢!官方的网络示意图是这样的:MFS 文件系统结构:具体的实例安装和配置元数据服务(master server )安装元数据服务角色角色作用管理服务器managing server (master)负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝元数据日志服务器Metalogger server (Metalogger )负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs ,以便于在master server 出问题的时候接替其进行工作数据存储服务器data servers (chunkservers)负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.客户机挂载使用client computers 通过fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix 文件系统使用一样的效果.mfsmaster.cfg的配置配置文件位于安装目录/usr/local/mfs/etc,需要的配置文件有两个:mfsmaster.cfg和mfsexports.cfg,mfsmaster.cfg是主配置文件,mfsexports.cfg是被挂接目录及权限设置。
需要注意的是,凡是用#注释掉的变量均使用其默认值。
以上是对master server的mfsmaster.cfg配置文件的解释,对于这个文件不需要做任何修改就可以工作。
mfsexports.cfg的配置该文件每一个条目分为三部分:第一部分:客户端的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指定客户端密码启动master servermaster server可以单独启动(所谓单独启动就是在没有数据存储服务器(chunkserver)的时候也可以启动,但是不能存储,chunkserver启动后会自动的加入)。
分布式系统
服务器管理与配置分布式系统作业学院:计算机学院专业:网络工程班级:xx姓名:xx学号:xx分布式系统一.创建一个分布式文件系统第一步:创建控制台开始这个过程首先要在“运行”命令中输入Microsoft Management Console(管理控制台,MMC)命令。
当你输入之后,Windows 将会载入一个空的管理控制台。
现在,你要在控制台的“文件”菜单中选择“添加或移除管理单元(Snap-In)”命令。
Windows随后会显示出添加或移除管理单元的属性菜单。
在这个时候,要点击基于属性菜单中“Standalone”标签下的“添加”按钮,以便显示出所有可用管理单元的表列。
从表列中选择分布式文件系统选项,并点击“添加”按钮,接下来点击“关闭”和“确认”按钮。
第二步:创建DFS根“根”就是DFS层级结构的最顶层。
一个根当中包含了多个共享文件夹。
要在目前含有你的一些数据的服务器中创建根,你需要在控制台中用鼠标右键点击“分布式文件系统容器(container)”,然后从快捷菜单中选择“新的根”命令。
这样做能够使Windows载入新的根安装向导程序。
点击“下一步”越过安装向导的欢迎界面。
这时向导会询问你是要创建一个独立的根还是创建一个域的根。
域的根只存在于Windows Server 2003中。
它们支持自动的数据复制。
对于本文的目的而言,应该选择域的根选项,然后点击“下一步”。
向导的下一个界面是询问你哪一个域作为你所创建的根的主域。
选择合适的域,然后点击“下一步”。
现在,你必须输入将要做为新创建的根的主机的服务器的名称。
这个服务器必须是你在上一步所选择的域的一个成员。
输入完全符合域的要求的服务器名称,然后点击“下一步”。
第三步:给根命名向导的下一个界面要求你输入你所创建的根的名称。
Windows将会创建一个与你所输入的根的名称一致的共享名称。
我还推荐你应该输入一些描述文字,以便帮助你记住这个根是做什么用的。
mogileFS安装配置
mogileFS安装配置mogileFS安装配置2011年09月30日一、【理论知识】MogileFS 是一个分布式文件存储的解决方案,它能够做到不需要特殊的核心组件、无单点失败、自动的文件复制、比RAID好多了、传输中立,无特殊协议(客户端可以通过NFS或HTTP来和MogileFS通信)、简单的命名空间、不用共享任何东西、不需要RAID、不会碰到文件系统本身的不可知情况等等优点。
相关知识和安装方面的问题可以去看官方的wiki:。
(有可能被GFW 了,请使用代理或者安装一个Firefox的gladder插件来访问)[ Mogilefs分为几部分 ]1. 数据库(MySQL)部分你可以用mogdbsetup程序来初始化数据库。
数据库保存了Mogilefs 的所有元数据,你可以单独拿数据库服务器来做,也可以跟其他程序跑在一起,数据库部分非常重要,类似邮件系统的认证中心那么重要,如果这儿挂了,那么整个Mogilefs将处于不可用状态。
因此最好是HA结构。
2. 存储节点mogstored程序的启动将使本机成为一个存储节点。
启动时默认去读/etc/mogilefs/mogstored.conf ,具体配置可以参考配置部分。
mogstored启动后,便可以通过mogadm增加这台机器到cluster中。
一台机器可以只运行一个 mogstored作为存储节点即可,也可以同时运行其他程序。
3. trackers(跟踪器)mogilefsd即trackers程序,类似mogilefs的wiki上介绍的,trackers做了很多工作,Replication ,Deletion,Query,Reaper,Monitor 等等。
mogadm,mogtool的所有操作都要跟trackers打交道,Client的一些操作也需要定义好trackers,因此最好同时运行多个trackers来做负载均衡。
trackers也可以只运行在一台机器上,也可以跟其他程序运行在一起,只要你配置好他的配置文件即可,默认在/etc/mogilefs/mogilefsd.conf。
mfs简单安装
3、数据存储服务器(chunk server)
一、安装元数据服务器
1、建立用户
# useradd -s /sbin/nologin -d /dev/null mfs
2、编译安装
tar zxvf mfs-1.6.11.tar.gz -C /usr/src/
cd /usr/src/mfs-1.6.11/
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs && make && make install
MFS 分布式文件系统
组成:
1、元数据服务器(Master)
正整个分布式文件系统中作为管理者,管理文件系统的状态信息。目前也只能支持当个元数据服务器。缺点:存在单点故障。
2、元数据日志服务器(Metalogger)
备份元数据服务器上的元数据文件和日志文件,文件类型: changelog_ml.*.mfs 作用:当元数据服务器crash,可以用于恢复,或者取代元数据服务器。
# modprobe fuse
mfs-1.6.1
为了编译不出错,这样:
# vim /etc/profile 最底部添加一句:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
MFS完全安装手册
MFS完全安装手册免费下载陈轶博2010.7.7目录1. MooseFS文件系统概述 (3)1.1. MooseFS文件系统的组成 (3)2.安装步骤 (4)2.1.建议安装环境 (4)2.2.元数据Master服务器的安装 (4)2.2.1. configure的部分参数 (4)2.2.2.安装 (4)2.2.3.配置 (5)2.2.4.元数据服务器master启动 (5)2.2.5.关闭和重启元数据服务器 (6)2.2.6.查看元数据服务器的状态 (6)2.2.7.启动和停止Web GUI (6)2.3.数据存储chunkserver服务器的安装 (6)2.3.1.安装 (6)2.3.2.配置 (7)2.3.3.存储服务器chunkserver启动 (8)2.3.4.关闭存储服务器 (8)2.3.5.重启存储服务器 (8)2.3.6.检查运行状态 (8)2.4.客户端Clinet的安装及配置 (8)2.4.1. Fuse的安装: (8)2.4.2. MooseFS客户端的安装 (9)2.4.3.挂接和使用MooseFS文件系统 (9)2.4.4.卸载挂载点 (9)2.5.元数据备份服务器metalogger的安装 (10)2.5.1.元数据服务器metalogger的安装 (10)2.5.2. Metalogger的配置 (10)3.管理命令 (10)4. MooseFS master 恢复 (11)1.MooseFS文件系统概述1.1. MooseFS文件系统的组成◆元数据服务器。
在整个体系中负责管理管理文件系统,目前MooseFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。
希望今后MooseFS 能支持多个master服务器,进一步提高系统的可靠性。
◆数据存储服务器chunkserver。
真正存储用户数据的服务器。
存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。
MFS keepalived分布式文件系统安装配置
MFS+KeepAlived 分布式文件系统部署手册目录一、应用部署情况 (3)二、角色说明 (4)1.拓扑简单工作原理 (4)2.服务器功能描述 (4)三、原理概述 (5)1.MFS元数据备份 (5)2.MFS Master的恢复 (5)3.利用keepalived实现自动恢复与Master切换 (5)四、部署说明 (6)1.Master Server 安装 (6)2.Backup server (metalogger) 安装 (7)3.存储块服务器Chunk servers 安装 (7)4.客户端安装 (8)5.在主从机器上安装keepalived (9)6.keepalived 主服务器配置 (10)7.keepalived 从服务器配置 (12)8.启动顺序 (14)9.关闭顺序 (15)五、MFS常用操作 (16)一、应用部署情况序号主机名应用部署IP地址VIP1 NBJK-ZX-MFSMASTERMFS(Master),keepalived((Master)192.168.100.141192.168.100.1772 NBJK-ZX-MFSBACKUPMFS(MFSBACKUP),keepalived((BACKUP)192.168.100.1443 NBJK-ZX-CHUNK1MFS(chuckserver) 192.168.100.1754 NBJK-ZX-CHUNK2MFS(chuckserver) 192.168.100.1765 NBJK-ZX-CHUNK3MFS(chuckserver) 192.168.100.1746 Client mfsclient 192.168.100.51二、 角色说明Master server :192.168.100.141Metalogger server: 192.168.100.144keepalived MASTER 192.168.100.177keepalived BACKUP 192.168.100.177mfsmount 192.168.100.177:9421Chunk servers1: 192.168.100.175Chunk servers2: 192.168.100.176Chunk servers3: 192.168.100.174Data managementClient192.168.100.51Data transmissionData operations192.168.100.177:9420192.168.100.141:9419192.168.100.174:9422:/data/192.168.100.175:9422:/data1/192.168.100.176:9422:/data1/1. 拓扑简单工作原理mfservermastet 管理控制是MFS 分布式文件系统核心,负责处理client 与chunkserver 之间的联系;Chunkserver 提供存储数据的空间,通常是分区,磁盘,RAID 等设备。
第八章 分布式文件系统MooseFS
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock
启动元数据日志服务器
[root@mytest2 etc]# /usr/local/mfs/sbin/mfsmetalogger start
#元数据日志服务器运行时在系统日志输出的标识。
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
#从元数据服务器(master)抓回文件,然后进行存放的路径。
# DATA_PATH = /usr/local/mfs/var/mfs
#存放备份日志的总个数为50并轮转。
# BACK_LOGS = 50
#元数据备份文件下载请求频率。默认为24小时。即每隔1天从源数据服务器下载一个metadata.mfs.back文件。当元数据服务器关闭或者出现故障的时候,此文件消失。如果要恢复
整个MFS,则需从元数据日志服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被破坏的分布式文件系统。
mfsmaster daemon initialized properly
MFS软件安装
MFS软件安装2.3.1 配置参数(用时10分钟)1、启动GPRS Terminal软件(参阅‚starting the IMT see A9130 MFSEvolution IMT User Guide文档)2、在GPRS Terminal窗口,按以下菜单顺序:View -> Profile –> View,打开MFS属性窗口3、输入下列参数:‘type_product’‘shelf_type_config’‘mic_type_synchro’4、如果’mic_type_synchro’为autonomous,那么:●在GPRS Terminal窗口,按以下菜单顺序:View ->Physical View –> Shelf_3/4 –> front view打开前部物理视图●选择GPU板,一个接一个标注显示时钟图标的PCM-TTP5、关闭GPRS Terminal2.3.2 通过PC完成MFS软件安装前必须安装的软件在开始MFS软件安装前必须首先安装以下应用软件:●DHCP/BOOTP/TFTP Server●Pro NFS Server●Kaboot mechanism●Xalan and xerces on C++ software●Expect.★安装TCL / Expect:(用时3分钟)1、如果当前已安装有Expect软件必须首先卸载,卸载之后检查目录c:\Except应不存在,若存在则删除这一目录2、插入TOMAS光盘到CD-ROM3、从TOMAS光盘的子目录/Serverinstall目录中,选择装载安装文件:expect-5_21r1b1-setup.exe4、当窗口出现‘Wellcome’时,选择〖Next〗;当窗口出现‘For more information...’时,选择〖Next〗;5、输入安装路径c:\Expect选择〖Next〗,显示’Program icon folder‘选择〖Next〗,显示’Ready‘选择〖Next〗,显示’Setup was successful‘选择〖Close〗,关闭‘Expect 5.21’窗口★安装Tftpboot软件(用时5分钟)1、检查目录c:\tftpboot是否存在,如果存在删除此文件夹2、如果不存在,插入TOMAS光盘到PC3、进入光盘的\Serverinstall目录4、装载tftpboot.exe5、Unzip文件到c:\tftpboot文件夹6、点击〖OK〗7、在‘WinZip Self-Extractor’窗口中点击〖Close〗★安装XercesXalanC++.exe软件(用时2分钟)1、检查目录c:\ XercesXalanC++是否存在,若存在则删除此目录2、如果目录不存在,插入TOMAS光盘到PC3、进入光盘\Serverinstall目录4、载入XercesXalanC++.exe,解压(unzip)到c:\ XercesXalanC++目录5、点击〖OK〗6、在‘WinZip Self-Extractor’窗口中点击〖Close〗★TOMAS目录安装(用时2分钟)1、检查目录c:\TomasInstall是否存在,若存在则删除此目录2、如果不存在,插入TOMAS光盘到PC3、进入光盘\ServerInstall目录4、载入autoinstall_v5.6-11.exe,unzip(解压)到目录c:\TomasInstall5、点击〖OK〗6、在‘WinZip Self-Extractor’窗口中点击〖Close〗★安装NFS Server(用时5分钟)1、如果已存在某版本的ProNFS软件,首先卸载,卸载之后检查目录c:\Program Files\Labtam●如果存在,清空目录里的文件●如果不存在,必须创建此目录2、如果没安装此软件,插入TOMAS 光盘到PC3、进入光盘的\ServerInstall目录4、载入pnfslabp.exe, 在‘WinZip Self-Extractor’窗口中点击〖OK〗5、解压(Unzip)文件到c:\Program Files\Labtam,然后点击〖Unzip〗6、在文件解压缩成功以后点击〖OK〗7、选择以下默认选择〖Next〗,〖Yes〗,〖Next〗,〖Next〗,〖Next〗,〖Next〗和〖Finish〗,完成安装。
Hadoop分布式文件系统的配置与使用教程
Hadoop分布式文件系统的配置与使用教程Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)是一种适用于大数据处理的可靠、安全且高扩展性的分布式文件系统。
它能够将大容量的数据分散存储在集群的多台计算机上,并提供高效的数据访问方式。
本文将为您提供关于Hadoop 分布式文件系统的配置和使用教程。
**1. 配置Hadoop集群**首先,我们需要准备一个Hadoop集群,该集群包括主节点和若干个从节点。
主节点负责协调和管理整个集群,而从节点则负责存储和处理数据。
2. 安装Hadoop在配置Hadoop集群之前,我们需要将Hadoop安装在每个节点上。
您可以从Hadoop官方网站下载最新版本的Hadoop。
下载完成后,解压缩文件并将其移动到您选择的安装目录。
3. 配置Hadoop集群文件在配置Hadoop集群之前,您需要对一些配置文件进行修改。
这些配置文件位于Hadoop的安装目录中的“etc/hadoop”文件夹中。
以下是一些需要注意的主要配置文件:- core-site.xml: 设置Hadoop核心属性,如HDFS的命名节点和文件系统的URI。
- hdfs-site.xml: 配置HDFS的属性,如数据块大小、副本数量等。
- mapred-site.xml:配置Hadoop MapReduce属性,如MapReduce框架的任务分配方式等。
- yarn-site.xml:配置Hadoop资源管理器(YARN)属性,如内存和CPU分配等。
配置完成后,将这些文件复制到Hadoop集群的每个节点。
4. 格式化文件系统在配置完成后,我们需要格式化HDFS文件系统以准备存储数据。
在主节点上, 打开终端并使用以下命令格式化文件系统:```hadoop namenode -format```5. 启动Hadoop集群在所有节点上启动Hadoop集群。
首先进入Hadoop的安装目录并输入以下命令:```start-dfs.sh```这个命令将启动HDFS服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MFS分布式文件系统安装配置拓扑上述拓扑简单工作原理;管理控制是MFS分布式文件系统核心,负责处理client与chunkserver之间的联系。
Chunkserver提供存储数据的空间,通常是分区,磁盘,RAID等设备。
服务器功能描述:管理服务器(master):负责各个数据存储服务器(chunkserver)的管理,文件读写调度,文件空间回收以及恢复,多点拷贝元数据日志服务器(metalogger):负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便master出故障时接替其工作数据存储服务器(chunkserver):提供存储空间,听从master调度,为客户提供数据传输客户机:挂载目录,挂载点是master服务器的VIP,而非数据存储服务器的IP。
MFS启动顺序1.启动管理服务器2.启动所有的数据存储服务器3.启动元数据服务器(如果有的话)4.当所有数据存储服务器连接到管理服务器,用户就可以挂载目录。
(要了解数据存储服务器是否连接到了管理服务器,可通过查看管理服务器的日志或是查看WEB管理界面得知)MFS安全关闭顺序1.客户机卸载所有已挂在目录2.关闭数据存储服务器3.关闭元数据服务器(如果有的话)4.最后,关闭管理服务器元数据服务器的备份1. 主要的元数据文件有metadata.mfs和metadata.mfs.back,在管理服务器运行期间,元舒服服务器默认每隔24小时与其做同步2. 元数据变更日志会存储在硬盘上几个小时,这个存储时间由BACK_LOGS设置定义The main metadata file needs regular backups with the frequency depending on how many hourly changelogs are stored. Metadata changelogs should be automatically replicated in real time. Since MooseFS 1.6.5, both tasks are done by mfsmetalogger daemon.管理服务器灾难恢复操作:一旦崩溃,元数据变更日志需要整合进主元数据文件中(metadata.mfs)。
可以用mfsmetarestore工具完成整合工作。
最简单的操作:/usr/local/mfs/bin/mfsmetarestore -a如果元数据是存放在其他目录,而非编译时指定的目录。
那么需要指定目录的具体位置/usr/local/mfs/bin/mfsmetarestore -a -d /storage/mfsmaster测试环境概述:数据存储服务器:新增2GB硬盘用于数据存储副本概述:一个数据存储服务器可理解为一个副本,有多少存储服务器就有多少个副本客户机:每个文件保留2个副本(2个数据存储服务器)资源描述1. 数据存储服务器向client提供数据存储目录(2台都一样)/mnt/chunk12. 客户机挂载点/mnt/client1两台数据存储服务器同时宕机情况:客户机所挂载的目录不会断开链接(虚机测试下来的确是没有断很奇怪),已有的文件仍可以访问,但不能写入,至少要有1台数据存储服务器提供服务======================================Master主控服务器的安装配置(2台配置相同)添加用户和组groupadd mfsuseradd -g mfs -s /sbin/nologin sbin安装tar zxvf mfs-1.6.20-2.tar.gzcd mfs-1.6.20-2./configure --prefix=/usr/local/mfs --with-default-user=mfs \--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount makemake install配置进入目录/usr/local/mfs/etccp mfsexports.cfg.dist mfsexports.cfgcp mfsmaster.cfg.dist mfsmaster.cfgmfsmaster.cfg不用修改就可以工作编辑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 = * <--metalogger监听的IP地址# MATOML_LISTEN_PORT = 9419 <--metalooger监听的端口# MATOCS_LISTEN_HOST = * <--chunkserver监听的IP地址# MATOCS_LISTEN_PORT = 9420 <--chunkserver监听的端口# MATOCU_LISTEN_HOST = * <-- client监听的IP地址# MATOCU_LISTEN_PORT = 9421 <--client监听的端口# CHUNKS_LOOP_TIME = 300# CHUNKS_DEL_LIMIT = 100# CHUNKS_WRITE_REP_LIMIT = 1# CHUNKS_READ_REP_LIMIT = 5# REJECT_OLD_CLIENTS = 0# LOCK_FILE = /var/run/mfs/mfsmaster.lockmfsexports.cfg 指定哪个客户被允许挂载进入目录/usr/local/mfs/var/mfs该目录存放metadata数据和changelog数据mv metadata.mfs.empty metadata.mfs启动/usr/local/mfs/sbin/mfsmaster start启动完之后会在/usr/local/mfs/var/mfs目录里生成metadata.mfs.back停止(切忌不要使用kill杀死进程)/usr/local/mfs/sbin/mfsmaster -s开启WEB监视,以便使用浏览器对整个MFS进行监视/usr/local/mfs/sbin/mfscgiserv访问方式:http://ip:9425==============================================================================元数据服务器的安装配置添加用户和组groupadd mfsuseradd -g mfs -s /sbin/nologin sbin安装tar zxvf mfs-1.6.20-2.tar.gzcd mfs-1.6.20-2./configure --prefix=/usr/local/mfs --with-default-user=mfs \--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount makemake install配置进入目录/usr/local/mfs/etccp mfsmetalogger.cfg.dist mfsmetalogger.cfg编辑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 = 50META_DOWNLOAD_FREQ = 1 <--每隔1小时从主控服务器下载元数据文件和变更日志文件# MASTER_RECONNECTION_DELAY = 5MASTER_HOST = 192.168.1.254 <--主控服务器的VIP地址# MASTER_PORT = 9419# MASTER_TIMEOUT = 60启动/usr/local/mfs/sbin/mfsmetalogger start启动后,会在目录/usr/local/mfs/var/mfs生成changelog_ml_back.N.mfs和metadata_ml.mfs.back(从主控服务器下载来)停止(切忌不要使用kill杀死进程)/usr/local/mfs/sbin/mfsmetalogger -s==============================================================================数据存储服务器安装配置(磁盘空间必需大于1GB,否则client无法写入数据)添加用户和组groupadd mfsuseradd -g mfs -s /sbin/nologin sbin安装tar zxvf mfs-1.6.20-2.tar.gzcd mfs-1.6.20-2./configure --prefix=/usr/local/mfs --with-default-user=mfs \--with-default-group=mfs --disable-mfsmastermakemake install配置进入目录/usr/local/mfs/etccp mfschunkserver.cfg.dist mfschunkserver.cfgcp mfshdd.cfg.dist mfshdd.cfg编辑mfschunkserver.cfg# WORKING_USER = mfs# WORKING_GROUP = mfs# SYSLOG_IDENT = mfschunkserver# LOCK_MEMORY = 0# NICE_LEVEL = -19# DATA_PATH = /usr/local/mfs/var/mfs# MASTER_RECONNECTION_DELAY = 5# BIND_HOST = *MASTER_HOST = 192.168.1.254 <--主控服务器的VIP地址# MASTER_PORT = 9420# MASTER_TIMEOUT = 60# CSSERV_LISTEN_HOST = *# CSSERV_LISTEN_PORT = 9422# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg# HDD_TEST_FREQ = 10# LOCK_FILE = /var/run/mfs/mfschunkserver.lock# BACK_LOGS = 50# CSSERV_TIMEOUT = 5编辑mfshdd.cfg/mnt/chunk1 <--给clinet挂载的目录chown –R mfs: /mnt/chunk1启动/usr/local/mfs/sbin/mfschunkserver start停止(切忌不要使用kill杀死进程)/usr/local/mfs/sbin/mfschunkserver -s==============================================================================Client的安装及配置Fuse的安装(版本要2.6以上)tar zxvf fuse-2.7.4.tar.gzcd fuse-2.7.4./configure && make && make installmodprobe fuse添加用户和组groupadd mfsuseradd -g mfs -s /sbin/nologin sbintar zxvf mfs-1.6.20-2.tar.gzcd mfs-1.6.20-2./configure --prefix=/usr/local/mfs --with-default-user=mfs \--with-default-group=mfs --disable-mfsmaster --disable-mfschunkservermakemake install建立用于挂载的目录mkdir /mnt/client1挂载ChunkServer目录(/mnt/chunk1)/usr/local/mfs/bin/mfsmount /mnt/client1 -H 192.168.1.254注意:挂载的IP是主控服务器的VIP而不是ChunkServer的IP卸载挂接umount -l /mnt/chunk1==============================================================================Keepalived实现两台控制器的主备切换安装keepalivedtar zxvf keepalived-1.1.17.tar.gzcd keepalived-1.1.17./configure --prefix=/usr/local/keepalivedmake && make installmkdir /etc/keepalivedcp /usr/local/src/keepalived-1.1.17/keepalived/etc/keepalived/keepalived.conf /etc/keepalivedcp /usr/local/src/keepalived-1.1.17/keepalived/etc/init.d/keepalived.sysconfig /etc/sysconfig/keepalived cp /usr/local/src/keepalived-1.1.17/keepalived/etc/init.d/keepalived.init /etc/init.d/keepalived chmod 700 /etc/init.d/keepalivedchkconfig --add keepalivedchkconfig keepalived on启动方式/usr/local/keepalived/sbin/keepalived -d停止方式/etc/init.d/keepalived stop主配置vrrp_script chk_mfs {script "/opt/scripts/mfs_check.sh" <--检测mfsmaster进程interval 1weight -100}vrrp_instance external {state MASTERinterface eth0lvs_sync_daemon_interface eth0virtual_router_id 51priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.254}track_script {chk_mfs}}mfs_check.sh脚本#!/bin/sh# Need nmap softwareip="192.168.1.243"port_9419=9419port_9420=9420port_9421=9421logfile="/var/log/mfs_check.log"date=`date +%Y-%m-%d`status_9419=`nmap -p$port_9419 $ip | grep closed | awk '{print $2}'` if [ "$status_9419" = "closed" ]; thenmfs_status_9419=0elsemfs_status_9419=1fistatus_9420=`nmap -p$port_9420 $ip | grep closed | awk '{print $2}'` if [ "$status_9420" = "closed" ]; thenmfs_status_9420=0elsemfs_status_9420=1fistatus_9421=`nmap -p$port_9421 $ip | grep closed | awk '{print $2}'`if [ "$status_9421" = "closed" ]; thenmfs_status_9421=0elsemfs_status_9421=1fiif [[ $mfs_status_9419 -eq 0 || $mfs_status_9420 -eq 0 || $mfs_status_9421 -eq 0 ]]; thenecho "stop keepalived" | tee -a $logfile/etc/init.d/keepalived stopreturn 0fi辅配置vrrp_instance external {state BACKUPinterface eth0lvs_sync_daemon_interface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.254}notify_master /opt/scripts/mfs_start.sh <---进入主状态,开启MFSnotify_backup /opt/scripts/mfs_stop.sh <---进入备份状态,关闭MFS}mfs_start.sh脚本#!/bin/shlogfile="/var/log/mfs_status.log"date=`date +%Y-%m-%d`cmd="/usr/local/mfs/sbin/mfsmaster"echo "${date}: start Mfsmaster Progress" | tee -a $logfile$cmd startmfs_stop.sh脚本#!/bin/shlogfile="/var/log/mfs_status.log"date=`date +%Y-%m-%d`cmd="/usr/local/mfs/sbin/mfsmaster"echo "${date}: stop Mfsmaster Progress" | tee -a $logfile$cmd -s=======================================MFS操作:1.设定每个写入文件都有2个存储副本,一个副本就是一个数据存储服务器需要在客户机上操作:/usr/local/mfs/bin/mfssetgoal 2 /mnt/client1/此时,向/mnt/client1目录写入的文件及子目录都有两个副本保存注意:对于已经存在的文件不会改变其副本数,只对后续新写入的文件副本数生效2.新增一台数据存储服务器,改变现有文件及后续新写入文件副本数为3需要在客户机上操作:/usr/local/mfs/bin/mfssetgoal -r 3 /mnt/client1此时,所有已经存在的文件及子目录副本数为3,并且新写入的文件和子目录的副本数也为3注意:文件及目录所保留的真实副本数是依据数据存储服务器的数量,如果数据存储服服务器只有两台,但却为文件及目录设定了3个副本的话,最后的真实副本数为23.使用mfsgetgoal命令查看文件及目录副本数需要在客户机上操作:[root@lvs-backup t5]# /usr/local/mfs/bin/mfsgetgoal -r /mnt/client1//mnt/client1/:files with goal 2 : 6 <--共6个文件,每个文件有2个副本directories with goal 2 : 7 <--共7个目录,每个目录有2个副本4.使用mfsfileinfo命令查看文件副本的真实情况需要在客户机上操作:[root@lvs-backup client1]# /usr/local/mfs/bin/mfsfileinfo /mnt/client1/passwd /mnt/client1/passwd:chunk 0: 0000000000000008_00000001 / (id:8 ver:1)copy 1: 192.168.1.243:9422copy 1: 192.168.1.251:94225.显示整个目录数的摘要信息:需要在客户机上操作:[root@lvs-backup client1]# /usr/local/mfs/bin/mfsdirinfo -h /mnt/client1//mnt/client1/:inodes: 14directories: 7files: 7chunks: 7length: 15MiBsize: 15MiBrealsize: 30MiBMFS排错1.非正常关闭管理服务器进程导致启动失败,启动过程中生成如下报错日志:错误日志一:can't open metadata fileif this is new instalation then rename/usr/local/mfs/var/mfs/metadata.mfs.empty as/usr/local/mfs/var/mfs/metadata.mfs以上错误提示将metadata.mfs.empty 文件重命名为metadata.mfs解决:cd /usr/local/mfs/var/mfsmv metadata.mfs.empty metadata.mfs错误日志二:当执行完上述命令再次启动进程后,会有如下错误日志生成backup file is newer than current file - please check it manually - propably you should run metarestoreinit: file system manager failed !!!error occured during initialization - exiting解决:使用mfsmetarestor命令修复,元数据路径一般为$(prefix)/var/mfs在确保元数据路径就是$(prefix)/var/mfs的情况下,可以执行下列命令/usr/local/mfs/sbin/mfsmetarestore -a <---自动修复元数据文件如果元数据文件存储在非$(prefix)/var/mfs路径下,执行以下命令/usr/local/mfs/sbin/mfsmetarestore -a -d /storage/mfs手动修复元数据文件/usr/local/mfs/sbin/mfsmetarestore -m metadata.mfs.mak -o metadata.mfs changelog.*mfs。