背景:在集群部署环境下,随着团队发展,出现瓶颈:
- 服务器磁盘有上限,不够用
- 出现单点故障
因此,创建一个分布式文件管理系统的新架构,希望有两个特点:
- 容量能够水平扩展
- 服务之间能够实现负载均衡
FastDFS是最快的分布式文件系统,主要用来进行文件管理。
其功能主要有:(1)文件存储(2)文件同步(3)文件访问(上传和下载等) 解决了大容量存储了负载均衡的问题。
FastDFS原理图:
FastDFS服务端有两个角色:跟踪器(Tracker)和存储节点(storage):
- 跟踪器主要做调度工作,在访问上起负载均衡的作用
- 存储节点主要工作:存储、同步和提供存取接口。
整体来说,FastDFS有两个主要特点:
- 高可靠性,无单点故障
- 高吞吐量,只要Group组足够多,数据流量是足够分散的。
搭建图片服务器
1.安装依赖环境
FastDFS由C语言开发,在linux命令行中输入如下指令:
yum -y install gcc-c++
yum -y install libevent
2.上传安装文件
在/usr/local下创建fastdfs包:mkdir fastdfs
使用Xftp将上述四个压缩文件上传到/usr/local/fastdfs目录下
3.安装libfastcommon
-
进入fastdfs目录下:
cd usr/local/fastdfs
-
解压libfastcommon的压缩包:
tar -zxf libfastcommonV1.0.7.tar.gz
-
进入解压后libfastcommon的子目录:
cd libfastcommon-1.0.7
-
ll
查看子目录
-
运行命令进行编译:
./make.sh
-
执行安装指令:
./make.sh install
注意:libfasstcommon安装好后会自动把库文件拷贝至usr/lib64目录下,所以我们将其拷贝到usr/lib的libfastcommon的引用目录中
- 进入lib64目录:
cd /usr/lib64
- 将libfastcommon.so 文件拷贝至/usr/lib下:
cp libfastcommon.so /usr/lib
4.安装FastDFS_v5.05(tracker+storage)
-
进入fastdfs目录:
cd /usr/local/fastdfs
-
解压FastDFS_v5.0.5压缩包:
tar -zxf FastDFS_v5.0.5.tar.gz
-
进入FastDFS目录下:
cd FastDFS
-
运行命令进行编译:
./make.sh
-
执行安装指令:
./make.sh install
-
安装成功后,将conf下文件拷贝到/etc/fdfs文件下,目的是为Nginx做准备:1.
cd /usr/local/fastdfs/FastDFS/conf/
2.cp * /etc/fdfs
a.安装tracker服务:
配置tracker服务,修改/etc/fdfs/tracker.conf文件:cd tracker
打开跟踪器配置文件:vim /etc/fdfs/tracker.conf
找到base_path,并将其后缀地址改为/usr/local/fastdfs/FastDFS/tracker
启动tracker:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
b.安装storage:
-
修改storage存储文件:
cd storage
-
输入
pwd
,复制地址 -
修改storage配置文件:
vim /etc/fdfs/storage.conf
-
base_path=/usr/local/fastdfs/FastDFS/storage
-
store_path0=/usr/local/fastdfs/FastDFS/storage
-
修改跟踪器地址(ip地址+tracker端口号):
tracker_server=192.168.157.129:22122
启动storage服务:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
5.配置客户端
13. 拷贝libfdfsclient.so至 /usr/lib :cp libfdfsclient.so /usr/lib
14. 修改配置文件/etc/fdfs/client.conf:
15. 修改base_path地址和交互的tracker地址(IP+端口号):
6.安装Nginx及Nginx依赖
16. yum命令安装Nginx依赖环境:
(1)PCRE:
(2)zlib:
(3)openssl:
17. 解压Nginx插件压缩包:
18. 配置config文件,将其中local去掉:
输入:
19. 将/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下,并编辑:
20. 解压Nginx:tar -zxf nginx-1.8.1.tar.gz
21. 对Nginx重新config:./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src
其中=后面地址要根据自己Nginx插件地址填写,非固定。
22.执行编译和安装:(1)make
(2)make install
- 进入Nginx目录下,并对conf文件进行配置:
加入如下代码,表示当遇到/group1/M00/ 地址请求时,将处理交给nginx插件去处理:
启动Nginx服务:在nginx的sbin目录下执行:./nginx
查看Nginx工作状态:
主进程master和工作进程worker都已启动,Nginx启动成功!
测试Nginx:在浏览器中输入虚拟机ip地址,出现Nginx默认页面:
测试FastDFS能否运行:
- 在根目录下创建一个html页面:随便写一个Hi,FastDFS!
- 将该文件上传至服务器:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/hi.html
- 复制最后一行的文件地址file url在浏览器中访问:
访问成功:
注意:本虚拟机防火墙未开,因此没有配置默认80端口,若无法访问,请配置下防火墙80端口号。