Fastdfs数据迁移方案
1. 方案背景描述
环境迁移,需要迁移旧环境的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服务。
FastDFS会自动同步以前服务器上的数据
5) 停止storage服务,将storage配置文件中的tracker地址修改为新的tracer 地址,同时修改storage 中/data/fast_data/data/.data_init_flag文件,sync_src_server=空即可。
6) 启动新的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 需要修改:
storage/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和端口
2) 执行文件上传命令
#/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]
删除storage节点:
fdfs_monitor /etc/fdfs/client.conf delete group1 [节点IP]
Fastdfs数据迁移方案的更多相关文章
- HBase 数据迁移方案介绍
一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...
- HBase 数据迁移方案介绍 (转载)
原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- 4.HBASE数据迁移方案(之snapshot):
4.HBASE数据迁移方案: 4.1 Import/Export 4.2 distcp 4.3 CopyTable 4.4 snapshot 快照方式迁移(以USER_info:user_lo ...
- HBase 数据迁移方案介绍(转载)
原文链接:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- Redis数据迁移方案
场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: ...
- FastDFS数据迁移
参考:https://blog.csdn.net/frvxh/article/details/56293502 FastDFS安装配置参考:https://www.cnblogs.com/minseo ...
- 多es 集群数据迁移方案
前言 加入新公司的第二个星期的星期二 遇到另一个项目需要技术性支持:验证es多集群的数据备份方案,需要我参与验证,在这个项目中需要关注到两个集群的互通性.es集群是部署在不同的k8s环境中,K8s环境 ...
- 【linux】【FastDFS】FastDFS数据迁移
后来同步的时候发现有的没有同步过来,应该是没有同步完成我就停止服务了. 最后尝试直接把fastdfs storage的data文件迁移过去即可. 1.在新的storage server服务器上停止所有 ...
- 从零自学Hadoop(17):Hive数据导入导出,集群数据迁移下
阅读目录 序 将查询的结果写入文件系统 集群数据迁移一 集群数据迁移二 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephis ...
随机推荐
- phpstorm如何设置字体
最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个"√",始终无法去掉,这个勾限制了字体系列 ...
- jackson学习之八:常用方法注解
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 解析一下C++的异常处理
作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 总述 在程序运行过程中经常会碰到一些问题,例如数组下标越界,除数为零等,这些错误不过能被发现处理, ...
- AYIT-2020 609暑假集训第一周周赛题 A - A计划
可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚,告招天下 ...
- PTA甲级—链表
1032 Sharing (25分) 回顾了下链表的基本使用,这题就是判断两个链表是否有交叉点. 我最开始的做法就是用cnt[]记录每个节点的入度,发现入度为2的节点即为答案.后来发现这里忽略了两个链 ...
- B、小花梨的三角形(解题报告)
通过set进行标记(思想很简单,实现起来有点容易错)set(红黑树:效率高) 思路: 对行列和长度进行枚举: 对三个顶点进行排序 储存顶点后计数输出 #include<iostream> ...
- Codeforces Round #643 (Div. 2) E. Restorer Distance (贪心,三分)
题意:给你\(n\)个数,每次可以使某个数++,--,或使某个数--另一个++,分别消耗\(a,r,m\).求使所有数相同最少的消耗. 题解:因为答案不是单调的,所以不能二分,但不难发现,答案只有一个 ...
- 国产网络测试仪MiniSMB - 如何3秒内创建出16,000条源/目标MAC地址号递增流
国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...
- JPG学习笔记1(附完整代码)
#topics h2 { background: rgba(43, 102, 149, 1); border-radius: 6px; box-shadow: 0 0 1px rgba(95, 90, ...
- canvas实现简易时钟效果
代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...