moosefs搭建與應用

                                                      moosefs搭建與應用

MooseFS簡介:

     MooseFS是一個具備冗餘容錯功能的分佈式網絡文件系統,它將數據分別存放在多個物理服務器單獨磁盤或分區上,確保一份數據有多個備份副本。因此MooseFS是一中很好的分佈式存儲。接下來我們通過搭建moosefs,並瞭解的使用。

環境主機-centos7:搭建moosefs需要五臺主機

node1  172.25.0.29  mfsmaster    

node2  172.25.0.30  Metalogger

node3  172.25.0.31  check servers

node4  172.25.0.32  check servers

node5  172.25.0.33  掛載客戶端

一、mfsmaster的安裝:

node1上

1、下載3.0包

[root@node1 src]#yum install zlib-devel -y##下載環境包
[root@node1 src]# wget https://github.com/moosefs/moosefs/archive/v3.0.96.tar.gz

2、安裝master:

[root@node1 moosefs-3.0.96]# useradd mfs
[root@node1 src]# tar -xf v3.0.96.tar.gz 
[root@node1 src]# cd moosefs-3.0.96/
[root@node1 moosefs-3.0.96]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
[root@node1 src]#make && make install
[root@node1 moosefs-3.0.96]# ls /usr/local/mfs/
bin  etc  sbin  share  var

注:etc和var目錄裏面存放的是配置文件和MFS的數據結構信息,因此請及時做好備份,防止災難損毀。後面做了 Master Server雙機之後,就可以解決這個問題。

3、配置master

[root@node1 mfs]# pwd
/usr/local/mfs/etc/mfs
[root@node1 mfs]# ls
mfsexports.cfg.sample  mfsmaster.cfg.sample  mfsmetalogger.cfg.sample  mfstopology.cfg.sample

##要把需要的重命名成.cfg文件:

[root@node1 mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[root@node1 mfs]# cp mfsmaster.cfg.sample  mfsmaster.cfg

4、修改控制文件:

[root@node1 mfs]#vim mfsexports.cfg
*            /         rw,alldirs,mapall=mfs:mfs,password=xiaoluo
*            .          rw

注:##mfsexports.cfg 文件中,每一個條目就是一個配置規則,而每一個條目又分爲三個部分,其中第一部分是mfs客戶端的ip地址或地址範圍,第二部分是被掛載的目錄,第三個部分用來設置mfs客戶端可以擁有的訪問權限。

5、開啓元數據文件默認是empty文件

[root@node1 mfs]#cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs

6、啓動master:

[root@node1 mfs]# /usr/local/mfs/sbin/mfsmaster start 
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
exports file has been loaded
mfstopology configuration file (/usr/local/mfs/etc/mfstopology.cfg) not found - using defaults
loading metadata ...
metadata file has been loaded
no charts data file - initializing empty charts
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
mfsmaster daemon initialized properly

7、檢查進程是否啓動:

[root@node1 mfs]# ps -ef | grep mfs
mfs        8109      1  5 18:40 ?        00:00:02 /usr/local/mfs/sbin/mfsmaster start
root       8123   1307  0 18:41 pts/0    00:00:00 grep --color=auto mfs

8、查看端口:

[root@node1 mfs]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      8109/mfsmaster      
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      8109/mfsmaster      
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      8109/mfsmaster

 

二、安裝Metalogger Server:

前面已經介紹了,Metalogger Server 是 Master Server 的備份服務器。因此,Metalogger Server 的安裝步驟和 Master Server 的安裝步驟相同。並且,最好使用和 Master Server 配置一樣的服務器來做 Metalogger Server。這樣,一旦主服務器master宕機失效,我們只要導入備份信息changelogs到元數據文件,備份服務器可直接接替故障的master繼續提供服務。

1、從master把包copy過來:

[root@node1 mfs]# scp /usr/local/src/v3.0.96.tar.gz node2:/usr/local/src/
v3.0.96.tar.gz
[root@node2 moosefs-3.0.96]# tar zxvf v3.0.96.tar.gz 
[root@node2 moosefs-3.0.96]# useradd mfs
[root@node2 moosefs-3.0.96]# yum install zlib-devel -y
[root@node2 moosefs-3.0.96]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs  --disable-mfschunkserver --disable-mfsmount
[root@node2 moosefs-3.0.96]# make && make install

2、配置Metalogger Server:

[root@node2 moosefs-3.0.96]# cd /usr/local/mfs/etc/mfs/
[root@node2 mfs]# ls
mfsexports.cfg.sample  mfsmaster.cfg.sample  mfsmetalogger.cfg.sample  mfstopology.cfg.sample
[root@node2 mfs]#cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@node2 mfs]#vim mfsmetalogger.cfg
MASTER_HOST = 172.25.0.29

3、啓動Metalogger Server:

[root@node2 mfs]#/usr/local/mfs/sbin/mfsmetalogger start
open files limit has been set to: 4096
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly
[root@node2 mfs]# netstat -lantp|grep metalogger  
tcp        0      0 172.25.0.30:45620   172.25.0.29:9419    ESTABLISHED 1751/mfsmetalogger

4、查看一下生成的日誌文件:

[root@node2 mfs]# ls /usr/local/mfs/var/mfs/
changelog_ml_back.0.mfs  changelog_ml_back.1.mfs  metadata.mfs.empty  metadata_ml.mfs.back

三、安裝check servers:

在node3和node4上操作,我這裏在node3上演示:

1、從master把包copy過來:

[root@node1 mfs]# scp /usr/local/src/v3.0.96.tar.gz node3:/usr/local/src/
v3.0.96.tar.gz
[root@node3 ~]# useradd mfs
[root@node3 ~]# yum install zlib-devel -y
[root@node3 ~]# cd /usr/local/src/
[root@node3 src]# tar zxvf v3.0.96.tar.gz 
[root@node3 moosefs-3.0.96]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs  --disable-mfsmaster --disable-mfsmount   
[root@node3 moosefs-3.0.96]# make && make install

2、配置check server:

[root@node3 moosefs-3.0.96]# cd /usr/local/mfs/etc/mfs/
You have new mail in /var/spool/mail/root
[root@node3 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@node3 mfs]# vim mfschunkserver.cfg 
MASTER_HOST = 172.25.0.29

3、配置mfshdd.cfg主配置文件

   mfshdd.cfg該文件用來設置你將 Chunk Server 的哪個目錄共享出去給 Master Server進行管理。當然,雖然這裏填寫的是共享的目錄,但是這個目錄後面最好是一個單獨的分區。

[root@node3 mfs]# cp /usr/local/mfs/etc/mfs/mfshdd.cfg.sample /usr/local/mfs/etc/mfs/mfshdd.cfg
You have new mail in /var/spool/mail/root
[root@node3 mfs]# vim /usr/local/mfs/etc/mfs/mfshdd.cfg
/mfsdata

4、啓動check Server:

[root@node3 mfs]# mkdir /mfsdata            
[root@node3 mfs]# chown mfs:mfs /mfsdata/
You have new mail in /var/spool/mail/root
[root@node3 mfs]# /usr/local/mfs/sbin/mfschunkserver start
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
setting glibc malloc arena max to 4
setting glibc malloc arena test to 4
initializing mfschunkserver modules ...
hdd space manager: path to scan: /mfsdata/
hdd space manager: start background hdd scanning (searching for available chunks)
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly

###檢查監聽端口:

[root@node3 mfs]# netstat -lantp|grep 9420 
tcp        0      0 172.25.0.31:45904   172.25.0.29:9420    ESTABLISHED 9896/mfschunkserver

 

四、客戶端掛載文件安裝:

node5上

1、安裝FUSE:

[root@node5 mfs]# lsmod|grep fuse 
[root@node5 mfs]# yum install fuse fuse-devel  -y 
[root@node5 ~]# modprobe fuse 
[root@node5 ~]# lsmod |grep fuse 
fuse                   91874  0

2、安裝掛載客戶端

[root@node5 ~]# yum install zlib-devel -y
[root@node5 ~]# useradd mfs
[root@node5 src]# tar -zxvf v3.0.96.tar.gz 
[root@node5 src]# cd moosefs-3.0.96/
[root@node5 moosefs-3.0.96]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount 
[root@node5 moosefs-3.0.96]# make && make install


3、在客戶端上掛載文件系統,先創建掛載目錄:

[root@node5 moosefs-3.0.96]# mkdir /mfsdata
[root@node5 moosefs-3.0.96]# chown -R mfs:mfs /mfsdata/
[root@node5 moosefs-3.0.96]# /usr/local/mfs/bin/mfsmount /mfsdata -H 172.25.0.29 -p            
MFS Password:
mfsmaster accepted connection with parameters: read-write,restricted_ip,map_all ; root mapped to mfs:mfs ; users mapped to mfs:mfs
[root@node5 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   18G  1.9G   17G  11% /
devtmpfs             226M     0  226M   0% /dev
tmpfs                237M     0  237M   0% /dev/shm
tmpfs                237M  4.6M  232M   2% /run
tmpfs                237M     0  237M   0% /sys/fs/cgroup
/dev/sda1           1014M  139M  876M  14% /boot
tmpfs                 48M     0   48M   0% /run/user/0
172.25.0.29:9421     36G  4.2G   32G  12% /mfsdata

4、我們寫入本地文件測試一下:

[root@node5 moosefs-3.0.96]# cd /mfsdata/
[root@node5 mfsdata]# touch xiaozhang.txt
[root@node5 mfsdata]# echo "test" > xiaozhang.txt 
[root@node5 mfsdata]#cat  xiaozhang.txt
test

發現可以寫入成功。也證明我們的mfs已經搭建完成的。

總結:現在我們我可以發現,mfs的master只有一臺,很明顯得單點缺陷,因此爲了解決這個問題,我也查閱了很多資料,終於解決了這個單點的問題,詳細可以參考文章:https://blog.51cto.com/xiaozhagn/1977052












  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章