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 目錄中的文件將被刪除,文件的數據也將被立即刪除。此目錄不能進行操作。