- MFS簡介
MooseFS是一個具有容錯性的網絡分佈式文件系統。它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
- MFS文件系統的組成架構
元數據服務器(Master):負責管理文件系統,維護元數據。
元數據日誌服務器(MetaLogger):當Master服務器數據丟失或損壞時,可以從日誌服務器中取得文件,進行恢復。
數據存儲服務器(Chunk Server):真正存儲數據的服務器。
客戶端:掛載MFS文件系統。
- 實驗要求:
Master: 192.168.177.140
MetaLogger: 192.168.177.135
Chunk1: 192.168.177.132
Chunk2: 192.168.177.133
Client: 192.168.177.134
搭建Master
# systemctl stop firewalld.service //關閉防火牆
# setenforce 0
# yum install -y zlib-devel gcc gcc-c++ //安裝依賴包
-
創建用戶
# useradd -s /sbin/nologin mfs //創建管理的用戶
- 安裝源碼包
# tar zxvf mfs-1.6.27-5.tar.gz -C /opt //解壓
# cd mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \ //指定用戶
--with-default-group=mfs \
--disable-mfschunkserver \ //禁用chunk
--disable-mfsmount //禁用客戶端
# make && make install
- 複製文件
# cd /usr/local/mfs/etc/mfs/ //變成可被識別的配置文件
# cp mfsexports.cfg.dist mfsexports.cfg
# cp mfsmaster.cfg.dist mfsmaster.cfg
# cp mfstopology.cfg.dist mfstopology.cfg
# cd /usr/local/mfs/var/mfs/ //防異常退出
# cp metadata.mfs.empty metadata.mfs
- 啓動Master
# /usr/local/mfs/sbin/mfsmaster start //啓動
搭建MetaLogger Server
- 關閉防火牆,安裝依賴包
# systemctl stop firewalld.service # setenforce 0 # yum install -y zlib-devel gcc gcc-c++
-
創建用戶
# useradd -s /sbin/nologin mfs //創建管理的用戶
- 安裝源碼包
# tar zxvf mfs-1.6.27-5.tar.gz -C /opt //解壓
# cd mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \ //指定用戶
--with-default-group=mfs \
--disable-mfschunkserver \ //禁用chunk
--disable-mfsmount //禁用客戶端
# make && make install
- 複製文件
# cd /usr/local/mfs/etc/mfs/ //變成可被識別的配置文件
# cp mfsexports.cfg.dist mfsexports.cfg
# cp mfsmaster.cfg.dist mfsmaster.cfg
# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg mfstopology.cfg
# cd /usr/local/mfs/var/mfs/ //防異常退出
# cp metadata.mfs.empty metadata.mfs
- 指向Master
# vim mfsmetalogger.cfg MASTER_HOST = 192.168.177.140
- 啓動服務
/usr/local/mfs/sbin/mfsmetalogger start
搭建Chuck Server
- 關閉防火牆,安裝依賴包
# systemctl stop firewalld.service # setenforce 0 # yum install -y zlib-devel gcc gcc-c++
-
創建用戶
# useradd -s /sbin/nologin mfs //創建管理的用戶
- 安裝源碼包
# tar zxvf mfs-1.6.27-5.tar.gz -C /opt //解壓
# cd mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \ //指定用戶
--with-default-group=mfs \
--disable-mfsmaster \ //禁用Master
--disable-mfsmount //禁用客戶端
# make && make install
- 複製文件
# cd /usr/local/mfs/etc/mfs/ //變成可被識別的配置文件
# cp mfschunkserver.cfg.dist mfschunkserver.cfg
# cp mfshdd.cfg.dist mfshdd.cfg
# cd /usr/local/mfs/var/mfs/ //防異常退出
# cp metadata.mfs.empty metadata.mfs
- 指向Master
# vim mfschunkserver.cfg MASTER_HOST = 192.168.177.140
- 將分區掛載到目錄下
# vi mfshdd.cfg /data # mkdir /data # chown -R mfs:mfs /data
- 啓動服務
/usr/local/mfs/sbin/mfsmetalogger start
另一臺Chunk Server也是這樣
客戶端配置
- 關閉防火牆,安裝依賴包
# systemctl stop firewalld.service # setenforce 0 # yum install -y zlib-devel gcc gcc-c++
- 安裝FUSE
# tar xzvf fuse-2.9.2.tar.gz -C /opt # cd fuse-2.9.2 ./configure # make && make install
設置環境變量:
# vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
# source /etc/profile
-
安裝MFS客戶端
- 創建用戶
```# useradd -s /sbin/nologin mfs //創建管理的用戶
- 安裝源碼包
```# tar zxvf mfs-1.6.27-5.tar.gz -C /opt //解壓 # 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```
- 掛載MFS文件系統
# mkdir /opt/mfs //創建掛載點 modprobe fuse //加載fuse模塊到內核// /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.177.140 //掛載MFS df -hT //查看掛載情況
- MFS常用操作
# vim /etc/profile export PATH=/usr/local/mfs/bin:$PATH # source /etc/profile # mfsgetgoal -r /opt/mfs/ //查詢文件被複制的份數
MFS監控
# /usr/local/mfs/sbin/mfscgiserv //在Master上啓動監控程序