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

linux / 2013年03月30日 13时33分 / 13159人浏览
利用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 ***