MFS分佈式文件系統
1、分佈式理論
- 分佈式文件系統是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。簡單來說就是把一些分散的(分佈在局域網各個計算機上)共享文件夾,集合到一個文件夾內(虛擬共享文件夾)。對於用戶來說,要訪問這些共享文件夾時,只要打開這個虛擬共享文件夾,就可以看到所有鏈接到虛擬共享文件夾內的共享文件夾,用戶感覺不到這些共享問價是分散於各個計算機上的。分佈文件系統的好處是集中訪問、簡化操作、數據容災,以及提高文件的存取性能。
2、MFS原理
- MFS是一個具有容錯性的網絡分佈式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
3、MFS文件系統的組成。
- 1)、元數據服務器(Master):在整個體系中負責管理文件系統,維護元數據。
- 2)、元數據日誌服務器(MetaLogger):備份Master服務器的變化日誌文件,文件類型changelog_ml.*.mfs。當Master服務器數據丟失或者損壞時,可以從日誌服務其中取得文件,進行復制。
- 3)、數據存儲服務器(Chunk Server):真正存儲數據的服務器。存儲文件時,會把文件分塊保存,並在數據服務器之間進行復制。數據服務器越多,能使用的“容器”就越大,性能也就越好。
- 4)、客戶端(Client):可以像掛載NFS一樣掛載MFS文件系統,其操作是相同的。
4、實驗過程
1)、搭建Master Server
curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo #配置yum倉庫
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y
mfsmaster start #開啓服務
mfscgiserv #啓動Web服務器,監控MFS
2)、搭建Metalogger Server
curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo #配置yum倉庫
yum install moosefs-metalogger -yvim /etc/mfs/mfsmetalogger.cfg #編輯metalogger配置文件
MASTER_HOST = 192.168.27.168 #修改爲Master Server的IP地址
metalogger start #開啓服務
3)、搭建Chunk Server
- 兩臺Chunk Server服務器配置相同;
curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo #配置yum倉
yum install moosefs-chunkserver -y
vim /etc/mfs/mfschunkserver.cfg #編輯chunkserver配置文件
MASTER_HOST = 192.168.27.168 #修改爲Master Server的IP地址
vim /etc/mfs/mfshdd.cfg
/data #添加,/data是一個給MFS的分區,生產環境最好使用獨立的分區或磁盤掛載到此目錄
mkdir /data #創建/data目錄
chown -R mfs:mfs /data #更改屬主屬組
mfschunkserver start #開啓服務
4)、搭建客戶端
curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo #配置yum倉
yum install moosefs-client -y
mkdir /opt/mfs #創建掛載點
modprobe fuse #加載fuse模塊到內核
mfsmount /opt/mfs/ -H 192.168.27.168 #掛載MFS
mfssetgoal -r 3 /opt/mfs #設置文件被複制的份數
mfsgetgoal -r /opt/mfs #查詢文件被複制的份數
cd /opt/mfs
touch test #創建文件
mfsgetgoal test #查看文件被複制的份數
5)、MFS監控
- Mfscgiserv是用Python編寫的一個Web服務,器監聽端口是9425,可以在Master Server上通過命令mfscgiserv來啓動,用戶利用瀏覽器就可以全面監控所有客戶掛載、Chunk Server、Master Server、以及客戶端的各種操作。