MFS分布式文件系统的搭建

实验室要以分布式文件系统为基础做实验,我按照网上的官方教程,并根据自己实验室的实际情况作了适当修改,搭建了以三台CentOS5.5为服务器的MFS分布式文件系统,具体配置流程如下:

 

 

我们假定使用的主机ip 地址分配如下:

· 主控服务器DB:

222.31.76.73/24——服务器6

· 主控备份服务器

· 存储块服务器兼客户端主机:

Web1:222.31.76.227/24——服务器3;

Web2:222.31.76.118/24——服务器4

 

 

主控服务器DB 安装

当我们安装主控服务器时,在配置过程中(./configure),可以取消安装chunk server

--disable-mfschunkserver)以及MooseFS 客户端(--disable-mfsmount. 安装

主控服务器master 的具体步骤为:

1、添加mfs

#groupadd mfs

2、新增系统用户mfs

#useradd -g mfs mfs

3、切换目录

#cd /usr/src

4、解包归档文件

#tar -zxvf mfs-1.6.15.tar.gz

5、进入安装目录

#cd mfs-1.6.15

6、配置

#./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

7、编译并安装

#make

#make install

 

成功安装master 以后,系统会在/etc 目录自动生成样例配置文件,这些样例文件是以.dist

后缀命名。这里我们将借用这些样例文件作为MooseFS 主控服务器的目标配置文件:

1、切换目录

#cd /etc

2、复制样例文件,以得到master 所需的配置文件

#cp mfsmaster.cfg.dist mfsmaster.cfg

#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

#cp mfsexports.cfg.dist mfsexports.cfg

如果我们打算更改这些配置文件中的某些项目的值,则需要打开特定配置文件相关文本行前的注释,然后修改跟随其后的值。因为被注释掉的行,即是MooseFS 内置的缺省值。

 

配置文件mfsexports.cfg 指定那些客户端主机可以远程挂接MooseFS 文件系统,以及授予挂接客户端什么样的访问权限。例如,我们指定只有222.31.76.x网段的主机可以以读写模式访问MooseFS 的整个共享结构资源(/)。在配置文件mfsexports.cfg 文件的第一行,先取消注释,然后把星号(*)改成222.31.76.0/24,以便我们可以得到下面的文本行:

222.31.76.0/24 / rw,alldirs,maproot=0

二进制文件metadata 和文本文件changelog 将被保存在目录/var/lib/mfs,这是因为我们安装过程的configure 步骤使用了选项 --localstatedir=/var/lib 。首次安装master 时,会自动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFS master 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:

1、切换目录

#cd /var/lib/mfs

2、重命名文件

#cp metadata.mfs.empty metadata.mfs

 

MooseFS master 运行以后,metadata.mfs 文件大小将发生变化,肯定不会是空文件了。

修改/etc/hosts 文件,以绑定主机名mfsmaster ip 地址222.31.76.73:

222.31.76.73 mfsmaster

这个时候,我们可以试着运行master 服务(服务将以安装配置configure 指定的用户运行,这我们的案例里,它是mfs:

#/usr/sbin/mfsmaster start

 

在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFS master也能自动运行。

为了监控MooseFS 当前运行状态,我们可以运行CGI 监控服务,这样就可以用浏览器查看整个MooseFS 的运行情况:

#/usr/sbin/mfscgiserv

 

现在,我们在浏览器地址栏输入http://222.31.76.73:9425 即可查看master 的运行情况(这个时候,是不能看见chunk server 的数据)。

注意:要想通过浏览器查看,一定要先关闭服务器的防火墙:

#service iptables stop

 

 

 

 

存储块服务器Web1&Web2安装

在每个chunk server 主机上执行下面的命令:

#groupadd mfs

#useradd -g mfs mfs

#cd /usr/src

#tar -zxvf mfs-1.6.15.tar.gz

#cd mfs-1.6.15

(下一步会调用到gcczlib-devel等库,注意这一步一定要在mfs-1.6.15目录下执行,若系统未安装gcczlib-devel等,则需先手动安装:#yum –y install gcc#yum –y install zlib-devel

#./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --enable-mfschunkserver –-enable-mfsmount[S1] 

 

#make

#make install

准备chunk server 服务所需的配置文件:

#cd /etc/

#cp mfschunkserver.cfg.dist mfschunkserver.cfg

#cp mfshdd.cfg.dist mfshdd.cfg

为了测试这个安装,我们保留mfschunkserver.cfg 文件不做任何改动;如果读者想了解配置文件mfschunkserver.cfg 更详细的信息,请查看手册页 (man mfschunkserver.cfg)

 

 

在配置文件mfshdd.cfg 中,我们给出了用于客户端挂接MooseFS 分布式文件系统根分区所使用的共享空间位置。建议在chunk server 上划分单独的空间给 MooseFS 使用,这样做的好处是便于管理剩余空间。

我们将sdb盘划分出两个分区sdb1sdb2,给 MooseFS 使用,具体步骤为:

 

1)创建分区(以sdb1为例,sdb2创建过程与其相似,将区号换为2即可)

①切换到dev目录

#cd /dev

②开启windows的磁盘管理器,开始对新盘进行相应操作(注意,新插的盘要重启后才能识别)

#fdisk ./sdb

③命令:p,查看当前新盘状态,会发现其属于未分配的空间

④命令:n,创建一个新的分区

⑤有两个选项:e(扩展分区)p(主分区),选择p分配区号(14中选,sdb1就选1

⑥再选择柱面起始位置(默认是可分配的第一个柱面,直接回车)

⑦选择分区大小:+204800M

⑧现在再用p命令查看可发现多了一个./sdb1分区,就是刚刚新建的分区

⑨执行以上分区操作并退出:w;若不想保存修改,则直接输入q退出。

另外,若想删除某个分区,输入d,再按相应提示操作即可。

 

2)在硬盘分区上建立文件系统(只有创建了文件系统后,这个分区才能真正的使用实现IO操作)

①查看支持的文件系统:

#ls /sbin/mk*

②将刚刚的新分区创建为ext3文件系统:

#mkfs t ext3 /dev/sdb1

#mkfs t ext3 /dev/sdb2

现在就可以看到新增的文件系统了~

 

3)挂载文件系统

①创建挂载点:

#mkdir /mnt/mfschunks1

#mkdir /mnt/mfschunks2

②挂在文件系统:

#mount /dev/sdb1 /mnt/mfschunks1

#mount /dev/sdb2 /mnt/mfschunks2

③为了让该文件系统在开机时能自动挂载,需要修改文件系统的入口文件/etc/fstab

     mount /dev/sdb1 /mnt/mfschunks1 ext3 defaults 0 0

mount /dev/sdb2 /mnt/mfschunks2 ext3 defaults 0 0

到此,新的文件系统就已成功挂载,可正常使用了~

 

此处我们假定要使用两个共享点/mnt/mfschunks1 /mnt/mfschunks2,为此,我们在/etc/mfshdd.cfg 加入下面的文本行:

/mnt/mfschunks1

/mnt/mfschunks2

在启动chunk server 前,需确保用户mfs 有权限读写将要被挂接的分区(因为chunk server 运行时要在此创建一个.lock 的文件):

#chown -R mfs:mfs /mnt/mfschunks1

#chown -R mfs:mfs /mnt/mfschunks2

类似地,修改/etc/hosts 文件,增加下面的行:

222.31.76.73 mfsmaster

开始启动chunk server:

#/usr/sbin/mfschunkserver start

 

现在再通过浏览器访问 http://222.31.76.73:9425/ 应该可以看见这个MooseFS 系统的全部信息,包括主控master 和存储服务chunkserver

注意:要想通过浏览器查看,一定要先关闭服务器的防火墙:

#service iptables stop

 

 

 

 

客户端Users computers 安装

Web1(服务器3)Web2(服务器4)同时作为客户端使用。

 

为了挂接基于MooseFS 分布式文件,客户端主机必须安装FUSE 软件包( fuse 版本号至少2.6,推荐使用版本号大于2.7.2 fuse)。如果系统没有安装fuse,你必须手动对其进行安装:

#cd /usr/src

#tar -zxvf fuse-2.8.5.tar.gz

#cd fuse-2.8.5

#./configure --prefix=/usr --enable-static --enable-lib --enable-util --enable-example --with-pkgconfigdir=/usr/lib/pkgconfig/

#make

#make install

 

修改环境变量文件/etc/profile ,执行以下命令:

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

 

假定客户端的挂接点是/mnt/mfs,我们将以下面的指令来使用MooseFS 分布式共享文件系统:

1、 创建挂接点

#mkdir -p /mnt/mfs

2、加载fuse模块到内核:

#modprobe fuse

3、开始挂接操作

#/usr/bin/mfsmount /mnt/mfs -H mfsmaster

 

 

执行命令df –h | grep mfs 检查分区情况,可能的输出如下:

/storage/mfschunks/mfschunks1

2.0G 69M 1.9G 4% /mnt/mfschunks1

/storage/mfschunks/mfschunks2

2.0G 69M 1.9G 4% /mnt/mfschunks2

mfs#mfsmaster:9421 3.2G 0 3.2G 0% /mnt/mfs

 

测试时一定要记得关闭服务器防火墙!!否则服务器的所有端口都会被禁止访问,通过浏览器访问是显示不出相应监测数据的!!

#service iptables stop

 

停止 MooseFS

为了安全停止MooseFS 集群,建议执行如下的步骤:

· 在所有客户端用Unmount 命令先卸载文件系统(本例将是: umount /mnt/mfs)

· 停止chunk server 进程: /usr/sbin/mfschunkserver stop

· 停止 metalogger 进程: /usr/sbin/mfsmetalogger stop

· 停止主控 master server 进程: /usr/sbin/mfsmaster stop

 

 

参考文献:

http://www.unixaid.info/index.php/unixtecspt/30-backup/258-moosev16.html

 [S1]加这一句是因为该服务器也做客户端,所以实际是为后面客户端的配置命令做设置!另外,若要运行这一步,先确保fuse按照下面客户端的配置正确安装,并且设置相应的环境变量文件/etc/profile,否则这一步会报错:

checking for FUSE... no

configure: error: mfsmount build was forced, but fuse library is too old or not installed

 

你可能感兴趣的:(Web,server,浏览器,centos,防火墙,服务器)