原文 http://windphp.com/unix/20.html
没有使用FastDFS的原因是它所有的操作都要调用api, 不能指定命名格式, 或许它更适合网盘类?;
虽然现在已经有nginx和apache模块了, 虽然性能要比mfs好点, 考虑得到易用性, 工作量(系统已经成型, 有着自己的命名规范)的问题还是选择了mfs
需要用到的软件, 最新下载地址:
http://sourceforge.net/projects/moosefs/
http://sourceforge.net/projects/fuse/
这里我使用的版本为:mfs-1.6.20-2.tar.gz
fuse-2.8.5.tar.gz
安装详解商定如下:
首先全部关闭防火墙, 或者让9425, 9421, 9420通过主控服务器 Master: 192.168.1.160
备份服务器 Metalogger: 192.168.1.161
存储服务器1 Chunk Servers 1: 192.168.1.162
存储服务器2 Chunk Servers 2: 192.168.1.163
路径:
编译路径 /opt/soft
安装路径 /opt/mfs
日志路径 /data/mfs
数据路径 /mnt/mfschunks
用户和组:
组 mfs
用户 mfs
安装顺序为:master -> metalogger -> chunk server -> client
在安装成功后, 我们再统一来修改配置, 启动, 使用服务器.
安装之前创建用户组和目录, 并赋予权限:groupadd mfs
useradd mfs -g mfs -s /sbin/nologin
mkdir -p /opt/soft /data /mnt/mfschunks
chown -R mfs:mfs /mnt/mfschunks
首先, master:cd /opt
tar zxvf mfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2
./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --localstatedir=/data --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
cd /opt/mfs/etc
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cp mfsexports.cfg.dist mfsexports.cfg
cd /data/mfs && cp metadata.mfs.empty metadata.mfs
然后是metalogger, metalogger和mester类似:cd /opt
tar zxvf mfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2
./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --localstatedir=/data --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
cd /opt/mfs/etc
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
然后是两台chunk server:cd /opt
tar zxvf mfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2
./configure --prefix=/opt/mfs --sysconfdir=/opt/mfs/etc --localstatedir=/data --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
make && make install
cd /opt/mfs/etc
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
最后是client, 就是要使用mfs的机器:cd /opt
tar zxvf mfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2
./configure --localstatedir=/data --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
centos用户可以使用yum, 命令如下:
yum install fuse.i386 fuse-devel.i386 fuse-libs.i386 zlib-devel.i386
make && make install
没问题的话, 应该已经完成安装, 下面开始简单的配置:
master:vi /opt/mfs/etc/mfsexports.cfg
第二行的"*"为指定允许挂载的ip, 我们以让192.168.1.1-255允许挂载为例:
192.168.1.0/24 / rw,alldirs,maproot=0
chunk server:vi /opt/mfs/etc/mfshdd.cfg
加入如下, 指定客服端产生的数据存储位置:
/mnt/mfschunks
然后分别依次启动他们, 记得启动和停止都是有顺序的, 在此之前先分别在每台服务器的hosts加入如下vi /etc/hosts
192.168.1.160 mfsmaster
启动如下:master:
/opt/mfs/sbin/mfsmaster start
/opt/mfs/sbin/mfscgiserv #这个提供web的方式来查看master的状态, 访问地址为http://ip(master):9425
metalogger:
/opt/mfs/sbin/mfsmetalogger start
chunk server:
/opt/mfs/sbin/mfschunkserver start
客户端的使用方法:假如我们要挂载到/mnt/mfs目录
mkdir -p /mnt/mfs
/usr/local/bin/mfsmount /mnt/mfs/ -H mfsmaster
挂载后需要改变文件夹属组为使用者:
chown -R user:group /mnt/mfs
df -h就可以查看到mfsmaster已经被挂载了, 还有mfs的使用情况
关闭如下, 客户端首先卸载文件系统:umount /mnt/mfs
/opt/mfs/sbin/mfschunkserver stop
/opt/mfs/sbin/mfsmetalogger stop
/opt/mfs/sbin/mfsmaster stop
启动和关闭一定要按顺序来, 同时也可以把他们写入自动启动, 或者做成系统服务.
具体的配置信息可以自己搜索下, 配置一些比如副本数量, 删除回收时间等