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只有一臺,很明顯得單點缺陷,因此為了解決這個問題,我也查閱了很多資料,終於解決了這個單點的問題,詳細可以參考文章:http://blog.51cto.com/xiaozhagn/1977052
moosefs搭建與應用