社交網站部署——MFS分布式文件系統
阿新 • • 發佈:2018-07-29
依賴包 分布式文件系統 webp 文件夾 第一個 systemctl 關閉防火墻 ++ 防火 案例概述
某公司的社交網站采用PHP語言開發,為了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺之上,前端為Nginx服務器,通過fastcgi協議訪問後端的PHP服務器。為了保證數據安全,要求搭建MySQL數據庫主從集群。
社交網站項目包含用戶的相冊功能,允許用戶上傳照片,上傳照片需要使用共享存儲來存放。針對共享存儲可用的開源方案有很多,如MFS、FastDFS 等。公司決定使用MFS分布式文件系統來實現,並將MFS掛載在PHP服務器的相關目錄下。
案例實施
根據公司的需求,實施過程大致分為以下步驟。
- 部署SVN服務器,為PHP程序員創建repo目錄的訪問賬戶,通知程序員可以導入代碼。
- 部署MySQL主從服務器,根據PHP程序員的要求創建數據庫與表。
- 部署Nginx服務器。部署PHP服務器。
- 部署MFS,將MFS文件系統掛載在前端PHP服務器的相關目錄下。
- 通知上線部署人員可以發布上線。
MFS部署並掛載
搭建 Master Server
1、安裝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
2、復制文件
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 #防斷裂
3、啟動 Master Server
/usr/local/mfs/sbin/mfsmaster start //開啟 /usr/local/mfs/sbin/mfsmaster -s //停止 netstat -antp | grep mfs systemctl stop firewalld.service setenforce 0 //關閉防火墻和安全功能
搭建 Metalogger Server
1、安裝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
2、復制文件
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
3、啟動 Metalogger Server
/usr/local/mfs/sbin/mfsmetalogger start //開啟
/usr/local/mfs/sbin/mfsmetalogger -s //停止
netstat -antp | grep mfs
systemctl stop firewalld.service
setenforce 0 //關閉防火墻和安全功能
搭建 Chunk Server
1、安裝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
2、復制文件
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
3、啟動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 //關閉防火墻和安全功能
客戶端配置
此處PHP服務器是客戶端角色,在PHP服務器上搭建
1、安裝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
2、設置環境變量
vim /etc/profile
#在末尾處插入
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile //加載立即生效
3、安裝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
4、掛載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分布式文件系統