FastDFS增加存储目录
目录
1 前言
FastDFS使用一段时间你会发现存储空间不够了,新文件无法上传。这个时候需要加磁盘也就是需要加存储目录。
基于FastDFS文件服务器的特性,在做文件扩充容量时,可采取如下两种方案:
- 扩充group的存储空间,配置多个存储文件目录地址。
- 扩充存储节点,新加服务器配置多个storage。
2 基于group模式的文件存储扩容
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模式扩容主要步骤如下
2.1 停止服务
停止现有的tracker服务,storage服务。
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop2.2 挂载新的磁盘(过程略)
2.3 修改tracker.conf配置文件
vi /etc/fdfs/tracker.confstore_path=2 ##将原来的0修改为2
# 上传文件选择路径的规则
# 0:轮询(默认)
# 2:负载均衡,选择可用空间最大的文件夹2.4 修改storage.conf配置文件
vi /etc/fdfs/storage.confstore_path_count=2 #将原来的1改为2
store_path1=/data/fastdfs/group1/storage2 #新增store_path1
2.5 修改mod_fastdfs.conf配置文件
vi /etc/fdfs/mod_fastdfs.confstore_path_count=2 #将原来的1改为2
store_path1=/data/storage2 #新增store_path1
2.6 启动tracker,storage服务
查看状态
/usr/bin/fdfs_monitor /etc/fdfs/client.conf2.7 修改nginx.conf配置文件
vi /usr/local/nginx/conf/nginx.conf在nginx的配置文件中添加新store_path的路径

2.8 测试上传
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt
成功上传到新的目录
3 配置多个group
3.1 创建配置
复制一份storage.conf并修改文件名group2.conf
cp /etc/fdfs/storage.conf /etc/fdfs/group2.conf3.2 修改group2.conf配置
修改组名
group_name=group2修改端口
port=23001
修改日志文件目录
base_path=/data/fastdfs/group2/storage修改资源保存路径
store_path0=/data/fastdfs/group2/storage3.3 修改mod_fastdfs.conf配置
vi /etc/fdfs/mod_fastdfs.conf修改组名,多个用/区分开
group_name=group1/group2设置组个数
group_count = 2设置每一组信息:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/group1/storage
[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/data/fastdfs/group2/storage
等以此类推
3.4 启动storage
/usr/bin/fdfs_storaged /etc/fdfs/group2.confnginx日志报错ERROR - file: ../common/fdfs_global.c, line: 52, the format of filename
解决办法:
vi /etc/fdfs/mod_fastdfs.conf将url_have_group_name=false改为url_have_group_name=true
3.5 fastdfs的状态查询
/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 :在线,可以提供服务