利用MooseFS做图片服务器简单测试
linux /
2013年03月30日 13时33分 /
13411人浏览
利用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
***