社交網站部署——MFS分佈式文件系統

案例概述

某公司的社交網站採用PHP語言開發,爲了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺之上,前端爲Nginx服務器,經過fastcgi協議訪問後端的PHP服務器。爲了保證數據安全,要求搭建MySQL數據庫主從集羣。php

社交網站項目包含用戶的相冊功能,容許用戶上傳照片,上傳照片須要使用共享存儲來存放。針對共享存儲可用的開源方案有不少,如MFS、FastDFS 等。公司決定使用MFS分佈式文件系統來實現,並將MFS掛載在PHP服務器的相關目錄下。
社交網站部署——MFS分佈式文件系統html

案例實施

根據公司的需求,實施過程大體分爲如下步驟。前端

  • 部署SVN服務器,爲PHP程序員建立repo目錄的訪問帳戶,通知程序員能夠導入代碼。
  • 部署MySQL主從服務器,根據PHP程序員的要求建立數據庫與表。
  • 部署Nginx服務器。部署PHP服務器。
  • 部署MFS,將MFS文件系統掛載在前端PHP服務器的相關目錄下。
  • 通知上線部署人員能夠發佈上線。

MFS部署並掛載

搭建 Master Server
一、安裝MFS
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-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           # top架構感知

cd /usr/local/mfs/var/mfs/ 
cp metadata.mfs.empty metadata.mfs        #防斷裂
三、啓動 Master Server
/usr/local/mfs/sbin/mfsmaster start       //開啓
/usr/local/mfs/sbin/mfsmaster -s        //中止
netstat -antp | grep mfs

systemctl stop firewalld.service 
setenforce 0         //關閉防火牆和安全功能

社交網站部署——MFS分佈式文件系統

搭建 Metalogger Server

一、安裝MFS
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-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 mfsmetalogger.cfg.dist mfsmetalogger.cfg

vim mfsmetalogger.cfg
......
MASTER_HOST = 192.168.43.118         //IP指向master
三、啓動 Metalogger Server
/usr/local/mfs/sbin/mfsmetalogger start   //開啓
/usr/local/mfs/sbin/mfsmetalogger -s    //中止
netstat -antp | grep mfs

systemctl stop firewalld.service 
setenforce 0         //關閉防火牆和安全功能

社交網站部署——MFS分佈式文件系統

搭建 Chunk Server

一、安裝MFS
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.43.118         //IP指向master

vim mfshdd.cfg
......
/data            //添加一行/data,在這裏/data是一個給MFS的分區,生產環境最好使用獨立的分區或磁盤掛載到此目錄

mkdir /data        //建立文件夾
chown -R mfs:mfs /data        //屬主屬組都改成mfs

社交網站部署——MFS分佈式文件系統

三、啓動Chunk Server
/usr/local/mfs/sbin/mfschunkserver start   //開啓
/usr/local/mfs/sbin/mfschunkserver start -s    //中止
netstat -antp | grep mfs

systemctl stop firewalld.service 
setenforce 0         //關閉防火牆和安全功能

社交網站部署——MFS分佈式文件系統

客戶端配置

此處PHP服務器是客戶端角色,在PHP服務器上搭建c++

一、安裝fuse
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
二、設置環境變量
vim /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文件系統

將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.43.118        //掛載MFS

社交網站部署——MFS分佈式文件系統

相關文章
相關標籤/搜索