搭建MFS分布式文件管理系統
阿新 • • 發佈:2018-07-29
c-c++ 分布 epo enable 依賴 條目 proc fsmo 主配置文件 MFS原理
客戶機 client :掛載使用 掛載進程 mfs 服務器共享出的存儲並使用。
-
MFS 是一個具有容錯性的網絡分布式文件系統。它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
- MFS的組成
管理服務器 Master: 負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝
元數據日誌服務器 MetaLogger: 負責備份 master 服務器的變化日誌文件,文件類型為 changelog_ml.*.mfs,以便於在 master 出問題的時候。從日誌服務器取得文件,進行恢復
數據存儲服務器 chunk servers: 聽從管理服務器調度,提供存儲空間,並為客戶提供數據傳輸.。 真正存儲用戶數據的服務器。存儲文件時,首先把文件分成塊,然後這些塊在數據服務器 之間復制。 數據服務器可以是多個,並且數量越多,可使用的“磁盤空間”越大,可靠性也越高。
名稱 | 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 //啟動日誌服務器
- 搭建Master server 我使用的手工編譯安裝所有要安裝一些環境
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 server
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 # 開啟服務
搭建兩臺chunkserver
兩臺都是一樣的配置
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 \\停止
客戶端配置
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
搭建MFS分布式文件管理系統