mogilefs實現企業級分佈式存儲

實驗環境:centos7系統服務器4臺、 一臺作爲mysql, 三臺作爲存儲節點, 配置好yum源、 防火牆關閉、 各節點時鐘服務同步、 各節點之間可以通過主機名互相通信,我的就是四臺做的,五臺分開也行。
實驗原理:
每次文件的上傳和讀取,都經過前端TrackerServer服務器,trackerServer服務器受到client端的請求,查詢數據庫,返回一個上傳或者是讀取的可用的後端StorageServer的地址,然後由client端直接操作後端StorageServer服務器。upload操作返回就是成功或者失敗的結果,read操作就是返回對應的查詢數據。
實驗架構:
mogilefs實現企業級分佈式存儲
實驗步驟:
第一步:下載安裝mogilefs的包,每臺主機都要做
MogileFS-Server-2.46-2.el7.centos.noarch.rpm
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm
MogileFS-Utils-2.19-1.el7.centos.noarch.rpm
第二步:安裝同步複製的包,需要自己下載源碼包然後降級編譯包,每臺主機都要做
1、準備Perl環境
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes
2、下載包編譯安裝
wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
tar -xvf Sys-Syscall-0.23.tar.gz
cd Sys-Syscall-0.23/
perl Makefile.PL
make
make install
3、重啓mogilefs和mogstore,每臺機器都需要重啓。
以上第二步:可以留在最後配置完成後,需要同步文件存儲的時候做。
第三步:配置數據庫主從架構
詳情見數據庫主從配置
第四步:mogilefs服務初始化
1、數據庫授權
GRANT ALL PRIVILEGES ON . TO 'mogile' @'127.0.0.1' IDENTIFIED BY 'mogile' WITH GRANT OPTION;
2、設定數據庫:
mogdbsetup --dbpass=mogpass 其他的配置默認都設好了,而且主上設置的信息也會同步到從上。
3、修改tracker的配置文件配置文件:
/etc/mogilefs/mogilefsd.conf
master:
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = mogile
db_pass = mogile
listen = 172.17.254.124:7001
slave(storage1):
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124 主上的數據庫
db_user = mogile
db_pass = mogile
IP:PORT to listen on for mogilefs client requests
listen = 172.17.254.125:7001
Storage2:
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124
db_user = mogile
db_pass = mogile
listen = 172.17.254.130:7001
Storage3:
db_dsn = DBI:mysql:mogilefs:host=172.17.254.124
db_user = mogile
db_pass = mogile
listen = 172.17.254.181:7001
4、啓動服務 (tracker 服務爲 mogilefsd ) (storage服務爲mogstored)
/etc/init.d/mogilefsd start
第五步:修改storage的配置文件,每個節點都要作如下操作
/etc/mogilefs/mogstored.conf
docroot = /data/mogdata
mkdir /data/mogdata -p 加上數據的存儲目錄chown mogilefs.mogilefs mogdata/ -R 修改權限
/etc/init.d/mogstored start 啓動storage
第六步:在tracker上加上host節點,可以加上一個客戶端的配置文件,就不用一直寫tracker了。
mogadm --trackers=172.17.254.124:7001 host add node1 --ip=172.17.254.125 --port=7500 --status=alive
mogadm host add node2 --ip=172.17.254.125 --port=7500 --status=alive
mogadm host add node3 --ip=172.17.254.181 --port=7500 --status=alive
mogadm check 檢測節點的狀態
第七步:建一個目錄(並且需要mount一個硬盤給這個目錄)給這個"設備" 使用,我們這的例子是使用
dev1在主機中建一個目錄,建目錄使用dev+ID這種格式,記的所有系統中ID不能重複.也必須和配置文件中的路徑一樣
如下:
Node1:
mkdir -p /data/mogdata/dev1
chown mogilefs.mogilefs . -R
Node2:
mkdir -p /data/mogdata/dev2
chown mogilefs.mogilefs . -R
Node3:
mkdir -p /data/mogdata/dev3
chown mogilefs.mogilefs . -R
記住:這裏面也需要更改權限
第八步:一定要注意, 給相對應用的塊設備 mount 到這個點, 軟鏈也行. 不然寫文件都會寫到系統硬上,其它的硬盤都是空的。
給"設備"加入”存儲的節點“當中,相當於爲每個設備加入 MogileFS 的存儲系統,這個節點容易加錯。
mogadm device add node1 1
mogadm device add node2 2
mogadm device add node3 3
mogadm device list
第九步:當上面的準備好了,MogileFS 是運行中時,接下來我們要建一個我們自己的'名字空間'和加入文
件到存儲當中。
我們使用mogadm的工具來能創建一個"域"和"類".也可以使用這個來增加文件到"類"中。
mogadm domain add img
mogadm domain list
mogadm class add img m26 --mindevcount=4 在img中建立一個類。
mogadm domain list
第十步:上傳文件,然後檢測一下是否可用。
mogupload --domain=img --key=test --file=1.jpg
mogfileinfo --domain=img --key=test
mogilefs實現企業級分佈式存儲
第十一步:降級操作,實現數據同步複製,每臺機器都需要執行下面的操作
首先安裝Perl的環境
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes
然後需要自己下載組件安裝:
wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
tar -xvf Sys-Syscall-0.23.tar.gz
cd Sys-Syscall-0.23/
perl Makefile.PL
make
make install
最後重啓mogilefsd 和mogstored ,每臺機器都要重啓
第十二步:測試界面
mogilefs實現企業級分佈式存儲
易錯點:不要把節點和設備加錯,不然無法數據複製。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章