Fastdfs数据迁移方案

1、简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。
环境迁移,需要迁移旧环境的fastdfs集群的数据到新环境,由于之前数据迁移仅仅是针对mysql和mongodb,对fastdfs数据的迁移了解甚少,本文档主要是针对fastdfs数据迁移和恢复的几种方式以及具体操作流程做详细阐述。

2、方案实现的目标

实现fastdfs集群数据完整迁移,保证在新环境正常使用,以及保证fastdfs集群高可用。

3、 方案说明

Fstdfs 整体架构

在这里插入图片描述

Fastdfs 数据迁移

数据迁移是指旧的fastdfs可以继续正常运行的情况下,将旧环境的fastdfs的数据恢复到新的环境fastdfs服务中。

同IP 数据迁移

  1. 首先关闭fdfs_storage和fdfs_tracker服务。
  2. 拷贝fdfs_storage目录中的所有数据到新目录。
  3. 修改storage配置文件中的store_path和base_path到新位置。
  4. 修改mod_fastdfs.conf配置文件中的store_path和base_path到新位置。
  5. 根据情况,选择是否修改client配置文件。
  6. 重启fdfs_tracker和fdfs_storage服务

不同IP数据迁移

不同IP之间迁移采用FastDFS的扩容机制。

  1. 在新服务器安装FastDFS。
  2. 将新FastDFS的storage服务实例关联到以前的tracker服务。
  3. 拷贝以前的storage服务配置为新服务实例的配置文件。
  4. 启动storage服务。
  5. FastDFS会自动同步以前服务器上的数据
  6. 停止storage服务,将storage配置文件中的tracker地址修改为新的tracekr 地址,同时修改storage 中/data/fast_data/data/.data_init_flag文件,sync_src_server=空即可。
  7. 启动新的tracker服务和storage服务。

Fastdfs数据恢复

数据恢复是指旧的FastDFS服务已经不能运行,需要将已有的FastDFS数据恢复到新的FastDFS服务中。

  1. 如果FastDFS服务使用了V4的ServerID特性,修改storage_ids.conf文件,调整对应关系即可。
  2. 如果采用IP地址进行标识,则需要修改tracker 和storage下data目录中的数据文件中的ip地址。
    tracker server 需要修改 :
tracker/data/storage_groups_new.dat
tracker/data/storage_servers_new.dat
tracker/data/storage_sync_timestamp.dat

storage server 需要修改:
s

torage/data/.data_init_flag
storage/data/sync/${ip_addr}_${port}.mark

4.数据同步以及验证

本次迁移考虑到我们旧环境依旧可以使用并且是不同网段之间的fastdfs集群,所以采用的是FastDFS的扩容机制来迁移fastdfs的数据。

查看数据同步的进度:
在旧环境storage服务base_path 目录下有一个 data/sync目录,里面的文件如下:
10.10.101.135_23000.mark
这个是 new_storage 的同步数据的情况
binlog.000 旧tracker的binlog
binlog.index 记录着当前正在使用哪个 binlog 文件
查看 10.10.101.135_23000.mark 的文件内容就可看到 数据同步的情况,从 scan_row_count 和 sync_row_count 的数量对比可以知道同步的进度,当两者一致的时候同步完成。
binlog_index=0
binlog_offset=1689076 binlog.xxx的偏移量,可以从这个偏移量获取下一行记录
need_sync_old=1 本storage是否是对侧storage(110.119.19.21)的源结点,同时是否需要从起点同步所有的记录
sync_old_done=1 是否同步完成过
until_timestamp=1614235090 上次同步时间结点
scan_row_count=29122 binlog总记录数
sync_row_count=29122 同步的binlog行数

5. fastdfs文件上传下载以及基础操作命令

文件上传测试

  1. 修改Tracker服务器客户端配置文件
cp   /etc/fdfs/client.conf.sample   /etc/fdfs/client.conf

vim   /etc/fdfs/client.conf

修改以下配置,其它保持默认

base_path=/data/fastdfs/tracker

tracker_server= 10.10.8.85:22122  # tracker服务器IP和端口

tracker_server= 10.10.8.86:22122  #tracker服务器IP和端口
  1. 执行文件上传命令

#/root/test.png 是需要上传文件路径

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/test.png

返回文件ID号:group1/M00/00/00/wKgAfFzMX_2AB9V9AADa-k_GxyQ840.jpg

(能返回以上文件ID,说明文件已经上传成功)

基础操作命令:

查看集群信息:

/usr/bin/fdfs_monitor /usr/local/storage.conf Storage节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息。

上传命令:

fdfs_upload_file  /etc/fdfs/client.conf  [文件名称](需全路径)

/usr/local/bin/fdfs_upload_file   [文件名称](需全路径)

下载命令:

fdfs_download_file  /etc/fdfs/client.conf   [filename]

filename:为保存到fdfs的文件;上传的时候返回的路径是什么,这边filename就写什么;默认下载到当前执行命令的目录
删除命令:

fdfs_delete_file  /etc/fdfs/client.conf  [filename]

6. FastDFS的Tracker及Storage节点添加及删除

1、增加Storage节点(通过配置,自动加入)

1)安装Storage并配置mod_fastdfs.conf及storage.conf,设置fdfs_storaged及nginx自启动
2)启动新加的storage节点(会自动同步相同group的内容)
3)执行fdfs_monitor /etc/fdfs/client.conf查看集群同步情况(会看到新增的storage节点)

2、删除Storage节点及删除后重新加入(通过fdfs_monitor删除)

1)停止某个storage节点 killall fdfs_storaged
2)fdfs_monitor /etc/fdfs/client.conf delete group1 10.2.x.x
3)查看集群情况 fdfs_monitor /etc/fdfs/client.conf 可以到对应的storage节点状态为DELETED
4)重新加入
<1>启动被删除的storage节点,查看集群状态,一开始会是 OFFILINE状态
<2>过一会儿再查看集群状态,显示为ACTIVE状态

3、增加Tracker节点

1)在所有storage节点的storage.conf, mod_fastdfs.conf 中配置多条tracker_server记录
tracker_server=10.2.x.1:22122
tracker_server=10.2.x.2:22122
2)在client.conf中也配置多条tracker_server记录
执行

fdfs_monitor /etc/fdfs/client.conf 

查看集群情况,可以看到tracker_serve_count变为2
另外可以指定tracker,进行集群监控

fdfs_monitor /etc/fdfs/client.conf  -h 10.2.x.1  list

4、删除Tracker节点

去掉配置文件中不需要的tracker_server的记录,停止对应服务器上的tracker进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值