just do it

利用MooseFS做图片服务器简单测试

利用MooseFS做图片服务器简单测试

目的:利用两台centos服务器 简单测试
MooseFs 流程和svn类似

the first
CentOS-1 192.168.0.3
mfs master、mfs chunkservers、mfs mount

the second
CentOS-1 192.168.0.4
mfs Metalogger、mfs mount


[服务端]CentOS-1 192.168.0.3
一:安装mfs 主控服务 chunk服务

下载最新版mfs1.6.26(略)

useradd mfs -s /sbin/nologin

tar -zxvf mfs-1.6.26.gz

cd mfs-1.6.26/

./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs

make
————————————————
出现错误:configure: error: zlib development library not found
解决方法:上网站http://zlib.net/下载最新的zlib zlib1.2.7

tar -zxvf zlib-1.2.7.tar
cd zlib-1.2.7
./configure
make
make install
————————————————

make install

二:安装挂载服务

为了挂接基于MooseFS 分布式文件,主机必须安装FUSE 软件包
http://sourceforge.net/projects/fuse/

tar -zxvf fuse-2.9.2.tar.gz

cd fuse-2.9.2

./configure

make

make install

#配置环境变量
echo ‘export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH’ >>/etc/profile

source /etc/profile

————————————
lsmod |grep fuse #检查fuse是否加载到内核,若没有,执行下面命令
modprobe fuse&&lsmod |grep fuse #若将下列mfsmount挂载操作加入开机自启动,一定将modprobe fuse也加入开机自启

注意:一定要将fuse环境变量配置ok,否则安装mfsmount会装不上
————————————

三:配置chnckserver

——————–
挂载文件系统
MooseFS chunk 以独占方式使用专门磁盘分区是非常必要的–这样做的好处是便于管理剩余空间。
MooseFS 并不考虑其剩余空间能被另作他用。如果没有单独创建文件系统的条件,可以在文件中创建一个文件系统。为了完成测试,准备一个3GB 的文件(文件位于目录/storage/mfschunks),并在其上创建文件系统。
把他们格式化为ext3,挂接在。
以下是具体操作步骤:

1、创建目录
mkdir -p /storage/mfschunks

2、创建镜像文件mfschunks1
dd if=/dev/zero of=/storage/mfschunks/mfschunks1 bs=1024 count=1 seek=$((3*1024*1024-1))

3、创建文件系统
mkfs -t ext3 /storage/mfschunks/mfschunks1

4、创建挂接点
mkdir -p /mnt/mfschunks1

5、挂接文件系统
mount -t ext3 -o loop /storage/mfschunks/mfschunks1 /mnt/mfschunks1
———————————————-

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

/usr/local/mfs/etc 目录自动生成样例配置文件,这些样例文件是以.dist 后缀命名。这里我们将借用这些
样例文件作为MooseFS 的目标配置文件:

#主控服务 master 配置文件
cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件

cp mfsexports.cfg.dist mfsexports.cfg #被挂接目录及权限配置

#chunk server 配置文件.
cp mfschunkserver.cfg.dist mfschunkserver.cfg #chunk配置文件

cp mfshdd.cfg.dist mfshdd.cfg #MFS使用空间配置

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

修改配置文件mfshdd.cfg ,使其内容为:
/mnt/mfschunks1

———————————-
注意这个文件只写/mnt/mfschunks1,其他的不能是注释,一定要删除
———————————-

作为测试的例子,不打算修改 mfsmaster.cfg 和 mfschunkserver.cfg 配置文件的
其他选项。

二进制文件metadata 和文本文件changelog 将被保存在目录/usr/local/mfs/var/mfs

首次安装master 时,会自
动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFS
master 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:

cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfs

[客户端]CentOS-1 192.168.0.4

一:安装元日志服务MetaLogger Server

MetaLogger Server与 主控服务相同

useradd mfs -s /sbin/nologin

tar -zxvf mfs-1.6.26.gz

cd mfs-1.6.26/

./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs

make

make install

二:安装挂载服务

为了挂接基于MooseFS 分布式文件,主机必须安装FUSE 软件包
http://sourceforge.net/projects/fuse/

tar -zxvf fuse-2.9.2.tar.gz

cd fuse-2.9.2

./configure

make

make install

#配置环境变量
echo ‘export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH’ >>/etc/profile

source /etc/profile

三:配置元数据日志服务
#配置文件
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vi mfsmetalogger.cfg

将主服务地址修改为192.168.0.3
MASTER_HOST = 192.168.0.3

[实施]
一:[在192.168.0.3]
运行 master server, CGI 监控以及 chunk server:
/usr/local/mfs/sbin/mfsmaster start
/usr/local/mfs/sbin/mfscgiserv
/usr/local/mfs/sbin/mfschunkserver start

MooseFS 当前运行状态可以在浏览器中地址栏输入http://192.168.0.3:9425/ 获得。

二:[在192.168.0.4]

挂接MooseFS 文件系统到挂接点 /mnt/mfs :
1、建立挂接点
mkdir -p /mnt/mfs
2、挂接操作
/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.0.3
3、查看挂接情况
df -h #检查是否挂载成功

—————————————-
MooseFS 基础用法
在MooseFS 挂接点下创建目录1, 在该目录,我们将以一个副本的方式存放文件 (设置
goal=1):

mkdir -p /mnt/mfs/1

使用命令mfssetgoal –r 设定目录里文件的副本数:
1、副本数为1
/usr/local/mfs/bin/mfssetgoal -r 1 /mnt/mfs/1
/mnt/mfs/folder1:
inodes with goal changed: 0
inodes with goal not changed: 1
inodes with permission denied: 0

在1中新建一个文件:
vi 1.img
命令mfschunkfile 用来检查给定的文件以多少副本数来存储。
/usr/local/mfs/bin/mfscheckfile /mnt/mfs/1/1.img
/mnt/mfs/folder1/1.img:
chunks with 1 copy: 1

———————————————————-
三:[在192.168.0.3]同样挂载

挂接MooseFS 文件系统到挂接点 /mnt/data :
1、建立挂接点
mkdir -p /mnt/data
2、挂接操作
/usr/local/mfs/bin/mfsmount /mnt/data -H 192.168.0.3
3、查看挂接情况
df -h #检查是否挂载成功

此时察看看 data 目录下会有之前的1.img

[测试]
在192.168.0.4 /mnt/mfs/1 创建文件会 自动同步到 192.168.0.3 /mnt/data 目录

至此测试成功

***
如果只安装主服务:
./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfschunkserver –disable-mfsmount
***

***
如果只安装chunkserver
./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfsmount
***

***
MetaLogger Server与 主控服务相同
***

***
如果只安装mfsmount
./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfschunkserver
***

点赞