当前位置: 首页 > 科技观察

MooseFS安装教程详解

时间:2023-03-15 01:35:41 科技观察

前言:MooseFS在专机上的安装过程安装Master服务器安装Backup服务器(metalogger)安装chunk服务器安装客户端MooseFS单独服务器安装MooseFS基本使用StopMooseFS概述下面我们介绍在Linux平台上一步步安装MooseFS系统的过程中,我们假设系统以mfs用户运行,mfs所属的组也是mfs。将使用FHS(文件系统层次结构标准)兼容路径和源mfs-1.6.15.tar.gz并将其放在/usr/src下。我们将解释如何在不同的专用机器上安装MooseFS系统以及如何在服务器上进行测试安装。MooseFS最新稳定版下载地址:http://sourceforge.net/projects/moosefs/,客户端需要用到FUSE包,这个包可以从以下地址下载:http://sourceforge.net/projects/fuse/.MooseFS在专用机器上的安装过程,假设我们的机器使用如下IP地址:Masterserver:192.168.1.1Metaloggerserver:192.168.1.2Chunkservers:192.168.1.101and192.168.1.102Users'computer(client):192.168.2.x#p#Masterserverinstallation在安装masterserver时,我们在./configure中禁用了chunkserver安装(–disable-mfschunkserver)和client安装(–disable-mfsmount)。我们执行以下步骤:#groupaddmfs#useradd-gmfsmfs#cd/usr/src#tar-zxvfmfs-1.6.15.tar.gz#cdmfs-1.6.15#./configure--prefix=/usr--sysconfdir=/etc--localstatedir=/var/lib--with-default-user=mfs--with-default-group=mfs--disable-mfschunkserver--disable-mfsmount#make#makeinstall示例配置文件将创建在/etc的扩展名为.dist,我们将这些效果用于我们的最终配置文件:要更改任何设置,我们应该取消注释行并写入不同的值。对于被注释掉的行,系统会使用内置的默认值。mfsmaster.cfg文件包含主服务器的设置,我们这里没有做任何改动,你可以在manpage中看到(manmfsmaster.cfg)了解有关此文件的更多信息mfsexports.cfg文件指定哪些客户端可以挂载MooseFS文件系统以及具有哪些权限。在我们的示例中指定只有192.168.2.x机器可以读写MooseFS的整个模式。文件的***行,并取消注释这一行,我们将星号(*)更改为192.168.2.0/24,因此它看起来像这样:192.168.2.0/24/rw,alldirs,maproot=0二进制元数据文件和changelog文本文件存储在编译期间由localstatedir设置的文件夹中-在我们的示例中,此文件夹为:/var/lib/mfs。***安装将创建一个名为Theemptymetadatafileofmetadata.mfs.empty的文件。我们把这个空文件改成metadata.mfs:#cd/var/lib/mfs#cpmetadata.mfs.emptymetadata.mfs我们还需要在/etc/hosts中指定主机名mfsmaster对应主机IP地址192.168.1.1(译者注:为了将配置文件中的IP替换为主机名mfsmaster,做了一个简单的DNS解析:192.168.1.1mfsmaster现在可以运行master服务器了(服务器会使用指定的用户,在我们的例子中是mfs):#/usr/sbin/mfsmasterstart在生产环境中,应该设置mfsmaster进程在操作系统启动时自动运行。我们现在也可以运行CGI监控,在浏览器中查看MooseFS系统的当前状态Status:#/usr/sbin/mfscgiserv现在可以在http://192.168.1.1:9425/看到一些信息(没有关于的数据chunkserversyet)#p#Backupserver(metalogger)installation安装metalogger的host在性能上应该比master强(至少内存多)一旦主控服务器master发生故障,只需将changelogs导入元数据文件,备份服务器metalogger将接管发生故障的master并执行管理服务器的功能(有关此的更多信息,请阅读http://www.moosefs.org/mini-howtos.html#redundant-master)Metalogger安装与主服务器安装非常相似,我们使用以下命令:#groupaddmfs#useradd-gmfsmfs#cd/usr/src#tar-zxvfmfs-1.6.15。tar.gz#cdmfs-1.6.15#./configure--prefix=/usr--sysconfdir=/etc--localstatedir=/var/lib--with-default-user=mfs--with-default-group=mfs--disable-mfschunkserver--disable-mfsmount#make#makeinstall#cd/etc#cpmfsmetalogger.cfg.distmfsmetalogger.cfg同样在/etc/hosts中添加:192.168.1.1mfsmaster现在我们准备启动备份服务器进程:#/usr/sbin/mfsmetalloggerstart在生产环境中,您应该将mfsmetallogger设置为自动启动。#p#Chunkserversinstallation我们在机器上使用以下命令来安装chunkserver:#groupaddmfs#useradd-gmfsmfs#cd/usr/src#tar-zxvfmfs-1.6.15.tar.gz#cdmfs-1.6.15#./configure--prefix=/usr--sysconfdir=/etc--localstatedir=/var/lib--with-default-user=mfs--with-default-group=mfs--disable-mfsmaster#make#makeinstall现在我们还为块服务器准备配置文件:您可以在手册页(manmfschunkserver.cfg)中找到有关此文件的更多信息。在mfshdd.cfg文件中我们指定了具体的位置,已经挂载到硬盘的根(/)分区,建议专供MooseFS使用——这是为了妥善管理空闲空间。让我们假设/mnt/mfschunks1和/mnt/mfschunks2将被使用,所以我们将这两行添加到mfshadd.cfg文件:/mnt/mfschunks1/mnt/mfschunks2在我们开始运行块服务器之前,我们需要确保用户mfs在已挂载的分区上具有写入权限(因为需要在该分区上创建.lock文件):#chown-Rmfs:mfs/mnt/mfschunks1#chown-Rmfs:mfs/mnt/mfschunks2也我们在/etc/hosts中添加以下行:192.168.1.1mfsmaster现在我们准备启动块服务器:#/usr/sbin/mfschunkserverstart在MooseFS系统中,我们在每个要存储的块服务器上重复相同的操作数据。现在在http://192.168.1.1:9245可以看到系统的所有信息,包括masterserver和chunkserver。#p#客户端安装为了挂载基于MooseFS的文件系统,客户端需要安装FUSE包(至少2.6版本,推荐>=2.7.2),如果FUSE不存在,则必须安装。一种方法是从源代码编译它-您可以从http://sourceforge.net/projects/fuse/获得它:#cd/usr/src#tar-zxvffuse-2.8.3.tar.gz#cdfuse-2.8.3#./configure#make#makeinstall安装mfsmount包我执行以下步骤:#tar-zxvfmfs-1.6.15.tar.gz#cdmfs-1.6.15#./configure--prefix=/usr--sysconfdir=/etc--localstatedir=/var/lib--with-default-user=mfs--with-default-group=mfs--disable-mfsmaster--disable-mfschunkserver#make#makeinstall在/etc/hosts文件中添加一行:192.168。1.1客户机上的mfsmaster假设我们将文件系统挂载在/mnt/mfs文件夹中。我们使用以下命令:#mkdir-p/mnt/mfs#/usr/bin/mfsmount/mnt/mfs-Hmfsmaster现在我们执行df-h|grepmfs命令,可以得到类似如下信息:2G0%/mnt/mfs#p#在单独的服务器上安装MooseFS如果想在单机上测试安装MooseFS系统,可以按照下面的步骤进行,这里我们不安装metalogger,假设IP地址为服务器为192.168.1.1为了挂载基于MooseFS的文件系统,客户端需要安装FUSE包(至少2.6版本,推荐>=2.7.2),如果FUSE不存在,则必须安装.一种方法是从源代码编译#cd/usr/src#tar-zxvffuse-2.8.3.tar.gz#cdfuse-2.8.3#./configure#make#makeinstallInstallMooseFS:#groupaddmfs#useradd-gmfsmfs#cd/usr/src#tar-zxvfmfs-1.6.15.tar.gz#cdmfs-1.6.15#./configure--prefix=/usr--sysconfdir=/etc--localstatedir=/var/lib--with-default-user=mfs--with-default-group=mfs#make#makeinstall重要的是***文件系统可以被MooseFSchunk独占使用,可以很好的管理空闲空间。MooseFS不考虑这样的情况:MooseFS可用的空闲空间也可以被其他数据使用。如果无法创建单独的磁盘分区,则使用文件虚拟化文件系统。本次测试安装,我们准备了两个2GB的文件(位于/storage/mfschunks),格式化为ext3格式,挂载到/mnt/mfschunks1和/mnt/mfschunks2。#mkdir-p/storage/mfschunks#ddif=/dev/zeroof=/storage/mfschunks/mfschunks1bs=1024count=1seek=$((2*1024*1024-1))#mkfs-text3/storage/mfschunks/mfschunks1#mkdir-p/mnt/mfschunks1#mount-text3-oloop/storage/mfschunks/mfschunks1/mnt/mfschunks1#ddif=/dev/zeroof=/storage/mfschunks/mfschunks2bs=1024count=1seek=$((2*1024*1024-1))#mkfs-text3/storage/mfschunks/mfschunks2#mkdir-p/mnt/mfschunks2#mount-text3-oloop/storage/mfschunks/mfschunks2/mnt/mfschunks2在开始运行chunkserver之前,我们需要确认说明用户mfs对挂载的分区有写权限(因为需要在这个分区上创建.lock文件):#chown-Rmfs:mfs/mnt/mfschunks1#chown-Rmfs:mfs/mnt/mfschunks2示例配置文件将创建在/etc下的扩展名是.dist,我们将这些功能用于我们最终的配置文件:#cd/etc#cpmfsexports.cfg.distmfsexports.cfg#cpmfsmaster.cfg.distmfsmaster.cfg#cpmfschunkserver.cfg。distmfschunkserver.cfg#cpmfshdd.cfg.distmfshdd.cfgmfsexports.cfg文件和mfsmaster.cfg文件涉及masterserver的设置,mfschunkserver.cfg和mfshdd.cfg文件涉及chunkserver的设置,mfsexports.cfg文件指定了哪个client可以挂载MooseFS文件系统以及它有什么权限。在我们的例子中我们指定只有192.168.1.x的机器可以读写MooseFS的整个架构,文件的***行,没有注释的这一行我们把星号(*)改成192.168。1.0/24所以是这样的:192.168.1.0/24/rw,alldirs,maproot=0在我们的示例中,mfsmaster.cfg和mfschunkserver.cfg文件中的选项不会进行任何更改二进制元数据文件和更改日志文本文件已存储在一个文件夹中,该文件夹在编译期间由localstatedir设置-在我们的示例中,此文件夹为:/var/lib/mfs。***安装将创建一个名为metadata.mfs.empty的空元数据文件。我们把这个空文件改成metadata.mfs:#cd/var/lib/mfs#cpmetadata.mfs.emptymetadata.mfs还要在/etc/hosts中添加下面一行:192.168.1.1mfsmastercannowrunmasterserver,CGImonitor和chunkserverprocess:#/usr/sbin/mfsmasterstart#/usr/sbin/mfscgiserv#/usr/sbin/mfschunkserverstart你可以在http://192.168.1.1:9425/看到关于MooseFS系统当前状态的所有信息现在将系统挂载到/mnt/mfs:#mkdir-p/mnt/mfs#/usr/bin/mfsmount/mnt/mfs-Hmfsmastergrepmfs命令,可以看到类似如下信息:/storage/mfschunks/mfschunks12.0G69M1.9G4%/mnt/mfschunks1/storage/mfschunks/mfschunks22.0G69M1.9G4%/mnt/mfschunks2mfs#mfsmaster:94213.2G03。2G0%/mnt/mfs#p#MooseFS基本用法在/mnt/mfs下创建folder1,该文件夹下存放的文件有一个副本(设置goal=1):mkdir-p/mnt/mfs/folder1创建folder2,这个文件夹里面存放了两份文件(设置goal=2):mkdir-p/mnt/mfs/folder2mfssetglal-r命令设置文件夹的副本数:#mfssetgoal-r1/mnt/mfs/folder1/mnt/mfs/folder1:inodeswithgoalchanged:0inodeswithgoalnotchanged:1inodeswithpermissiondenied:#mfssetgoal-r2/mnt/mfs/folder2/mnt/mfs/folder2:inodeswithgoalchanged:0inodeswithgoalnotchanged:1inodeswithpermissiondenied:0将文件复制到这两个文件夹:cp/usr/src/mfs-1.6.15.tar.gz/mnt/mfs/folder1cp/usr/src/mfs-1.6.15.tar.gz/mnt/mfs/folder2mfscheckfile该命令检查存储了多少个文件指定文件foler1的副本在chuk中存储了一个副本:#mfscheckfile/mnt/mfs/folder1/mfs-1.6.15.tar.gz/mnt/mfs/folder1/mfs-1.6.15.tar.gz:1copies:1chunks在foler2的mfs-1.6.15.tar.gz文件中保存两份:#mfscheckfile/mnt/mfs/folder2/mfs-1.6.15.tar.gz/mnt/mfs/folder2/mfs-1.6。15.焦油。gz:2copies:1chunks补充说明。当所有进程都安装在单独的服务器上时,您会看到即使设置goal=2也只保存了一个文件副本——这是正确的,因为尽管有两个块服务器,但只有一个磁盘停止MooseFS通过以下步骤安全地停止MooseFS集群:在所有机器上使用umount命令卸载文件系统(在我们的示例中:umount/mnt/mfs):停止chunkserver进程:/usr/sbin/mfschunkserverstop停止metalogger进程:/usr/sbin/mfsmetaloggerstop停止masterserver进程:/usr/sbin/mfsmasterstop