主控服务器 Master server: 192.168.0.82 desktop82.example.com
所有节点都需要安装fuse-libs
下载tar包,将它制作为rpm包进行安装(desktop82.example.com上面)
- yum install gcc make gcc-c++ rpm-build fuse-devel zlib-devel openssh-clients -y
- rpmbuild -tb mfs-1.6.25.tar.gz
- cd /root/rpmbuild/RPMS/x86_64
- ls
- 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
- scp mfs-chunkserver-1.6.25-1.x86_64.rpm desktop81.example.com:~
- scp mfs-chunkserver-1.6.25-1.x86_64.rpm desktop93.example.com:~
生成里这样五个RPM包
主控服务器 Master server 安装
- rpm -ivh mfs-master-1.6.25-1.x86_64.rpm
- rpm -ql mfs-master
- /etc/mfsexports.cfg.dist
- /etc/mfsmaster.cfg.dist
- /etc/mfstopology.cfg.dist #成功安装 master 以后,系统会在/etc 目录自动生成样例配置文件,这些样例文件是以.dist 后缀命名。直接复制重命名
- ***********
- cp /etc/mfsexports.cfg.dist /etc/mfsexports.cfg #访问控制
- cp /etc/mfstopology.cfg.dist /etc/mfstopology.cfg
- cp /etc/mfsmaster.cfg.dist /etc/mfsmaster.cfg #主配置文件
- useradd mfs
- vim /etc/mfsmaster.cfg #将前两行进行修改,加井号表示默认值
- WORKING_USER = mfs
- WORKING_GROUP = mfs
- cd /var/lib/mfs
- cp metadata.mfs.empty metadata.mfs
- chown mfs.mfs /var/lib/mfs/ -R
- vim /etc/hosts
- 192.168.0.82 mfsmaster #每个节点都要做这一部
- cd ~
- rpm -ivh mfs-cgi-1.6.25-1.x86_64.rpm
- cd /usr/share/mfscgi/
- chmod +x *.cgi
- mfsmaster start
- mfscgiserv start
此时打开desktop82.example.com:9425就可以打开可视化的控制界面
存储块服务器 Chunk servers 安装(desktop81和desktop93,做相同的操作)
- yum install fuse-libs -y
- rm -ivh mfs-chunkserver-1.6.25-1.x86_64.rpm
- cp /etc/mfschunkserver.cfg.dist /etc/mfschunkserver.cfg #配置文件
- cp /etc/mfshdd.cfg.dist /etc/mfshdd.cfg #指定使用存储的路径
- vim /etc/mfschunkserver.cfg
- WORKING_USER = mfs
- WORKING_GROUP = mfs
- useradd -u 500 -s /sbin/nologin mfs
- mkdir /var/lib/mfs
- chown mfs.mfs /var/lib/mfs
- mkdir /mnt/mfschunks1
- chown mfs.mfs /mnt/mfschunks1/
- vim /etc/mfshdd.cfg.dist
- /mnt/mfschunks1
注意在这里使用里/mnt下新建的一个文件夹作为储存点,在生产环境中建议新建一个设备挂载出来专门用作储存点
- vim /etc/hosts
- 192.168.0.82 mfsmaster
- #mfschunkserver start
其他储存节点做相同操作后在界面中就可以查看到状态。
客户端 Users’ computers 安装(server95.example.com)
- yum install fuse-libs -y
- rpm -ivh mfs-client-1.6.25-1.x86_64.rpm
- cp /etc/mfsmount.cfg.dist /etc/mfsmount.cfg
- vim /etc/hosts 192.168.0.82 mfsmaster
- mkdir /mnt/mfs
- mfsmount /mnt/mfs/ -H mfsmaster mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
- mkdir dir1
- mkdir dir2
- cd /mnt/mfs
- [root@server95 mfs]# mfsgetgoal dir1 dir1: 1 [root@server95 mfs]# mfsgetgoal dir2 dir2: 1
- [root@server95 mfs]# mfssetgoal -r 2 dir2 dir2: inodes with goal changed: 1 inodes with goal not changed: 0 inodes with permission denied: 0
- [root@server95 mfs]# mfsgetgoal dir2 dir2: 2
- [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
- [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等待的时间,提高里写入速度。
- [root@server95 dir1]# mfsgettrashtime passwd
- passwd: 86400
trashtime使删除数据后数据在回收站中保存的时间,防止用户误删,这个数字太高或太低都不行,生产环境中推荐设置为300,即五分中