MFS分布式文件系統的部署
MFS簡介
MFS是一個具有容錯性的網絡分布式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
-
MFS文件系統的組成。
元數據服務器(master):負責管理文件系統,維護元數據。 元數據日誌服務器(MetaLogger):存放日誌文件。 數據存儲服務器(Chunk Server):真正存儲數據的服務器。 客戶端(client):用來掛載MFS文件文件系統的。
-
MFS讀取數據的處理過程。
1. 客戶端向元數據服務器發出讀請求。 2. 元數據服務器把所需數據存放的位置告知客戶端。 3. 客戶端向已知的Chunk Server請求發送數據。 4. Chunk Server向客戶端發送數據。
-
MFS寫入數據的處理過程。
-
客戶端向元數據服務器發送寫入請求。
-
元數據服務器與(ChunkServer進行交互)。
-
元數據服務器告知客戶端,可以在哪個Chunk Server的哪些Chunks寫入數據。
-
客戶端向指定的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 |
實驗部署
搭建Master Server
- 首先安裝環境包
yum -y install zlib-devel gcc gcc-c++
- 創建管理用戶
useradd -s /sbin/nologin -M mfs
- 解壓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 #拓撲架構感知
- 開啟master服務
/usr/local/mfs/sbin/mfsmaster start #開啟服務
這裏可以看到服務已經啟動了,然後關閉服務可以使用/usr/local/mfs/sbin/mfsmaster -s
搭建MetaLogger server
- 首先安裝環境包
yum -y install zlib-devel gcc gcc-c++
- 創建管理用戶
useradd -s /sbin/nologin -M mfs
- 解壓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
- 修改配置文件使地址指向master服務器
vim mfsmetalogger.cfg
MASTER_HOST=172.16.10.138 #指向master服務器
- 開啟MetaLogger Server服務
/usr/local/mfs/sbin/mfsmetalogger start #開啟服務
搭建chunkserver
- 首先安裝環境包
yum -y install zlib-devel gcc gcc-c++
- 創建管理用戶
useradd -s /sbin/nologin -M mfs
- 解壓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
- 修改配置文件使地址指向master服務器
vim mfschunkserver.cfg
MASTER_HOST=172.16.10.138 #指向master服務器
- 修改mfshdd.cfg,添加共享的文件目錄
vim mgshdd.cfg
/data #添加
- 創建共享目錄,修改屬主屬組
mkdir /data
chown -R mfs:mfs /data
- 開啟chunkserver服務
/usr/local/mfs/sbin/mfschunkserver start #開啟服務
註:另一臺chunkserver服務器和這臺配置一樣
搭建客戶端client
- 首先安裝環境包
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 #刷新生效
- 搭建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
- 掛載MFS文件系統
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
- MFS網頁監控
/usr/local/mfs/sbin/mfscgiserv #開啟
- 測試
至此實驗成功,MFS分布式文件系統就全部介紹完了!!!
MFS分布式文件系統的部署