Mfs分佈式存儲的搭建以及部署

一、MFS的簡單瞭解
1、包含 4 種角色
管理服務器 managing server (master)
元數據日誌服務器 Metalogger server(Metalogger)
數據存儲服務器 data servers (chunkservers)
客戶機掛載使用 client computers
2、各種角色作用
管理服務器:負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝。
元數據日誌服務器: 負責備份 master 服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs,以便於在 master server 出問題的時候接替其進行工作。
數據存儲服務器:負責連接管理服務器,聽從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸。
客戶端: 通過 fuse 內核接口掛接遠程管理服務器上所管理的數據存儲服務器,看起來共享的文件系統和本地 unix 文件系統使用一樣的效果。
3、MFS 讀寫原理
這裏寫圖片描述
這裏寫圖片描述
二、MFS環境的簡單部署
實驗環境rhel6.5 selinux and iptables disabled
Server1 master 172.25.70.1
Server2 chunkserver 172.25.70.2
Server3 chunkserver 172.25.70.3
foundation70(真機) Client 172.25.254.70
1、主控服務器 Master server 安裝
所需rpm包

 moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm
 moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm
 moosefs-master-3.0.97-1.rhsysv.x86_64.rpm

安裝

[root@server1 ~]# yum install moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm  moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm

使用mfs分佈式文件系統需要做好解析(這裏我們設置master所在的主機server1爲mfsmaster)

[root@server1 ~]# vim /etc/hosts

這裏寫圖片描述
啓動服務:

[root@server1 ~]# /etc/init.d/moosefs-cgiserv start
[root@server1 ~]# /etc/init.d/moosefs-master start

查看端口偵聽情況
這裏寫圖片描述
用於 chunkserver 連接的端口地址(默認是 9420)
metalogger 監聽的端口地址(默認是 9419)
用於客戶端掛接連接的端口地址(默認是 9421)
MFS master web 界面監聽端口,查看整體運行狀態(默認是 9425)

2、客戶端可以對mfsmaster進行訪問,但是在這之前需要做好本地解析

[root@foundation70 ~]# vim /etc/hosts
172.25.70.1 server1  mfsmaster

訪問mfsmaster的ip+9425 這裏是(172.25.70.1:9425)
這裏寫圖片描述
3、chunkserver的安裝(在server2和server3上)
所需rpm包:

moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm
[root@server2 ~]# yum install moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm -y
[root@server3 ~]# yum install moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm -y

server2和server3都添加本地解析

vim /etc/hosts
172.25.70.1 server1 mfsmaster

在啓動chunkserver之前,需要定義mfs共享點,在這裏我們設置該共享點爲/mnt/chunk1(server1),/mnt/chunk2(serevr2)

在server2和server3上都進行下面操作
mkdir /mnt/chunk1
mkdir /mnt/chunk2
[root@server2 ~]# chown mfs.mfs /mnt/chunk1/ 需要確保用戶mfs對該共享點有權限讀寫
[root@server2 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk1  #在配置文件末尾定義mfs共享點
[root@server3 ~]# chown mfs.mfs /mnt/chunk2/
[root@server3 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk2  #在配置文件末尾定義mfs共享點

啓動chunkserver(在server2和server3上)

mfschunkserver start

如下圖:
這裏寫圖片描述
4、在client端再次訪問9425端口
應該可以看見這個 MooseFS 系統的全部信息,包括主控 master 和存儲服務 chunkserver
這裏寫圖片描述
5、客戶端 client 安裝
所需rpm包

moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm

安裝

[root@foundation70 moosefs6.5]# yum install moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm -y

掛載

[root@foundation70 ~]# cd /etc/mfs/
[root@foundation70 mfs]# vim mfsmount.cfg #定義客戶端默認掛載
/mnt/mfs
[root@foundation70 mnt]# mkdir mfs
[root@foundation70 mnt]# useradd mfs
[root@foundation70 mnt]# chown mfs:mfs /mnt/mfs/  
[root@foundation70 ~]# mfsmount  #成功掛載
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root

這裏寫圖片描述
6、MFS 測試
在 MFS 掛載點下創建兩個目錄,並設置其文件存儲份數

[root@foundation70 mfs]# mkdir dir1 dir2 
[root@foundation70 mfs]# mfssetgoal -r 2 dir1/ #設置在 dir1 中文件存儲份數爲兩個,默認是一個。
[root@foundation70 mfs]# mfsgetgoal dir1/       #獲取文件存儲份數
dir1/: 2
You have new mail in /var/spool/mail/kiosk
[root@foundation70 mfs]# mfsgetgoal dir2/       #獲取文件存儲份數
dir2/: 1

注意:對一個目錄設定 “ goal”,此目錄下的新創建文件和子目錄均會繼承此目錄的設定,但不會改變已經存在的文件及目錄的 copy 份數。但使用-r 選項可以更改已經存在的 copy 份數

#拷貝/etc/passwd這份文件分別到兩個目錄上
[root@foundation70 mfs]# cp /etc/passwd dir1
[root@foundation70 mfs]# cp /etc/passwd dir2
[root@foundation70 mfs]# mfscheckfile dir1/passwd 
dir1/passwd:
 chunks with 2 copies:            1
[root@foundation70 mfs]# mfsfileinfo dir1/passwd  #查看dir1下文件信息

這裏寫圖片描述

[root@foundation70 mfs]# mfscheckfile dir2/passwd 
dir2/passwd:
 chunks with 1 copy:  
[root@foundation70 mfs]# mfsfileinfo dir2/passwd #查看dir2下文件信息

這裏寫圖片描述
關閉 mfschunkserver3 後再查看文件信息
這裏寫圖片描述
由於dir1/的文件存儲份數是2,本身存儲在chunkserver2上,dir2/的文件存儲份數是1,本身存儲在chunkserver3上,當我們把server3上的chunkserver關閉,那麼dir1/下的文件仍可以查看,因爲存儲份數是2的緣故,dir2/下的文件就不能查看。
7、恢復垃圾箱文件

[root@foundation70 mfs]# rm -rf dir1/passwd 
[root@foundation70 mfs]# mfsgettrashtime dir1/  #文件刪除後存放在 “ 垃圾箱 ” 中的時間稱爲隔離時間, 這個時間可以用 mfsgettrashtime 命令來查看,用 mfssettrashtime 命令來設置,單位爲秒,默認爲 86400 秒。
dir1/: 86400    
[root@foundation70 mfs]# mkdir /mnt/mfsmeta
[root@foundation70 mfs]# mfsmount -m /mnt/mfsmeta/ -H mfsmaster  #掛載 MFSMETA 文件系統,它包含目錄 trash (包含仍然可以被還原的刪除文件的信息)和trash/undel (用於獲取文件)。把刪除的文件,移到/ trash/undel 下,就可以恢復此文件。
[root@foundation70 mfs]# cd /mnt/mfsmeta/
You have new mail in /var/spool/mail/kiosk
[root@foundation70 mfsmeta]# ls
sustained  trash
[root@foundation70 mfsmeta]# cd trash/ #進入trash,該目錄下有很多文件
[root@foundation70 mfsmeta]# find -type f  #我們要恢復的文件類型爲普通文件
./004/00000004|dir1|passwd  
[root@foundation70 trash]# mv 00000004\|dir1\|passwd undel/  #將需要恢復的文件移動到undel目錄下,注意書寫格式

成功恢復

[root@foundation70 trash]# cd /mnt/mfs/dir1/
[root@foundation70 dir1]# ls
passwd
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章