您好,登錄后才能下訂單哦!
MFS分布式存儲服務
MFS的作用:
MFS分布式存儲的目的是為了解決在NFS的短板,多臺服務器通過NFS的方式掛載共享
一個服務器的存儲空間,使得NFS服務器不堪重負,經常出現超時的現象,而且NFS存在單點故障,
盡管可以使用rsync同步數據到另一臺服務器上做備份,但對提高系統性能并無幫助。因此解決方案
采取MFS分布式文件系統,服務器之間的數據訪問不再是一對多的關系,而是多對多的關系。
什么是分布式存儲:
分布式原理:通過計算機網絡和節點相連,簡單的說就是把一些分散的共享文件夾集合到一個虛擬文
件夾內。對于用戶來說,訪問這些共享文件夾只是打開了一個虛擬文件夾,用戶感受不到這些共享文件夾是分
布于各個計算機上的。分布式文件系統的好處是集中訪問,簡化操作,數據容災,以及提高文件的存取性能。
MFS原理:
1)MFS文件系統的組成。
● 元數據服務器(master):在整個體系中負責管理文件系統,維護元數據。
● 元數據日志服務器(metaLogger):當MAster服務器數據丟失或者損壞是,可以從日志服務器中取得文件,進行恢復。
● 數據存儲服務器(chunkserver):真正存儲數據的服務器。存儲文件時會把文件分塊保存。
● 客戶端:可以像掛載MFS文件系統一樣,其操作相同。
2)MFS讀取數據的處理過程。
● 客戶端向元數據服務器發出請求。
● 元數據服務器把所需數據存放位置告知客戶端。
●客戶端向已知Chunk server請求發送數據。
●Chunk Server向客戶端發送數據。
3)MFS寫入數據的出來過程
● 客戶端向元數據服務器發送寫入請求
● 元數據服務器與Chunk Server進行交互,會在Chunk Server上創建新分塊Chunks并告知元服務器。
● 元數據服務器告知客戶端,可以在哪個Chunk Server的哪個分塊Chunks上寫入數據。
● 客戶端指定Chunk Server寫入數據。
● 該Chunk Server與其他Chunk Server進行數據同步,同步成功告知客戶端寫入成功。
● 客戶端告知元數據服務器本次寫入完畢。
實驗拓撲如下:
本實驗使用5臺服務器模擬搭建MFS文件系統
實驗環境:
角色類型 | 操作系統 | ip地址 | 主要軟件 |
Master Server | Centos7 | 192.168.60.141 | moosefs-3.0.100-1.tar.gz |
MetaLogger Server | Centos7 | 192.168.60.136 | moosefs-3.0.100-1.tar.gz |
Chunk Server1 | Centos7 | 192.168.60.143 | moosefs-3.0.100-1.tar.gz |
Chunk Server2 | Centos7 | 192.168.60.144 | moosefs-3.0.100-1.tar.gz |
Client | Centos7 | 192.168.60.130 | fuse-2.9.2.tar.gz 、moosefs-3.0.100-1.tar.gz |
一、搭建Master Server服務器
1、解壓、安裝環境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創建用戶、編譯
cd /opt/moosefs-3.0.100/
useradd -s /sbin/nologin mfs #創建mfs管理用戶
./configure --prefix=/usr/local/mfs \ #編譯
--with-default-user=mfs \ #指定管理用戶
--with-default-group=mfs \ #指定管理組
--disable-mfschunkserver \ #禁用節點
--disable-mfsmount #禁用客戶端掛載
make && make install
3、復制配置文件
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
4、優化、啟動服務檢測端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin #將mfs的命令放到系統中識別
mfsmaster start #啟動mfsmaster
[root@localhost mfs]# netstat -ntap | grep mfs #看三個監聽端口
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 42551/mfsmaster
tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 42551/mfsmaster
tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 42551/mfsmaster
二、搭建MetaLogger Server服務器
1、解壓縮、安裝環境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創建用戶、編譯
cd /opt/moosefs-3.0.100/
useradd -s /sbin/nologin mfs
./configure --prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \ #禁用節點
--disable-mfsmount #禁用客戶端掛載
make && make install
3、復制配置文件并修改
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim mfsmetalogger.cfg
MATER_HOST = 192.168.60.141 #找到MATER_HOST模板,ip地址指向master
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
4、優化、啟動服務檢測端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/ #將mfs的命令放到系統中識別
mfsmetalogger start #啟動服務
[root@localhost mfs]# netstat -ntap | grep mfs #看下狀態有沒有起來
tcp 0 1 192.168.60.136:55894 220.250.64.225:9419 SYN_SENT 42707/mfsmetalogger
三、搭建Chunk節點服務器
1、解壓、安裝環境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創建用戶,編譯
cd /opt/moosefs-3.0.100/
useradd -s /sbin/nologin mfs
./configure --prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \ #禁用master模式
--disable-mfsmount #禁用用戶掛載
make && make install
3、復制配置文件并修改
cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vim mfschunkserver.cfg
MASTER_HOST = 192.168.60.141 #找到MASTER_HOST模板,IP地址指向master
vim mfshdd.cfg
#etc.
/data #設置共享目錄data,需要創建
4、創建共享目錄,更改數組屬主
mkdir /data
chown -R mfs.mfs /data/
5、優化、啟動服務查看端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/ #將mfs的命令放到系統中識別
mfschunkserver start #啟動服務
[root@localhost mfs]# netstat -ntap | grep mfs #看下狀態有沒有起來
tcp 0 0 0.0.0.0:9422 0.0.0.0:* LISTEN 42714/mfschunkserve
tcp 0 0 192.168.60.144:41774 192.168.60.141:9420 ESTABLISHED 42714/mfschunkserve
兩臺節點服務器的配置相同,重復操作即可。
四、搭建客戶端
1、解壓、安裝環境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
tar zxf fuse-2.9.2.tar.gz -C /opt/
yum install gcc gcc-c++ zlib-devel -y
2、安裝配置fuse
cd /opt/fuse-2.9.2/
./configuer #編譯fuse
make & make install
sed -i '$a export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' /etc/profile
source /etc/profile
cd /opt/moosefs-3.0.100/ #編譯mfs
useradd mfs -s /sbin/nologin
./configure --prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmater \ #禁用master
--disable-mfschunkserver \ #禁用節點
--enable-mfsmount #開啟用戶掛載
make && make install
3、掛載
mkdir /opt/mfs #創建掛載目錄
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.60.141 #掛載
df -h #查看掛載狀態
192.168.60.141:9421 33G 0 33G 0% /opt/mfs
4、客戶端一些簡單操作
sed -i '$a export PATH=/usr/local/mfs/bin:$PATH' /etc/profile #mfs優化
source /etc/profile #刷新環境變量
cd /opt/mfs
echo "this is test" > test.txt
mfsgetgoal -r /opt/mfs #mfsgetgoal命令用來查詢文件被復制的分數
mfssetgoal -r 3 /opt/mfs #mfssetgoal命令用來設置文件被復制的份數
五、MFS監控
在主服務器上開啟監控
[root@localhost mfs]# /usr/local/mfs/sbin/mfscgiserv
lockfile created and locked
starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs/share/mfscgi)
http://192.168.60.141:9425 #用它給你的端口進行訪問
六、yum安裝MFS擴展
MFS也可以用yum進行安裝,需要配置yum源
https://moosefs.com/download/ 官網各個系統的介紹,這里我介紹一下centos的安裝
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倉庫
master服務器yum安裝操作:
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
chunkserver服務器yum安裝的操作:
yum install moosefs-chunkserver
MetaLogger Server服務器yum安裝的操作:
yum install moosefs-metalogger
client端yum安裝的操作:
yum install moosefs-client
修改配置文件的操作和手工編譯的操作相同
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。