分布式文件系统MooseFS_第1张图片

分布式文件系统MooseFS_第2张图片

 

主控服务器 Master server: 192.168.0.82 desktop82.example.com

存储块服务器 Chunk servers: 192.168.0.81 and 192.168.0.93
客户端主机 (clients): 192.168.0.95
 

 所有节点都需要安装fuse-libs

 

下载tar包,将它制作为rpm包进行安装(desktop82.example.com上面)

   
   
   
   
  1. yum install gcc make gcc-c++ rpm-build fuse-devel zlib-devel openssh-clients  -y 
  2. rpmbuild -tb mfs-1.6.25.tar.gz
  3. cd /root/rpmbuild/RPMS/x86_64
  4. ls
  5. mfs-cgi-1.6.25-1.x86_64.rpm mfs-master-1.6.25-1.x86_64.rpm mfs-chunkserver-1.6.25-1.x86_64.rpm mfs-metalogger-1.6.25-1.x86_64.rpm mfs-client-1.6.25-1.x86_64.rpm

   
   
   
   
  1. scp mfs-chunkserver-1.6.25-1.x86_64.rpm desktop81.example.com:~ 
  2. scp mfs-chunkserver-1.6.25-1.x86_64.rpm desktop93.example.com:~ 

生成里这样五个RPM包

主控服务器 Master server 安装

 
   
   
   
   
  1. rpm -ivh mfs-master-1.6.25-1.x86_64.rpm 
  2. rpm -ql mfs-master 
  3. /etc/mfsexports.cfg.dist 
  4. /etc/mfsmaster.cfg.dist 
  5. /etc/mfstopology.cfg.dist  #成功安装 master 以后,系统会在/etc 目录自动生成样例配置文件,这些样例文件是以.dist 后缀命名。直接复制重命名
  6. *********** 
  7. cp /etc/mfsexports.cfg.dist /etc/mfsexports.cfg #访问控制
  8. cp /etc/mfstopology.cfg.dist /etc/mfstopology.cfg
  9. cp /etc/mfsmaster.cfg.dist /etc/mfsmaster.cfg #主配置文件
  10. useradd mfs
  11. vim /etc/mfsmaster.cfg #将前两行进行修改,加井号表示默认值
  12. WORKING_USER = mfs
  13. WORKING_GROUP = mfs
  1. cd /var/lib/mfs
  2. cp metadata.mfs.empty metadata.mfs
  3. chown mfs.mfs /var/lib/mfs/ -R
   
   
   
   
  1. vim /etc/hosts 
  2. 192.168.0.82    mfsmaster #每个节点都要做这一部 

   
   
   
   
  1. cd ~ 
  2. rpm -ivh mfs-cgi-1.6.25-1.x86_64.rpm 
  3. cd /usr/share/mfscgi/ 
  4. chmod +x *.cgi 
  5. mfsmaster start 
  6. mfscgiserv start 

 此时打开desktop82.example.com:9425就可以打开可视化的控制界面

 

分布式文件系统MooseFS_第3张图片

 存储块服务器 Chunk servers 安装(desktop81和desktop93,做相同的操作)
 

   
   
   
   
  1. yum install fuse-libs -y 
  2. rm -ivh mfs-chunkserver-1.6.25-1.x86_64.rpm  
  3. cp /etc/mfschunkserver.cfg.dist /etc/mfschunkserver.cfg #配置文件 
  4. cp /etc/mfshdd.cfg.dist /etc/mfshdd.cfg #指定使用存储的路径 
 
   
   
   
   
  1. vim /etc/mfschunkserver.cfg 
  2. WORKING_USER = mfs
  3. WORKING_GROUP = mfs
   
   
   
   
  1. useradd -u 500 -s /sbin/nologin mfs 
  2. mkdir /var/lib/mfs 
  3. chown mfs.mfs /var/lib/mfs 
  4. mkdir /mnt/mfschunks1 
  5. chown mfs.mfs /mnt/mfschunks1/ 
   
   
   
   
  1. vim /etc/mfshdd.cfg.dist 
  2. /mnt/mfschunks1 
注意在这里使用里/mnt下新建的一个文件夹作为储存点,在生产环境中建议新建一个设备挂载出来专门用作储存点 
   
   
   
   
  1. vim /etc/hosts 
  2. 192.168.0.82    mfsmaster 
  3. #mfschunkserver start

 其他储存节点做相同操作后在界面中就可以查看到状态。

 

客户端 Users’ computers 安装(server95.example.com)

   
   
   
   
  1. yum install fuse-libs -y 
  2. rpm -ivh mfs-client-1.6.25-1.x86_64.rpm 
  3. cp /etc/mfsmount.cfg.dist /etc/mfsmount.cfg 
  4. vim /etc/hosts  192.168.0.82    mfsmaster 
测试:
 
   
   
   
   
  1. mkdir /mnt/mfs 
  2. mfsmount /mnt/mfs/ -H mfsmaster mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
  3.  

 

 

分布式文件系统MooseFS_第4张图片

   
   
   
   
  1. mkdir dir1 
  2. mkdir dir2 
  3. cd /mnt/mfs
  4. [root@server95 mfs]# mfsgetgoal dir1 dir1: 1 [root@server95 mfs]# mfsgetgoal dir2 dir2: 1
  5. [root@server95 mfs]# mfssetgoal -r 2 dir2 dir2: inodes with goal changed: 1 inodes with goal not changed: 0 inodes with permission denied: 0
  6. [root@server95 mfs]# mfsgetgoal dir2 dir2: 2
  7. [root@server95 mfs]# cd dir2/ [root@server95 dir2]# cp /etc/fstab . [root@server95 dir2]# mfscheckfile fstab fstab: chunks with 2 copies: 1 [root@server95 dir2]# mfsfileinfo fstab fstab: chunk 0: 0000000000000002_00000001 / (id:2 ver:1) copy 1: 192.168.0.81:9422 copy 2: 192.168.0.93:9422
  8. [root@server95 mfs]# cd dir1 [root@server95 dir1]# ls passwd [root@server95 dir1]# mfscheckfile passwd passwd: chunks with 1 copy: 1 [root@server95 dir1]# mfsfileinfo passwd passwd: chunk 0: 0000000000000001_00000001 / (id:1 ver:1) copy 1: 192.168.0.93:9422

上面的测试的意思是,默认mfs将储存的文件只储存在一个节点上(master选取的),用 mfssetgoal -r 2 dir2命令指将储存在储存块dir2上的文件储存在两个节点上,做一个备份,系统会自动将数据同步到选定的节点上,这样达到里备份的效果。同样因为它使分布式存储,选择不同的存储点,没有了I/O等待的时间,提高里写入速度。

   
   
   
   
  1. [root@server95 dir1]# mfsgettrashtime passwd  
  2. passwd: 86400 

 trashtime使删除数据后数据在回收站中保存的时间,防止用户误删,这个数字太高或太低都不行,生产环境中推荐设置为300,即五分中