文章目录
一、FastDFS是什么
-
开源地址:https://github.com/happyfish100
-
FastDFS是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等服务。
-
FastDFS作为一款轻量级分布式文件系统,版本V6.01代码量6.3万行。FastDFS用C语言实现,支持Linux、FreeBSD、MacOS等类UNIX系统。FastDFS类似google FS,属于应用级文件系统,不是通用的文件系统,只能通过专有API访问,目前提供了C客户端和Java SDK,以及PHP扩展SDK。
-
FastDFS为互联网应用量身定做,解决大容量文件存储问题,实现高性能和高扩展性。FastDFS可以看做是基于文件的key value存储系统,key为文件ID,value为文件本身,因此称作分布式文件存储服务更为合适。
二、准备工作:安装编译环境
yum install make cmake gcc gcc-c++ -y
三、准备工作:安装FastDFS的依赖库之 libfastcommon
github开源地址:https://github.com/happyfish100/libfastcommon
1、自行使用git下载到本地
git clone https://github.com/happyfish100/libfastcommon.git
如果您对Git使用不是很熟悉请参考在命令行中使用Git管理Github代码,或者学习Git专栏。
2、进行libfastcommon 安装
cd libfastcommon/
./make.sh
./make .sh install
3、检查libfastcommon是否安装成功
-
安装完成后会在/usr/lib64 、 /usr/lib 目录生成libfastcommon.so库文件。
-
在/usr/include/fastcommon/目录下生成头文件。
- 如果老版本可能在相应目录找不到libfastcommon.so,则您可以根据情况创建软件连接,类似如下名称:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
四、准备工作:安装FastDFS的依赖之 libserverframe
- 在新版中需要,具体那个版本开始的我没有研究。如果不安装这个依赖直接安装FastDFS会提示错误“…/common/fdfs_global.h:15:26: 致命错误:sf/sf_global.h:没有那个文件或目录”
github开源地址:https://github.com/happyfish100/libserverframe
1、自行使用git下载到本地
git clone https://github.com/happyfish100/libserverframe.git
如果您对Git使用不是很熟悉请参考在命令行中使用Git管理Github代码,或者学习Git专栏。
2、进行libserverframe安装
cd libserverframe/
./make.sh
./make .sh install
3、检查libserverframe是否安装成功
- 安装完成后会在/usr/lib64 、 /usr/lib 目录生成libserverframe.so库文件。在/usr/include/sf/目录下生成头文件。
- 如果老版本可能在相应目录找不到libserverframe.so,则您可以根据情况创建软件连接,类似如下名称:
ln -s /usr/lib64/libserverframe.so /usr/local/lib/libserverframe.so
五、正式安装:FastDFS安装
github开源地址:https://github.com/happyfish100/fastdfs
1、自行使用git下载到本地
git clone https://github.com/happyfish100/fastdfs.git
如果您对Git使用不是很熟悉请参考在命令行中使用Git管理Github代码,或者学习Git专栏。
2、进行FastDFS安装
cd fastdfs/
./make.sh
./make .sh install
3、检查FastDFS是否安装成功
- 安装完成后会在/usr/bin目录下生成FastDFS可执行文件。在/etc/fdfs/目录下生配置文件。
- 如果是老版本可能在配置文件后面有个 xxx.conf.sample,自行把.sample去取重新配置即可。
六、FastDFS tracker 跟踪服务器配置及运行
1、tracker 配置
-
vi /etc/fdfs/tracker.conf
port = 22122 base_path = /opt/fastdfs
-
服务端口
- port = 22122
-
存放tracker元数据信息的主目录
- base_path = /opt/fastdfs
2、tracker 启动
- 启动命令使用
systemctl status fdfs_trackerd
- 相当于执行了下面的命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
同时支持start、stop、restart、status,如下图
- 可以通过下以下命令查看启动日志(当然tracker的元数据目录/opt/fastdfs/要填您自己的)
vi /opt/fastdfs/logs/trackerd.log
3、tracker 开机启动
- 开机启动命令使用
systemctl enable fdfs_trackerd
4、使用FastDFS中的Monitor查看
- 查看各节点状态
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
七、FastDFS storage存储服务器配置及运行
1、storage配置
-
vi /etc/fdfs/tracker.conf
port = 23000 group_name = group1 base_path = /opt/fastdfs store_path_count = 1 store_path0 = /opt/fastdfs tracker_server = 192.168.209.122:22122 #store_path_count = 3 #store_path0 = /opt/fastdfs1 #store_path1 = /opt/fastdfs2 #store_path2 = /opt/fastdfs3
-
服务端口
- port = 23000
-
分组名。相同分组存放的相同的数据。作用是高可用、冗余、备份等。
- group_name = group1
-
存放storage元数据信息的主目录
- base_path = /opt/fastdfs
-
存放数据的主目录
-
store_path_count = 1 # 描述存放数据的主目录有几个
-
store_path0 = /opt/fastdfs # 存放数据的主目录
-
-
如果要配置多个数据主目录,则上面指定的主目录个数应与之对应,如下:
-
#store_path_count = 3
-
#store_path0 = /opt/fastdfs1
-
#store_path1 = /opt/fastdfs2
-
#store_path2 = /opt/fastdfs3
-
-
tracker地址配置
-
这里要指定第六步配置的tracker的服务器地址和端口
-
tracker_server = 192.168.209.122:22122
-
2、storage启动
-
启动命令使用
systemctl start fdfs_storaged
相当于执行了下面的命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
同时支持start、stop、restart、status,如下图
-
可以通过下以下命令查看启动日志(当然tracker的元数据目录/opt/fastdfs/要填您自己的)
cat /opt/fastdfs/logs/storaged.log
3、storage开机启动
- 开机启动命令使用
systemctl enable fdfs_storaged
4、使用FastDFS中的Monitor查看
- 查看各节点状态
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
八、FastDFS client配置及上传文件
1、client配置
-
vi /etc/fdfs/client.conf
base_path = /opt/fastdfs tracker_server = 192.168.209.122:22122
-
存放client元数据信息的主目录
- base_path = /opt/fastdfs
-
tracker地址配置
-
这里要指定第六步配置的tracker的服务器地址和端口
-
tracker_server = 192.168.209.122:22122
-
2、client 上传文件
- 上传命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt
- 执行成功后会返回文件上传的ID,后继可通过这个ID下载和删除文件,如:
group1/M00/00/00/wKgIPWUJLbeAWzOLAAAAfNAgLok172.txt
- 这个命令将test.txt上传到FastDFS系统上。
3、client 下载文件
- 下载命令
/usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgIPWUJLbeAWzOLAAAAfNAgLok172.txt download.txt
- 这个命令从FastDFS上下载文件到本地,保存download.txt。
4、client 删除文件
-
删除命令
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgIPWUJLbeAWzOLAAAAfNAgLok172.txt
-
这个命令将删除FastDFS系统上的group1/M00/00/00/wKgIPWUJLbeAWzOLAAAAfNAgLok172.txt文件。