MFS 是一個具備容錯性的網絡分佈式文件系統。它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。php
管理服務器 Master: 負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝
元數據日誌服務器 MetaLogger: 負責備份 master 服務器的變化日誌文件,文件類型爲 changelog_ml.*.mfs,以便於在 master 出問題的時候。從日誌服務器取得文件,進行恢復
數據存儲服務器 chunk servers: 遵從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸.。 真正存儲用戶數據的服務器。存儲文件時,首先把文件分紅塊,而後這些塊在數據服務器 之間複製。 數據服務器能夠是多個,而且數量越多,可以使用的「磁盤空間」越大,可靠性也越高。
客戶機 client :掛載使用 掛載進程 mfs 服務器共享出的存儲並使用。html
名稱 | IP | 操做系統 | 須要環境 |
---|---|---|---|
Master servicer | centos7.3 | 192.168.100.21 | mfs |
Metalogger sevicer | centos7.3 | 192.168.100.22 | mfs |
chunk server1 | centos7.3 | 192.168.100.23 | mfs |
chunk server2 | centos7.3 | 192.168.100.24 | mfs |
client | centos7.3 | 192.168.100.25 | mfs fuse |
安裝方法一使用yum 在在線安裝前端
使用YUM安裝配置 添加鍵值: # 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 而後安裝適當的MooseFS組件 主服務器:Master # yum install -y moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli # systemctl start moosefs-master //啓動主服務 # ps -ef | grep mfs //查看端口 元數據日誌服務器 Metaloggers # yum install -y moosefs-metalogger # vim mfsmetalogger.cfg MASTER_HOST=192.168.200.129 # systemctl start moosefs-metalogger //啓動日誌服務器
yum install -y zlib-devel gcc gcc-c++ useradd mfs -s /sbin/nologin #添加管理用戶 ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount make && make install cd /usr/local/mfs/etc/mfs/ #配分 而且重命名系統識別的文件 cp mfsmaster.cfg.dist mfsmaster.cfg # 主配置文件 也能夠算是重命名 cp mfsexports.cfg.dist mfsexports.cfg #日誌文件 cp mfstopology.cfg.dist mfstopology.cfg # 放斷裂 cd /usr/local/mfs/var/mfs/ 配掛在目錄權限配置文件 cp metadata.mfs.empty metadata.mfs /usr/local/mfs/sbin/mfsmaster start //開啓 /usr/local/mfs/sbin/mfsmaster -s \\中止 主的就不用在配置了
搭建MetaLogger serverc++
useradd mfs -s /sbin/nologin ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfsmount make && make install cd /usr/local/mfs/etc/mfs/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg vi mfsmetalogger.cfg MASTER_HOST = 192.168.100.21 vi mfshdd.cfg /data #指明共享的文件 mkdir /data #建立共享目錄 chown -R mfs:mfs /data #給與權限 /usr/local/mfs/sbin/mfschunkserver start # 開啓服務
搭建兩臺chunkserverweb
兩臺都是同樣的配置 yum install -y zlib-devel gcc gcc-c++ useradd mfs -s /sbin/nologin -M //建立管理用戶 tar xzvf mfs-1.6.27-5.tar.gz -C /opt/ cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfsmount make && make install 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.10.154 //IP指向master vim mfshdd.cfg ...... /data //添加一行/data,在這裏/data是一個給MFS的分區,生產環境最好使用獨立的分區或磁盤掛載到此目錄 mkdir /data chown -R mfs:mfs /data /usr/local/mfs/sbin/mfschunkserver start //開啓 /usr/local/mfs/sbin/mfschunkserver start -s \\中止
客戶端配置vim
yum install -y zlib-devel gcc gcc-c++ tar xzvf fuse-2.9.2.tar.gz -C /opt //mfs客戶端依賴於fuse cd /opt/fuse-2.9.2 ./configure make && make install vi /etc/profile export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH source /etc/profile --安裝mfs客戶端---- useradd mfs -s /sbin/nologin -M tar xzvf mfs-1.6.27-5.tar.gz -C /opt/ cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --enable-mfsmount //注意此處開啓客戶端 make && make install 將MFS文件系統掛載在前端PHP服務器的/var/www/html/webphp/uploads/photos目錄下 --------------------------------------------------- mkdir -p /var/www/html/webphp/uploads/photos //建立掛載點 modprobe fuse //加載fuse模塊到內核 /usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.100.21 //掛載MFS ------------------------------------------- -----MASTER-server-----啓動監控程序-- /usr/local/mfs/sbin/mfscgiserv http://192.168.175.128:9425