社交网站部署——MFS分布式文件系统
2018-07-29 15:48
369 查看
案例概述
某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放。针对共享存储可用的开源方案有很多,如MFS、FastDFS 等。公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录下。
![](http://i2.51cto.com/images/blog/201807/29/e2c88155b1df0a954e4817450aeef2be.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
案例实施
根据公司的需求,实施过程大致分为以下步骤。部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码。
部署MySQL主从服务器,根据PHP程序员的要求创建数据库与表。
部署Nginx服务器。部署PHP服务器。
部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下。
通知上线部署人员可以发布上线。
MFS部署并挂载
搭建 Master Server1、安装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 //关闭防火墙和安全功能
![](http://i2.51cto.com/images/blog/201807/29/61643975bc9d97feb8e8df7fe2ebf69e.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
搭建 Metalogger Server
1、安装MFSyum 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 //关闭防火墙和安全功能
![](http://i2.51cto.com/images/blog/201807/29/d64db189955fcb00e591ed6407fa82de.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
搭建 Chunk Server
1、安装MFSyum 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
![](http://i2.51cto.com/images/blog/201807/29/40e18a8812c630d3d05a0da95570903b.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
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 //关闭防火墙和安全功能
![](http://i2.51cto.com/images/blog/201807/29/d8b81a635f70ff0f6844234ade974ea5.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
客户端配置
此处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
![](http://i2.51cto.com/images/blog/201807/29/27eb007f629af95f5aecd2ab4e453603.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相关文章推荐
- 部署社交网站-SVN 与 LNMP架构
- 部署社交网站
- 部署社交网站- MYSQL主从 与 MFS 文件系统
- 部署社交网站(步骤超详细)
- 部署社交网站全过程(Nginx+PHP+Mysql+MFS+SVN)
- 社交网站部署——Nginx服务器+PHP服务器搭建+MySQL主从集群
- 社交网站部署——SVN服务器搭建并发布上线
- 社交网站部署——案例扩展
- 用SVN、LNMP和MySQL三种环境 部署一个社交网站
- 部署社交网站
- 阿里云ECS服务器网站部署
- 未来社交网站:15秒内让你闻名全球 虚拟现实与社交网络融合
- ansible自动部署网站
- 利用CODING.NET免费部署搭建ZBLOG PHP网站
- ASP.NET 网站部署 Part.3(使用 FTP 部署)
- “辛勤经营”社交网站 friendiligence
- 社交网站分享链接流程以及注意事项
- 家谱社交网站MyHeritage开放家庭图谱API
- iis 部署网站常见问题
- 社交网站够多了 市场已趋饱和