MFS是一個具備容錯性的網絡分佈式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。c++
MFS文件系統的組成。vim
元數據服務器(master):負責管理文件系統,維護元數據。 元數據日誌服務器(MetaLogger):存放日誌文件。 數據存儲服務器(Chunk Server):真正存儲數據的服務器。 客戶端(client):用來掛載MFS文件文件系統的。
MFS讀取數據的處理過程。服務器
1. 客戶端向元數據服務器發出讀請求。 2. 元數據服務器把所需數據存放的位置告知客戶端。 3. 客戶端向已知的Chunk Server請求發送數據。 4. Chunk Server向客戶端發送數據。
MFS寫入數據的處理過程。網絡
客戶端向元數據服務器發送寫入請求。架構
元數據服務器與(ChunkServer進行交互)。分佈式
元數據服務器告知客戶端,能夠在哪一個Chunk Server的哪些Chunks寫入數據。ide
客戶端向指定的Chunk Server寫入數據。工具
該Chunk Server 與其餘Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功。測試
主機名稱及角色 | IP地址 | 主要軟件 |
---|---|---|
CentOS7-1(master) | 172.16.10.138 | mfs-1.6.27-5.tar.gz |
CentOS7-2(MetaLogger) | 172.16.10.137 | mfs-1.6.27-5.tar.gz |
CentOS7-3(chunkserever1) | 172.16.10.133 | mfs-1.6.27-5.tar.gz |
CentOS7-4(chunkserever2) | 172.16.10.136 | mfs-1.6.27-5.tar.gz |
CentOS7-6(client) | 172.16.10.135 | mfs-1.6.27-5.tar.gz、fuse-2.9.2.tar.gz |
yum -y install zlib-devel gcc gcc-c++日誌
useradd -s /sbin/nologin -M mfs
tar xf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \ #工做目錄
--with-default-user=mfs \ #運行masterserver的用戶
--with-default-group=mfs \ #運行masterserver的組
--disable-mfschunkserver \
--disable-mfsmount #關閉功能make && make install #編譯安裝
cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfs
cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg #主配置文件
cp mfsexports.cfg.sample mfsexports.cfg #被掛載目錄及權限配置文件
cp mfstopology.cfg.sample mfstopology.cfg #拓撲架構感知
/usr/local/mfs/sbin/mfsmaster start #開啓服務
這裏能夠看到服務已經啓動了,而後關閉服務能夠使用/usr/local/mfs/sbin/mfsmaster -s
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmountmake && make install
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim mfsmetalogger.cfg
MASTER_HOST=172.16.10.138 #指向master服務器
/usr/local/mfs/sbin/mfsmetalogger start #開啓服務
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmountmake && make install
cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
vim mfschunkserver.cfg
MASTER_HOST=172.16.10.138 #指向master服務器
vim mgshdd.cfg
/data #添加
mkdir /data
chown -R mfs:mfs /data
/usr/local/mfs/sbin/mfschunkserver start #開啓服務
注:另外一臺chunkserver服務器和這臺配置同樣
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar xf fuse-2.9.2.tar.gz -C /opt
cd /opt/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 #刷新生效
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmountmake && make install
mkdir /opt/mfs //建立掛載點//
modprobe fuse //加載fuse模塊到內核//
/usr/local/mfs/bin/mfsmount /opt/mfs -H 172.16.10.138 //掛載MFS
若是要卸載MFS,使用命令umount /opt/mfs
vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH #添加環境變量,方便相關命令的使用source /etc/profile
/usr/local/mfs/sbin/mfscgiserv #開啓
至此實驗成功,MFS分佈式文件系統就所有介紹完了!!!