:9425
编译和安装 MooseFS部署的首选方法是从源代码安装 源代码包安装支持标准./configure && make && make install的步骤,重要的配置选项有: --disable-mfsmaster –不创建成管理服务器(用于纯节点的安装) --disable-mfschunkserver –不创建成数据存储chunkserver服务器 --disable-mfsmount –不创建mfsmount和mfstools(如果用开发包安装,他们会被默认创建的) --enable-mfsmount –确定安装mfsmount和mfstools(如果 --prefix=DIRECTORY –锁定安装目录(默认是/usr/local) --sysconfdir=DIRECTORY –选择配置文件目录(默认是${prefix}/etc)) --localstatedir=DIRECTORY –选择变量数据目录(默认是${prefix}/var,MFS元数据被存储在mfs的子目录下,默认是${prefix}/var/mfs ) --with-default-user -运行守护进程的用户,如果配置文件中没有设定用户,默认为nobody用户 --with-default-group=GROUP 运行守护进程的用户组,如果配置文件中没有设定用户组,默认为nogroup用户组 例如用FHS(文件系统层次标准)的兼容路径在Linux上的安装: ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib 编译安装遵守标准的DESTDIR= variable,允许安装包在临时目录(例如以创造二进制包)。已经存在的配置或这是元数据文件将会被覆盖掉。 一、管理服务器(master) 作为管理服务器(master)是MooseFS部署中重要的一个元素,在硬件方面,应该被安装在一台能够保证高可靠性和能胜任的整个系统存取的要求的机器上。一个明智的做法是用一个配有冗余电源、ECC内存、磁盘阵列,如RAID1/RAID5/RAID10。在操作系统方面,管理服务器的操作系统应该是具有POSIX兼容的系统(到目前支持Linux, FreeBSD, Mac OS X and OpenSolaris)。 安装管理服务器(master server)的过程: 1、安装mfs-master 2、如果是从源码安装的话,在configure时不要加--disable-mfsmaster选项。 3、创建运行master的用户(如果这样的用户不存在的话) 4、确定存放元数据文件的目录存在,而且能够被运行master的用户可写(通过configure的选项来设置运行master server的用户和元数据存储的路径,make install命令的执行要用root用户) 5、配置master server服务器是通过配置文件mfsmaster.cfg来做的,要特别注意的是TCP端口的使用 6、添加或创建(依赖于操作系统和发布版本)一组启动mfsmaster进程的脚本 安装完管理服务器后,便可以用mfsmaster命令来启动master server,如果用root用户执行mfsmaster命令,则在启动后转为mfsmaster.cfg中指定的用户来运行,否则将以执行mfsmaster命令的用户来运行master server。 二、元数据日志服务器 元数据日志守护进程是在安装master server时一同安装的,最小的要求并不比master本身大,可以被运行在任何机器上(例如任一台chunkserver),但是最好是放置在MooseFS master的备份机上,备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。因为主要的master server一旦失效,可能就会将这台metalogger机器取代而作为master server。 安装管理进程: 1、从源代码安装mfs-master,在执行configure时不要带有--disable-mfsmaste选项 2、创建有运行mfsmetalogger服务权限运行的用户(如果这样的用户不存在的话) 3、确定存放元数据文件的目录存在,而且能够被运行mfsmetalogger服务的用户可写(通过configure的选项来设置运行mfsmetalogger服务的用户和元数据存储的路径,make install命令的执行要用root用户) 4、通过mfsmetalogger.cfg配置mfsmetalogger服务,要特别注意的是TCP端口,这里要使用MASTER_PORT要必须和mfsmaster.cfg文件中的MATOML_LISTEN_PORT一致。 5、添加或创建(依赖于操作系统和发布版本)一组启动mfsmetalogger进程的脚本 安装完管理服务器后,便可以用mfsmetalogger命令来启动mfsmetalogger server,如果用root用户执行mfsmetalogger命令,则在启动后转为mfsmetalogger.cfg中指定的用户来运行,否则将以执行mfsmetalogger命令的用户来运行mfsmetalogger server。 三、数据服务器 安装完管理服务器后,将安装数据服务器(chunkservers),这些机器的磁盘上要有适当的剩余空间,而且操作系统要遵循POSIX标准(验证了的有这些:Linux, FreeBSD, Mac OS X and OpenSolaris)。Chunkserver在一个普通的文件系统上储存数据块/碎片(chunks/fragments)作为文件。 Linux: creating: dd if=/dev/zero of=file bs=100m seek=400 count=0 mkfs -t ext3 file mounting: mount -o loop file mount-point FreeBSD: creating and mounting: dd if=/dev/zero of=file bs=100m count=400 mdconfig -a -t vnode -f file -u X newfs -m0 -O2 /dev/mdX mount /dev/mdX mount-point mounting a previously created file system: mdconfig -a -t vnode -f file -u X mount /dev/mdX mount-point Mac OS X: Start "Disk Utility" from "/Applications/Utilities" Select from menu "Images->New->Blank Image ..." 注: 每一个chunkserver的磁盘都要为增长中的chunks保留些磁盘空间,从而达到创建新的chunk。只有磁盘都超过256M并且chunkservers报告自由空间超过1GB总量才可以被新的数据访问。最小的配置,应该从几个G字节的存储。 安装数据服务器 (chunkserver): 1、 把预先隔离的磁盘空间作为一个单独的文件系统,挂接在一个本地的目录下(如:/mnt/hd1, /mnt/hd2等等); 2、安装mfs-chunkserver 在执行configure时要不带--disable-mfschunkserver选项, 3、创建有运行chunkserver服务权限运行的用户(如果这样的用户不存在的话) 4、并给予这个户对整个MooseFS文件系统写的权限 5、利用mfschunkserver.cfg文件配置mfschunkserver服务,特别要注意的是TCP端口(MASTER_PORT变量要和mfsmaster.cfg中MATOCS_LISTEN_PORT的值一样)。 6、在mfshdd.conf文件中列出要用于MooseFS的挂载点 7、添加或创建(依赖于操作系统和发布版本)一组启动mfschunkserver进程的脚本 注: Mfschunkserver的本地ip很重要,Mfschunkserver用此ip和mfsmaster进行连接,mfsmaster通过此ip和MFS客户端连接(mfsmount),而且其它chunkservers之间的通讯也是通过这个ip,因此这个ip必须是远程可访问的。因此mfsmaster的本地ip地址(MASTER_HOST)设置必须和chunkserver一样,以便于正确的连接,通常的做法是mfsmaster,chunkservers和MFS客户端在同一网段。一般的回环地址(localhost, 127.0.0.1)不能用于MASTER_HOST,它将使chunkserver无法被其她主机访问(这样的配置只会是单机器的机器mfsmaster,mfschunkserver和mfsmount运行)。 安装完mfschunkserver后,便可以用mfschunkserver命令来启动mfschunkserver服务器,如果用root用户执行mfschunkserver命令,则在启动后转为mfschunkserver.cfg中指定的用户来运行,否则将以执行mfschunkserver命令的用户来运行mfschunkserver服务。 四、客户端(mfsmount) mfsmount需要FUSE才可以正常工作,FUSE支持多种操作系统:Linux, FreeBSD, OpenSolaris and MacOS X。 Linux一个内核模块的API版本至少必需是7.8的,这个可以用dmesg命令来检测,当载入内核模块后,应该能看到有一行fuse init (API version 7.8)。一些可用的fuse版本是2.6.0以上,Linux kernel 2.6.20(Linux内核从2.6.20后加入了fuse)以上。由于一些小bug,因此比较新模块被荐使用,如fuse 2.7.2 及 Linux 2.6.24(尽管fuse 2.7.x单独没有包含getattr/write race condition fix)。在FreeBSD系统上fusefs-kmod版本要0.3.9以上的才可以,在MacOS X Mac上 FUSE要10.5版本。 安装MooseFS客户端: 1、安装mfs-client,从源代码安装,在进行configure时不要加--disable-mfsmount选项就可以了 2、建立被MooseFS挂接的目录,例如/mnt/mfs。 3、MooseFS用一下的命令挂接: mfsmount [-h master] [-p port] [-l path] [-w mount-point] -H MASTER:是管理服务器(master server)的ip地址 -P PORT: 是管理服务器(master server)的端口号,要按照mfsmaster.cfg 配置文件中的变量MATOCU_LISTEN_POR的之填写。如果master serve使用的是默认端口号则不用指出。 -S PATH:指出被挂接mfs目录的子目录,默认是/目录,就是挂载整个mfs目录。 Mountpoint:是指先前创建的用来挂接mfs的目录。 |
MooseFS 维护
一、启动MooseFS集群
最安全的启动MooseFS集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤:
1.启动mfsmaster进程
2.启动所有的mfschunkserver进程
3.启动mfsmetalogger进程(如果配置了mfsmetalogger)
当所有的chunkservers连接到MooseFS master后,任何数目的客户端可以利用mfsmount去挂接被export的文件系统。(可以通过检查master的日志或是CGI监视器来查看是否所有的chunkserver被连接)。
二、停止MooseFS集群
安全的停止MooseFS集群:
1.在所有的客户端卸载MooseFS 文件系统(用umount命令或者是其它等效的命令)
2.用mfschunkserver –s命令停止chunkserver进程
3.用mfsmetalogger –s命令停止metalogger进程
4.用mfsmaster –s命令停止master进程
三、MooseFS chunkservers的维护
假如每个文件的goal(目标)都不小于2,并且没有under-goal文件(这些可以用mfsgetgoal –r和mfsdirinfo命令来检查),那么一个单一的chunkserver在任何时刻都可能做停止或者是重新启动。以后每当需要做停止或者是重新启动另一个chunkserver的时候,要确定之前的chunkserver被连接,而且要没有under-goal chunks。
四、MooseFS元数据的备份
通常元数据有两部分的数据
1.主要元数据文件metadata.mfs,当mfsmaster运行的时候会被命名为metadata.mfs.back
2.元数据改变日志changelog.*.mfs,存储了过去的N小时的文件改变(N的数值是由BACK_LOGS参数设置的,参数的设置在mfschunkserver.cfg配置文件中)。
主要的元数据文件需要定期备份,备份的频率取决于取决于多少小时changelogs储存。元数据changelogs应该实时的自动复制。自从MooseFS 1.6.5,这两项任务是由mfsmetalogger守护进程做的。
五、MooseFS master的恢复
一旦mfsmaster崩溃(例如因为主机或电源失败),需要最后一个元数据日志changelog并入主要的metadata中。这个操作时通过mfsmetarestore工具做的,最简单的方法是:
mfsmetarestore -a
如果master数据被存储在MooseFS编译指定地点外的路径,则要利用-d参数指定使用,如:
mfsmetarestore -a -d /storage/mfsmaster
六、从备份恢复MooseFS master
为了从备份中恢复一个master,需要做:
1、安装一个mfsmaster
2、利用同样的配置来配置这台mfsmaster(利用备份来找回mfsmaster.cfg),可见配置文件也是需要备份的。
3、找回metadata.mfs.back文件,可以从备份中找,也可以中metalogger主机中找(如果启动了metalogger服务),然后把metadata.mfs.back放入data目录,一般为${prefix}/var/mfs。
4、从在master宕掉之前的任何运行metalogger服务的服务器上拷贝最后metadata文件,然后放入mfsmaster的数据目录。
5、利用mfsmetarestore命令合并元数据changelogs,可以用自动恢复模式mfsmetarestore –a,也可以利用非自动化恢复模式,语法如下:
mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs
来源: http://www.bubuko.com/infodetail-1864977.html