MFS分佈式文件系統
一、實驗環境
三、Mfs分佈式文件系統詳解
1、分佈式原理
分佈式文件系統就是把一些分散在多臺計算機上的共享文件夾,集合到一個共享文件夾內,用戶要訪問這些文件夾的時候,只要打開一個文件夾,就可以的看到所有鏈接到此文件夾內的共享文件夾。
2、MFS原理
MFS是一個具有容錯性的網絡分佈式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
3、MFS讀數據的處理過程
n 客戶端向元數據服務器發出讀請求
n 元數據服務器把所需數據存放的位置(Chunk Server的IP地址和Chunk編號)告知客戶端
n 客戶端向已知的Chunk Server請求發送數據
n Chunk Server向客戶端發送數據
4、MFS的組成
元數據服務器(Master):在整個體系中負責管理文件系統,維護元數據,目前不支持高可用。
元數據日誌服務器(MetaLogger):備份Master服務器的變化日誌文件,當master服務器損壞,可以從日誌服務器中取得文件恢復。
數據存儲服務器(Chunk Server):真正存儲數據的服務器,服務器越多,容量就越大,可靠性越高,性能越好。
客戶端(Client):可以像掛載NFS一樣掛載MFS文件系統
5、寫入的過程
n 客戶端向元數據服務器發送寫入請求
n 元數據服務器與Chunk Server進行交互,但元數據服務器只在某些服務器創建新的分塊Chunks,創建成功後由Chunk Servers告知元數據服務器操作成功
n 元數據服務器告知客戶端,可以在哪個Chunk Server的哪些Chunks寫入數據
n 客戶端向指定的Chunk Server寫入數據
n 該Chunk Server與其他Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功
n 客戶端告知元數據服務器本次寫入完畢
四、實驗步驟
Master:192.168.1.10
MetaLogger:192.168.1.20
Chunk 1:192.168.1.30
Chunk 2:192.168.1.40
搭建Master server
下載源碼包及安裝準備
#service iptables stop
#yum -y install zlib-devel
創建用戶
#useradd mfs -s /sbin/nologin
安裝源碼包
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount && make && make install
複製文件
#cd /usr/local/mfs/etc/mfs
#cp mfsmaster.cfg.dist mfsmaster.cfg
#cp mfsexports.cfg.dist mfsexports.cfg
#cp mfstopology.cfg.dist mfstopology.cfg
#cd /usr/local/mfs/var/mfs
#cp metadata.mfs.empty metadata.mfs
配置文件
#ln -s /usr/local/mfs/sbin/mfsmaster /usr/local/sbin
啓動Master server
#mfsmaster start
#mfsmaster -s 停止 Master Server
#ps -ef | grep mfs //檢查是否啓動
搭建MetaLogger Server
#service iptables stop 關閉防火牆
#yum install -y gcc gcc-c++
創建用戶
#useradd mfs -s /sbin/nologin
編譯安裝mfs
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount && make && make install
#cd /usr/local/mfs/etc/mfs
#cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
修改爲master server的IP地址
#echo "MASTER_HOST = 192.168.1.10" >> /usr/local/mfs/etc/mfs/mfsmetalogger.cfg
做軟連接
#ln -s /usr/local/mfs/sbin/mfsmetalogger /usr/local/sbin
啓動mfsmetaLogger
#mfsmetalogger start 啓動mfsmetalogger 服務
#ps -ef | grep mfs 檢查是否啓動
搭建Chunk Server 1,Chunk Server 2
#service iptables stop
# yum install -y gcc gcc-c++ zlib-devel
創建用戶
#useradd mfs -s /sbin/nologin
編譯安裝mfs
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount && make && make install
#cd /usr/local/mfs/etc/mfs
#cp mfschunkserver.cfg.dist mfschunkserver.cfg
#cp mfshdd.cfg.dist mfshdd.cfg
修改爲master server 的IP地址
#echo "MASTER_HOST = 192.168.1.10" >> /usr/local/mfs/etc/mfs/mfschunkserver.cfg
在這裏/data是一個給mfs的分區,生產環境最好使用
獨立分區或磁盤掛載到此目錄
#echo "/data" >> /usr/local/mfs//etc/mfs/mfshdd.cfg
創建目錄
#mkdir /data
給目錄賦予屬主屬組的權限
#chown -R mfs:mfs /data
做軟連接以便啓動不需絕對路徑
#ln -s /usr/local/mfs/sbin/mfschunkserver /usr/local/sbin
#mfschunkserver start 啓動mfschunkserver服務
mfschunkserver -s 停止mfschunkserver服務
#ps -ef | grep mfs
客戶端配置
#service iptables stop
#yum install -y gcc gcc-c++
創建用戶
#useradd mfs -s /sbin/nologin
MFS依賴於FUSE,編譯安裝fuse
#cd /usr/src
#tar zxf fuse-2.9.2.tar.gz
#cd fuse-2.9.2
./configure && make && make install
設置環境變量
#echo "expor" PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> /etc/profie
#source /etc/profile
編譯安裝mfs客戶端
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount && make && make install
#mkdir /zc 創建掛接點
#modprobe fuse 加載fuse模塊到內核
掛接MFS
#/usr/local/mfs/bin/mfsmount /zc -H 192.168.1.10
查看掛載情況
#df -HT
MFS安裝完畢後,會生成/usr/local/mfs/bin目錄,在這個目錄下有很多命令,是用戶所需的。爲了方便,可將/usr/local/mfs/bin加入環境變量。
#echo "export PATH=/usr/local/mfs/bin:$PATH" >> /etc/profile
生產環境Chunk server節點數量應大於2,文件副本小於等於Chunk server 服務器的數量。
#mfssetgoal -r 2 /zc
#mfsgetgoal -r /zc
創建測試文件
#cd /zc
#touch 123
#mfsgetgoal test
客戶端測試訪問:http://192.168.1.10:9425
info:顯示MFS的基本信息
Servers:列出現有的Chunk Server
Disks:列出現有的硬盤信息
Exports:列出可被掛載的目錄
Mounts:列出被掛載的目錄
Operations:顯示正在執行的操作
Master Charts :顯示Master Server的操作情況,讀,寫,刪除等操作。
Server Charts:顯示Chunk Server的操作情況,數據傳輸率及系統狀態。