一 背景
FastDFS服务的存储服务器,创建时由于规划不合理。目前存储空间已经使用了85%,需要添加磁盘扩容(具体添加磁盘的方法见后面的文章),group模式扩容是通过给group的机器添加硬盘的方式,实现某个group的扩容。fastdfs在一台服务器支持多个store_path,每个store_path指向一个存储路径。如果没有配置store_path,就使用base_path的路径。添加了硬盘后,通过把新的store_path指向新硬盘的挂载点,再修改配置文件,就能实现group的扩容。
group模式扩容主要步骤如下:
停止服务:
停止tracker服务,storage服务,nginx服务。
fdfs_trackerd /etc/fdfs/tracker.conf stop
fdfs_storaged /etc/fdfs/storage.conf stop
停止nginx服务
cd /usr/local/nginx/sbin/
./nginx -s stop
修改tracker.conf配置文件
cd /etc/fdfs/
vim tracker.conf
修改配置文件中的store_path=2
注释:
- 0 - 代表轮询进行存储,意思是在一个storage中配置的store_path0、store_path1……之间进行轮询存储文件
- 1- 代表选择storage中存储路径中空闲空间最大的进行保存文件
修改storage.conf配置文件
cd /etc/fdfs/
vim storage.conf
修改store_path_count=2 增加store_path1=新挂载的目录
注释:
- store_path_count 指的是当前一个storage有几个存储文件的目录
- store_path0 storage存储文件路径,对应上传后文件名为M00/xxxxxx
- store_path1 storage存储文件路径,对应上传后文件名为M01/xxxxxx,(扩展成功之后可通过此上传的文件名判断新上传的文件是否存储到新的路径下)
修改mod_fastdfs.conf配置文件
cd /etc/fdfs/
vim mod_fastdfs.conf
修改store_path_count=2 和 新增store_path1=新挂载的目录(此目录和storage.conf中的一样)
注意:里面的store_path_count和store_path1必须和storage.conf中的值是一样。
修改nginx的配置
方式1:通过正则匹配查找
删除原来的配置,更改为新的配置
location ~ /group[1-9]/M0[0-9] {
ngx_fastdfs_module;
}
方式2:多个代理配置
删除原来的配置,修改为如下
location /group1/M00 {
root /home/fastdfs/storage; #store_path0
ngx_fastdfs_module;
}
location /group1/M01 {
root /home/xxxxxxx; #store_path01地址
ngx_fastdfs_module;
}
启动tracker
fdfs_trackerd /etc/fdfs/tracker.conf
启动storage
fdfs_storaged /etc/fdfs/storage.conf
启动nginx
cd /usr/local/nginx/sbin/
./nginx -c /usr/local/nginx/conf/nginx.conf -t
./nginx -c /usr/local/nginx/conf/nginx.conf
nginx启动之后正常有两个进程同时运行,可通过下面的命令进行查看
ps -ef|grep nginx
检查挂载服务是否正常
fdfs_monitor /etc/fdfs/client.conf