mfs的特点:数据可以存储在多个机器上的多个副本;可回收在指定时间内删除的;可动态扩展随时新增加机器或者是磁盘.
172.25.45.2 server2.example.com master 管理服务器
172.25.45.3 server3.example.com chunkservers 数据存储服务器
172.25.45.4 server4.example.com chunkservers
172.25.45.5 server5.example.com clients 客户机挂载使用
管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷
贝。
数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数
据传输。
元数据日志服务器: 负责备份 master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作。
客户端:通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文
件系统和本地 unix 文件系统使用一样的效果。
- master端的安装:
server2:
yum install rpm-build -y
cd /root
rpmbuild -tb mfs-1.6.27-5.tar.gz
cp mfs-1.6.27-5.tar.gz rpmbuild/SOURCES/
cp mfs-1.6.27-5.tar.gz mfs-1.6.27.tar.gz
yum install fuse-devel gcc -y
rpmbuild -tb mfs-1.6.27-5.tar.gz ##编译mfs
cd cd /root/rpmbuild/RPMS/x86_64
ls ##编译成功
mfs-cgi-1.6.27-4.x86_64.rpm
mfs-cgiserv-1.6.27-4.x86_64.rpm
mfs-chunkserver-1.6.27-4.x86_64.rpm
mfs-client-1.6.27-4.x86_64.rpm
mfs-master-1.6.27-4.x86_64.rpm
mfs-metalogger-1.6.27-4.x86_64.rpm
rpm -ivh mfs-master-1.6.27-4.x86_64.rpm mfs-cgi-1.6.27-4.x86_64.rpm mfs-cgiserv-1.6.27-4.x86_64.rpm
cd /etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfstopology.cfg.dist mfstopology.cfg
cd /var/lib/mfs/
chown nobody . -R ##
cp metadata.mfs.empty metadata.mfs
mfsmaster ##启动master
ls
##mfsmaster.lock 文件记录正在运行的mfsmaster的主进程metadata.mfs, metadata.mfs.back MooseFS 文件系统的元数据 metadata 的镜像changelog.*.mfs 是 MooseFS 文件系统元数据的改变日志(每一个小时合并到 metadata.mfs中一次)
mfscgiserv ##启动 CGI 监控服务
cd /usr/share/mfscgi/
chmod +x *.cgi
2.配置chunkserver端:
server3:
rpm -ivh mfs-chunkserver-1.6.27-4.x86_64.rpm
cd /etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
mkdir /var/lib/mfs
chown nobody /var/lib/mfs
cd /mnt
mkdir chunk1
chown nobody /mnt/chunk1/
vim /etc/mfs/mfshdd.cfg ##定义 mfs 共享点
/mnt/chunk1
vim /etc/hosts
172.25.45.2 server2.example.com mfsmaster
mfschunkserver
在server4:
只有在cd /mnt
mkdir chunk2
chown nobody /mnt/chunk2/
vim /etc/mfs/mfshdd.cfg
/mnt/chunk2
其余操作都相同
在浏览中打开172.25.45.2:9045
3.配置client端:
server5:
yum install fuse-libs -y
rpm -ivh mfs-client-1.6.27-4.x86_64.rpm
cd /etc/mfs
cp mfsmount.cfg.dist mfsmount.cfg
vim mfsmount.cfg ####定义 mfs 共享点
/mnt/mfs
mkdir /mnt/mfs
vim /etc/hosts
172.25.45.2 server2.example.com mfsmaster
mfsmount
df
检测:
cd /mnt/mfs
mkdir dir1
mkdir dir2
cp /etc/passwd /mnt/mfs/dir1
mfsfileinfo passwd ##查看文件信息
passwd: chunk 0: 0000000000000001_00000001 / (id:1 ver:1) copy 1: 172.25.45.3:9422
mfssetgoal -r 2 /mnt/mfs/dir2/ ##设置在 dir2 中文件存储份数为两个
cp /etc/fstab /mnt/mfs/dir2
cd /mnt/mfs/dir2
mfsfileinfo fstab
fstab: chunk 0: 0000000000000002_00000001 / (id:2 ver:1) copy 1: 172.25.45.3:9422 copy 2: 172.25.45.4:9422
关闭server4上的mfschunkserver:
mfsfileinfo fstab
fstab: chunk 0: 0000000000000002_00000001 / (id:2 ver:1) copy 1: 172.25.45.3:9422
启动server4上的mfschunkserver 后,文件恢复正常。
cd /mnt/mfs/dir2
dd if=/dev/zero of=file3 bs=1M count=100
mfsfileinfo file3
关闭server4上的mfschunkserver:
mfsfileinfo file3
恢复被误删的文件:
可以用mfsgettrashtime来查看文件删除后存放在垃圾箱中的时间,单位为秒,默认为86400秒。
cd /mnt/mfs/dir1
rm -fr passwd
mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta
##挂载mfsmeta文件系统,它包含目录 trash (包含仍然可以被还原的删除文件的信息)和trash/undel (用于获取文件)。把删除的文件,移到/ trash/undel 下,就可以恢复此文件。
cd /mnt/mfsmeta/trash
mv 00000004\|dir1\|passwd undel/
会发现被删除的passwd又会回到到/mnt/mfs/dir1中
在mfsmeta的目录里,除了 trash 和 trash/undel 两个目录,还有第三个目录 reserved,该目
录内有已经删除的文件,但却被其他用户一直打开着。在用户关闭了这些被打开的文件后,reserved 目录中的文件将被删除,文件的数据也将被立即删除。此目录不能进行操作。