Fastdfs一些不经意问题解决方案
【1】在做群集的时候IP地址的填写规范:
1.两台storage服务器都属于内网,填写tracker_server地址时应全部填写内网IP地址。
tracker_server=内网地址:22122 tracker_server=内网地址:22122
2.两台storage服务器都属于外网,填写tracker_server地址时应全部填写外网IP地址。
tracker_server=公网地址:22122 tracker_server=公网地址:22122
3.两台storage服务器分别属于内网和外网的,填写tracker_server地址时应全部填写外网IP地址。
tracker_server=公网地址:22122 tracker_server=公网地址:22122
【2】开启http支持的方法:
vim /etc/fdfs/mod_fastdfs.conf
在行末尾添加:
#include http.conf
【3】fastdfs迁移数据
1.迁移时IP地址不变
通过文件服务器存储规则定义,发现当ip地址没有发生变化时,这种文件服务器迁移是最简单的,只需要在新的服务器上安装fastDFS,把原来服务器上的tracker和storage下面的所有目录文件拷贝到新服务器,把所有的配置文件拷贝到新服务器,启动tracker和storage服务即可。
拷贝方式推荐:nc传输工具(传输很快,我的内网大概每秒30MB左右)
服务端执行命令:
tar -zcf - * | nc 192.168.1.28 12345
客户端执行命令:
nc -v -l 192.168.1.28 12345 |tar -zxf - -C /fastdfs/fastdfs_20190122/
讲解:
服务端发起将当前目录下的文件压缩,并传输给192.168.1.28的12345端口,客户端监听来自192.168.1.28的12345端口的文件,并解压到指定目录。
-v:查看传输连接信息
-l:开启监听模式
2.迁移时IP地址变化采用自定义server ID模式安装
在fastDFS文件服务器安装时,若前期考虑了文件迁移的需求采用了自定义server ID特性安装文件服务器(fastDFS安装请参考上一篇博客:FastDFS与Nginx的配置说明),在做新文件迁移时仅需如下操作(这种迁移测试很简单,变化ip时既可测试):
- 安装新的fastDFS文件服务器;
- 关闭tracker服务和storage服务;
- 拷贝原有文件服务器tracker和storage下面的所有目录文件;
- 拷贝原有文件服务器的配置文件,如图:
- 编辑stroage_ids.conf文件,修改新的ip地址,如下图:
- 修改client.conf,storage.conf,mod_fastdfs.conf(若配置了 Servier ID模式,可以不修改)文件中的ip地址为新的ip地址。
- 启动tracker服务和storage服务;
- 利用ngigx测试下载以前服务器中存成的文件,下载原文件成功表示迁移成功。
3.迁移时IP地址变化采用默认配置安装
在这种模式下,文件迁移本质就是替换ip地址,找到文件服务器中配置文件与ip地址相关的文件替换后就可以了。但不建议采用这种模式安装,且一旦使用这样的模式安装后,需要切换为自定义 Server ID时,会报ip已经重复的异常,导致切换自定义安装失败(除非删除以前的存储文件)。为了迁移以前的文件数据,需进行如下操作:
- 新服务器停止tracker和storage,分别将其数据文件目录用旧服务器的文件替换掉。
- 删除新服务器data数据,使用旧服务器data替换
- 修改tracker的data文件,主要是修改以下文件中的ip信息。
- data/storage_groups_new.dat
- data/storage_servers_new.dat
- data/storage_sync_timestamp.dat
- 修改storage的data文件,主要是修改以下文件中的ip信息 。
- data/.data_init_flag
- data/sync/${ip_addr}_${port}.mark:此类文件,需要将文件名中的IP地址调整过来。若sync目录下面没有文件,可不修改。
- 修改client.conf,storage.conf,mod_fastdfs.conf文件中的ip地址为新的ip地址。
- 利用ngigx测试下载以前服务器中存成的文件,下载原文件成功表示迁移成功。