摘要
FastDFS使用一段时间你会发现存储空间不够了,新文件无法上传。这个时候需要加磁盘也就是需要加存储目录。
基于FastDFS文件服务器的特性,在做文件扩充容量时,可采取如下两种方案:
- 扩充group的存储空间,配置多个存储文件目录地址。
- 扩充存储节点,新加服务器配置多个storage。
group模式扩容是通过给group的机器添加硬盘的方式,实现某个group的扩容。fastdfs在一台服务器支持多个store_path
,每个store_path
指向一个存储路径。如:M00/00/06/wKgBe1xOehmATFFpAAAAAAAAAAA042.txt
中M00
表示使用store_path0
,如果没有配置store_path
,就使用base_path
的路径。添加了硬盘后,通过把新的store_path
指向新硬盘的挂载点,再修改配置文件,就能实现group的扩容。扩容后的地址如:M01/00/04/wKgBe1xOehmATFFpAAAAAAAAAAA042.txt
中M01
表示使用store_path1
。group模式扩容主要步骤如下
停止现有的tracker服务,storage服务。
1
2
| /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
|
1
| vi /etc/fdfs/tracker.conf
|
1
2
3
4
| store_path=2 ##将原来的0修改为2
# 上传文件选择路径的规则
# 0:轮询(默认)
# 2:负载均衡,选择可用空间最大的文件夹
|
1
| vi /etc/fdfs/storage.conf
|
1
2
| store_path_count=2 #将原来的1改为2
store_path1=/data/fastdfs/storage2 #新增store_path1
|
![https://img.bwcxtech.com/img/20200928155112.jpeg https://img.bwcxtech.com/img/20200928155112.jpeg]()
1
| vi /etc/fdfs/mod_fastdfs.conf
|
1
2
| store_path_count=2 #将原来的1改为2
store_path1=/data/storage2 #新增store_path1
|
![https://img.bwcxtech.com/img/20200928155143.jpeg https://img.bwcxtech.com/img/20200928155143.jpeg]()
查看状态
1
| /usr/bin/fdfs_monitor /etc/fdfs/client.conf
|
1
| vi /usr/local/nginx/conf/nginx.conf
|
在nginx的配置文件中添加新store_path的路径
![https://img.bwcxtech.com/img/20200928155207.jpeg https://img.bwcxtech.com/img/20200928155207.jpeg]()
1
| /usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt
|
![https://img.bwcxtech.com/img/20200928155705.png https://img.bwcxtech.com/img/20200928155705.png]()
成功上传到新的目录
复制一份storage.conf
并修改文件名storage1.conf
1
| cp /etc/fdfs/storage.conf /etc/fdfs/storage1.conf
|
修改组名
修改端口
![https://img.bwcxtech.com/img/20200928154545.png https://img.bwcxtech.com/img/20200928154545.png]()
修改日志文件目录
1
| base_path=/data/fastdfs/storage2
|
修改资源保存路径
1
| store_path0=/data/fastdfs/storage2
|
1
| vi /etc/fdfs/mod_fastdfs.conf
|
修改组名,多个用/
区分开
1
| group_name=group1/group2
|
设置组个数
设置每一组信息:
1
2
3
4
5
6
7
8
9
10
| [group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage
[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/data/fastdfs/storage2
|
等以此类推
1
| /usr/bin/fdfs_storaged /etc/fdfs/storage1.conf
|
nginx日志报错ERROR - file: ../common/fdfs_global.c, line: 52, the format of filename
解决办法:
1
| vi /etc/fdfs/mod_fastdfs.conf
|
将url_have_group_name=false
改为url_have_group_name=true
1
2
3
4
5
6
7
8
9
| /usr/bin/fdfs_monitor /etc/fdfs/client.conf
FDFS_STORAGE_STATUS:INIT :初始化,尚未得到同步已有数据的源服务器
FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有数据的源服务器
FDFS_STORAGE_STATUS:SYNCING :同步中
FDFS_STORAGE_STATUS:DELETED :已删除,该服务器从本组中摘除
FDFS_STORAGE_STATUS:OFFLINE :离线
FDFS_STORAGE_STATUS:ONLINE :在线,尚不能提供服务
FDFS_STORAGE_STATUS:ACTIVE :在线,可以提供服务
|