MFS分布式存儲(chǔ)服務(wù)
10多年的祿勸網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整祿勸建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“祿勸網(wǎng)站設(shè)計(jì)”,“祿勸網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
MFS的作用:
MFS分布式存儲(chǔ)的目的是為了解決在NFS的短板,多臺(tái)服務(wù)器通過(guò)NFS的方式掛載共享
一個(gè)服務(wù)器的存儲(chǔ)空間,使得NFS服務(wù)器不堪重負(fù),經(jīng)常出現(xiàn)超時(shí)的現(xiàn)象,而且NFS存在單點(diǎn)故障,
盡管可以使用rsync同步數(shù)據(jù)到另一臺(tái)服務(wù)器上做備份,但對(duì)提高系統(tǒng)性能并無(wú)幫助。因此解決方案
采取MFS分布式文件系統(tǒng),服務(wù)器之間的數(shù)據(jù)訪(fǎng)問(wèn)不再是一對(duì)多的關(guān)系,而是多對(duì)多的關(guān)系。
什么是分布式存儲(chǔ):
分布式原理:通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)和節(jié)點(diǎn)相連,簡(jiǎn)單的說(shuō)就是把一些分散的共享文件夾集合到一個(gè)虛擬文
件夾內(nèi)。對(duì)于用戶(hù)來(lái)說(shuō),訪(fǎng)問(wèn)這些共享文件夾只是打開(kāi)了一個(gè)虛擬文件夾,用戶(hù)感受不到這些共享文件夾是分
布于各個(gè)計(jì)算機(jī)上的。分布式文件系統(tǒng)的好處是集中訪(fǎng)問(wèn),簡(jiǎn)化操作,數(shù)據(jù)容災(zāi),以及提高文件的存取性能。
MFS原理:
1)MFS文件系統(tǒng)的組成。
● 元數(shù)據(jù)服務(wù)器(master):在整個(gè)體系中負(fù)責(zé)管理文件系統(tǒng),維護(hù)元數(shù)據(jù)。
● 元數(shù)據(jù)日志服務(wù)器(metaLogger):當(dāng)MAster服務(wù)器數(shù)據(jù)丟失或者損壞是,可以從日志服務(wù)器中取得文件,進(jìn)行恢復(fù)。
● 數(shù)據(jù)存儲(chǔ)服務(wù)器(chunkserver):真正存儲(chǔ)數(shù)據(jù)的服務(wù)器。存儲(chǔ)文件時(shí)會(huì)把文件分塊保存。
● 客戶(hù)端:可以像掛載MFS文件系統(tǒng)一樣,其操作相同。
2)MFS讀取數(shù)據(jù)的處理過(guò)程。
● 客戶(hù)端向元數(shù)據(jù)服務(wù)器發(fā)出請(qǐng)求。
● 元數(shù)據(jù)服務(wù)器把所需數(shù)據(jù)存放位置告知客戶(hù)端。
●客戶(hù)端向已知Chunk server請(qǐng)求發(fā)送數(shù)據(jù)。
●Chunk Server向客戶(hù)端發(fā)送數(shù)據(jù)。
3)MFS寫(xiě)入數(shù)據(jù)的出來(lái)過(guò)程
● 客戶(hù)端向元數(shù)據(jù)服務(wù)器發(fā)送寫(xiě)入請(qǐng)求
● 元數(shù)據(jù)服務(wù)器與Chunk Server進(jìn)行交互,會(huì)在Chunk Server上創(chuàng)建新分塊Chunks并告知元服務(wù)器。
● 元數(shù)據(jù)服務(wù)器告知客戶(hù)端,可以在哪個(gè)Chunk Server的哪個(gè)分塊Chunks上寫(xiě)入數(shù)據(jù)。
● 客戶(hù)端指定Chunk Server寫(xiě)入數(shù)據(jù)。
● 該Chunk Server與其他Chunk Server進(jìn)行數(shù)據(jù)同步,同步成功告知客戶(hù)端寫(xiě)入成功。
● 客戶(hù)端告知元數(shù)據(jù)服務(wù)器本次寫(xiě)入完畢。
實(shí)驗(yàn)拓?fù)淙缦拢?/strong>
本實(shí)驗(yàn)使用5臺(tái)服務(wù)器模擬搭建MFS文件系統(tǒng)
實(shí)驗(yàn)環(huán)境:
角色類(lèi)型 | 操作系統(tǒng) | 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服務(wù)器
1、解壓、安裝環(huán)境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創(chuàng)建用戶(hù)、編譯
cd /opt/moosefs-3.0.100/
useradd -s /sbin/nologin mfs #創(chuàng)建mfs管理用戶(hù)
./configure --prefix=/usr/local/mfs \ #編譯
--with-default-user=mfs \ #指定管理用戶(hù)
--with-default-group=mfs \ #指定管理組
--disable-mfschunkserver \ #禁用節(jié)點(diǎn)
--disable-mfsmount #禁用客戶(hù)端掛載
make && make install
3、復(fù)制配置文件
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、優(yōu)化、啟動(dòng)服務(wù)檢測(cè)端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin #將mfs的命令放到系統(tǒng)中識(shí)別
mfsmaster start #啟動(dòng)mfsmaster
[root@localhost mfs]# netstat -ntap | grep mfs #看三個(gè)監(jiān)聽(tīng)端口
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服務(wù)器
1、解壓縮、安裝環(huán)境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創(chuàng)建用戶(hù)、編譯
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 \ #禁用節(jié)點(diǎn)
--disable-mfsmount #禁用客戶(hù)端掛載
make && make install
3、復(fù)制配置文件并修改
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、優(yōu)化、啟動(dòng)服務(wù)檢測(cè)端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/ #將mfs的命令放到系統(tǒng)中識(shí)別
mfsmetalogger start #啟動(dòng)服務(wù)
[root@localhost mfs]# netstat -ntap | grep mfs #看下?tīng)顟B(tài)有沒(méi)有起來(lái)
tcp 0 1 192.168.60.136:55894 220.250.64.225:9419 SYN_SENT 42707/mfsmetalogger
三、搭建Chunk節(jié)點(diǎn)服務(wù)器
1、解壓、安裝環(huán)境包
tar zxf moosefs-3.0.100-1.tar.gz -C /opt
yum install gcc gcc-c++ zlib-devel -y
2、創(chuàng)建用戶(hù),編譯
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 #禁用用戶(hù)掛載
make && make install
3、復(fù)制配置文件并修改
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 #設(shè)置共享目錄data,需要?jiǎng)?chuàng)建
4、創(chuàng)建共享目錄,更改數(shù)組屬主
mkdir /data
chown -R mfs.mfs /data/
5、優(yōu)化、啟動(dòng)服務(wù)查看端口
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/ #將mfs的命令放到系統(tǒng)中識(shí)別
mfschunkserver start #啟動(dòng)服務(wù)
[root@localhost mfs]# netstat -ntap | grep mfs #看下?tīng)顟B(tài)有沒(méi)有起來(lái)
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
兩臺(tái)節(jié)點(diǎn)服務(wù)器的配置相同,重復(fù)操作即可。
四、搭建客戶(hù)端
1、解壓、安裝環(huán)境包
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 \ #禁用節(jié)點(diǎn)
--enable-mfsmount #開(kāi)啟用戶(hù)掛載
make && make install
3、掛載
mkdir /opt/mfs #創(chuàng)建掛載目錄
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.60.141 #掛載
df -h #查看掛載狀態(tài)
192.168.60.141:9421 33G 0 33G 0% /opt/mfs
4、客戶(hù)端一些簡(jiǎn)單操作
sed -i '$a export PATH=/usr/local/mfs/bin:$PATH' /etc/profile #mfs優(yōu)化
source /etc/profile #刷新環(huán)境變量
cd /opt/mfs
echo "this is test" > test.txt
mfsgetgoal -r /opt/mfs #mfsgetgoal命令用來(lái)查詢(xún)文件被復(fù)制的分?jǐn)?shù)
mfssetgoal -r 3 /opt/mfs #mfssetgoal命令用來(lái)設(shè)置文件被復(fù)制的份數(shù)
五、MFS監(jiān)控
在主服務(wù)器上開(kāi)啟監(jiān)控
[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 #用它給你的端口進(jìn)行訪(fǎng)問(wèn)
六、yum安裝MFS擴(kuò)展
MFS也可以用yum進(jìn)行安裝,需要配置yum源
https://moosefs.com/download/ 官網(wǎng)各個(gè)系統(tǒng)的介紹,這里我介紹一下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
以上兩句話(huà)是配置yum倉(cāng)庫(kù)
master服務(wù)器yum安裝操作:
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
chunkserver服務(wù)器yum安裝的操作:
yum install moosefs-chunkserver
MetaLogger Server服務(wù)器yum安裝的操作:
yum install moosefs-metalogger
client端yum安裝的操作:
yum install moosefs-client
修改配置文件的操作和手工編譯的操作相同