网络云盘项目——FastDFS集群部署
Posted 董哥的黑板报
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络云盘项目——FastDFS集群部署相关的知识,希望对你有一定的参考价值。
一、本文目的
- 本项目分为6篇博客文章完成:
- 1.项目总体介绍:https://blog.csdn.net/qq_41453285/article/details/107871393。
- 2.Redis部署、MySQL部署、MySQL表设计:https://blog.csdn.net/qq_41453285/article/details/107871620。
- 3.FastDFS集群部署:本文介绍的。
- 4.Nginx配置:https://blog.csdn.net/qq_41453285/article/details/107889933。
- 5.服务端/客户端部署、演示运行效果:https://blog.csdn.net/qq_41453285/article/details/107891262。
- 6.HTTP接口介绍、功能介绍、服务端/客户端代码解析:https://blog.csdn.net/qq_41453285/article/details/107893049。
- 因为我们的nginx会将接收到的文件都保存到FastDFS中,因此此处先将FastDFS集群搭建好。
- 另外,我们的文件是存储在FastDFS中的,mysql总存储的是文件的信息。
- 另外,我们需要通过Nginx访问FastDFS,这一步骤请参阅:https://blog.csdn.net/qq_41453285/article/details/107889933。
源码下载方式
- 方式1:公众号《董哥的黑板报》回复【3578】获取百度云盘链接。
- 方式2:Github开源链接GitHub - dongyusheng/cloud-disk: 网络云盘。
二、安装fastdfs
- 可以通过下载FastDFS的源码包来编译安装FastDFS。
- FastDFS的安装就不详细介绍了,可以参阅我之前的链接:fastdfs的安装与配置(libfastcommon、fastdfs)_董哥的黑板报的博客-CSDN博客_libfastcommon安装。
三、安装libfastcommon库
- 我们的服务端使用C语言编写,其会在代码中操作FastDFS数据库,对文件进行增加和删除。
- libfastcommon是C语言用来操作FastDFS的程序库,因此需要安装这个库。
- 安装就不详细介绍了,可以参阅:fastdfs的安装与配置(libfastcommon、fastdfs)_董哥的黑板报的博客-CSDN博客_libfastcommon安装。
四、FastDFS集群搭建
- 此处我们就不介绍FastDFS的各种原理了,直接进行集群部署了。
第一步(复制配置文件)
- 安装好了fastdfs之后,fastdfs的默认配置文件存放在/etc/fdfs/目录下。我们把/etc/fdfs/目录下的tracker.conf.sample文件和storage.conf.sample、client.conf.sample文件分别复制一份,名为tracker.conf、storage.conf、client.conf,还是放在/etc/fdfs/目录下。
ls /etc/fdfs sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf ls /etc/fdfs
第二步(配置启动tracker端)
- 在家目录下创建一个fastdfs目录,用来存放集群的所有内容(包括tracker和client的,文本下面都会用到这个目录);然后在fastdfs目录下创建一个tracker目录,用来存放与tracker端的信息。
mkdir ~/fastdfs mkdir -p ~/fastdfs/tracker ls ~/fastdfs
- 修改/etc/fdfs/目录下的trakcer.conf配置文件,用来启动tracker端。
sudo vim /etc/fdfs/tracker.conf
- 修改的内容有:
- base_path:用来存储tracker节点信息和日志的目录(此处设置为我们上面创建的~/fastdfs/tracker目录,注意不能用~号,所以要使用全路径)。
- 其他的参数不需要变动。
- 启动tracker服务端,并查看是否启动成功:
sudo fdfs_trackerd /etc/fdfs/tracker.conf netstat -aptn | grep 22122
- 可以查看tracker的相关的文件:
- data:存储tracker节点的相关数据。
- log:存储tracker节点的日志。
ls ~/fastdfs/tracker/ ls ~/fastdfs/tracker/data ls ~/fastdfs/tracker/logs
第三步(配置启动storage端)
- 在fastdfs目录下创建一个storage目录,用来存放与storage端的信息;然后在storage目录下再创建一个store_data目录用来存放storage节点实际的文件数据(store_path0选项指定的地址)。
mkdir -p ~/fastdfs/storage mkdir -p ~/fastdfs/storage/store_data ls ~/fastdfs
- 修改/etc/fdfs/目录下的storage.conf配置文件,用来启动tracker端。
sudo vim /etc/fdfs/storage.conf
- 修改的内容有:
- base_path:用来存储storage节点信息和日志的目录(此处设置为我们上面创建的~/fastdfs/storage目录,注意不能用~号,所以要使用全路径)。
- store_path0:真正存储文件数据的,设置为上面我们设置的目录;其会在该目录下创建data目录用来存储文件数据。
- tracker_server:要连接的tracker服务地址,此处填写我们上面创建的tracker服务。
- 启动storage节点,并查看是否启动成功:
sudo fdfs_storaged /etc/fdfs/storage.conf # 过10秒左右再查看(因为storage需要创建很多目录) netstat -aptn | grep 23000
- 可以查看storage节点的目录结构:
- data:存储storage节点的相关数据。
- log:存储storage节点的日志。
- store_data:storage实际存放数据文件的地方。
ls ~/fastdfs/storage/
- 输入下面的命令查看tracker与storage是否相连成功:
netstat -aptn | grep 22122
第四步(修改客户端配置文件)
- 在fastdfs目录下创建一个client目录,用来存放与client端的信息(此处的client就是我们的FastCGI后台服务进程)。
mkdir -p ~/fastdfs/client ls ~/fastdfs
- 修改/etc/fdfs/目录下的client.conf文件。
sudo vim /etc/fdfs/client.conf
- 修改的内容有:
- base_path:存储客户端相关文件,填上面我们建立的目录。
- tracker_server:要连接的tracker_server服务端地址。
- 检测集群状态,可以看到集群状态正常,当前有一个storage节点。
fdfs_monitor /etc/fdfs/client.conf
- 此处我们不需要启动任何客户端,因为在我们的服务端代码中会使用到这个配置文件,FastCGI在接收到Nginx转发过来的客户端上传文件请求时,会自己通过C语言来调用fdfs_upload_file工具来上传文件(在服务端代码讲解时会详细介绍)。
以上是关于网络云盘项目——FastDFS集群部署的主要内容,如果未能解决你的问题,请参考以下文章
网络云盘项目——Nginx配置(配置Nginx访问FastCGIFastDFS)