1. Fastdfs HA原理
- Fastdfs引入Tracker以支持文件操作的负载均衡调度
- Fastdfs引入基于group分组的storage以支持类似raid10模式的高可靠高性能的存储
- Fastdfs引入fastdfs-nginx-module 可以重定向文件连接到文件上传时的源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误
2.集群规划
节点名称 |
节点角色 |
节点路径 |
Group |
Tracker1 |
Tracker |
/data/opt/fastdfs/tracker /data/opt/fastdfs/tracker/logs |
|
Tracker2 |
Tracker |
/data/opt/fastdfs/tracker /data/opt/fastdfs/tracker/logs |
|
Nginx主 |
Storage集群的Nginx代理 |
/data/opt/nginx /data/opt/nginx/log |
|
Nginx备 |
Storage集群的Nginx代理 |
/data/opt/nginx /data/opt/nginx/log |
|
Storage1+nginx (注:nginx需预编译fastdfs-nginx-module) |
Storage |
/data/opt/fastdfs/storage /data/opt/fastdfs/storage/logs /data/opt/fastdfs/nginx /data/opt/fastdfs/nginx /logs |
group1 |
Storage2+nginx (注:nginx需预编译fastdfs-nginx-module) |
Storage |
/data/opt/fastdfs/storage /data/opt/fastdfs/storage/logs /data/opt/fastdfs/nginx /data/opt/fastdfs/nginx /logs |
group1 |
Storage3+nginx (注:nginx需预编译fastdfs-nginx-module) |
Storage |
/data/opt/fastdfs/storage /data/opt/fastdfs/storage/logs /data/opt/fastdfs/nginx /data/opt/fastdfs/nginx /logs |
group2 |
Storage4+nginx (注:nginx需预编译fastdfs-nginx-module) |
Storage |
/data/opt/fastdfs/storage /data/opt/fastdfs/storage/logs /data/opt/fastdfs/nginx /data/opt/fastdfs/nginx /logs |
group2 |
3.软件版本
操作系统:CentOS Linux release 7.9.2009 (Core)
Fastdfs版本:6.0.6
Fastdfs-nginx-module版本:1.22
Libfastcommon版本:1.0.43
Nginx版本:1.16.0
Keepalived版本: 1.3.5
4.Fastdfs集群搭建
4.1.安装软件准备
a.编译fastdfs
访问https://github.com/happyfish100/fastdfs,下载fastdfs-6.06.zip
然后执行如下命令
mkdir –p /data/opt/fastdfs unzip fastdfs-6.06.zip cd /data/opt/fastdfs/fastdfs-6.06 ./make.sh ./make.sh install |
成功标识为如下二进制文件编译成功、/usr/lib64/libfdfsclient.so编译成功以及/etc/fdfs生成client.conf.sample、storage.conf.sample、storage_ids.conf.sample、tracker.conf.sample
b.编译libfastcommon
访问https://github.com/happyfish100/libfastcommon,下载libfastcommon-1.0.43.zip
然后执行如下命令
mkdir –p /data/opt/fastdfs/libfastcommon unzip libfastcommon-1.0.43.zip cd /data/opt/fastdfs/libfastcommon/libfastcommon-1.0.43 ./make.sh ./make.sh install |
成功标识:/usr/lib64/libfastcommon.so编译成功
c.编译fastdfs-nginx-module
访问https://github.com/happyfish100/fastdfs-nginx-module/releases/tag/V1.22,下载fastdfs-nginx-module-1.22.zip
然后执行如下命令
mkdir –p /data/opt/fastdfs/fastdfs-nginx-module unzip fastdfs-nginx-module-1.22.zip #二次编译nginx模块 ./configure --add-module=/data/opt/fastdfs/fastdfs-nginx-module/fastdfs-nginx-module-1.22/src # 追加之前编译的模块 make |
成功标识: 会在objs目录下会生成nginx文件
4.2.Tracker集群配置
注: 需在每个Tracker节点执行以下步骤
操作步骤如下
cd /etc/fdfs mv tracker.conf.sample tracker.conf mkdir -p /data/opt/fastdfs/tracker |
修改配置
# the base path to store data and log files base_path = /data/opt/fastdfs/tracker |