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数据迁移方案的更多相关文章

  1. HBase 数据迁移方案介绍

    一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...

  2. HBase 数据迁移方案介绍 (转载)

    原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...

  3. 4.HBASE数据迁移方案(之snapshot):

    4.HBASE数据迁移方案:  4.1 Import/Export  4.2 distcp  4.3 CopyTable  4.4 snapshot 快照方式迁移(以USER_info:user_lo ...

  4. HBase 数据迁移方案介绍(转载)

    原文链接:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...

  5. Redis数据迁移方案

    场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: ...

  6. FastDFS数据迁移

    参考:https://blog.csdn.net/frvxh/article/details/56293502 FastDFS安装配置参考:https://www.cnblogs.com/minseo ...

  7. 多es 集群数据迁移方案

    前言 加入新公司的第二个星期的星期二 遇到另一个项目需要技术性支持:验证es多集群的数据备份方案,需要我参与验证,在这个项目中需要关注到两个集群的互通性.es集群是部署在不同的k8s环境中,K8s环境 ...

  8. 【linux】【FastDFS】FastDFS数据迁移

    后来同步的时候发现有的没有同步过来,应该是没有同步完成我就停止服务了. 最后尝试直接把fastdfs storage的data文件迁移过去即可. 1.在新的storage server服务器上停止所有 ...

  9. 从零自学Hadoop(17):Hive数据导入导出,集群数据迁移下

    阅读目录 序 将查询的结果写入文件系统 集群数据迁移一 集群数据迁移二 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephis ...

随机推荐

  1. (8)Linux文件目录结构一览表

    1.使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin.boot.dev 等.同时,各一级目录下还含有很多子目 ...

  2. 20000套免费ppt模板获取攻略

    前言 又到年末了,发现需要用到简历,PPT这些的地方又多了.PPT这东西吧,颜值真的很重要,毕竟老板拉融资都是用ppt拉来的.只要ppt够精美,外加上你的故事讲得好,A轮指定不是问题呀.往小处说,就是 ...

  3. [CCPC2019网络赛] 1008-Fishing Master(思维)

    >传送门< 题意:现在需要捕$n$条鱼并且将它们煮熟来吃.每条鱼要煮相应的时间才能吃(可以多煮一会),锅里每次只能煮一条鱼,捕一条鱼的时间是相同的,但是在捕鱼的时间内不能做其他事(比如换一 ...

  4. Codeforces Round #316 (Div. 2) D. Tree Requests(dsu)

    题目链接 题意:对于m次询问 求解以vi为根节点 深度为hi的的字母能不能组合成回文串. 思路:暴力dsu找一边 简直就是神技! #include<bits/stdc++.h> #defi ...

  5. HDU6403 Card Game【基环树 + 树形DP】

    HDU6403 Card Game 题意: 给出\(N\)张卡片,卡片正反两面都有数字,现在要翻转一些卡片使得所有卡片的正面的值各不相同,问最小翻转次数和最小翻转情况下的不同方案数 \(N\le 10 ...

  6. 【noi 2.6_2988】计算字符串距离(DP)

    题意: 给两个字符串,可以增.删.改,问使这两个串变为相同的最小操作数. 解法:(下面2种的代码主要区别在初始化和,而状态转移方程大家可挑自己更容易理解的方法打) 1.f[i][j]表示a串前i个和b ...

  7. Python 装包与拆包

    装包就是把未命名的参数放到元组中,把命名参数放到字典中 a = 1, 2 print(a) (1, 2) 拆包将一个结构中的数据拆分为多个单独变量中 *args **kwargs def run1(* ...

  8. java的两性

    java具有解释与编译两种特性 本来是昨天的,可以文件丢失了......(我没有偷懒哦,没有!) 所以凭记忆随便写了点 解释就像直接翻译一本书拿给别人看,编译就像找个翻译官一句句翻译给你t听 解释型( ...

  9. [视频] 使用 JavaCV 来显示和保存来自摄像头的视频

    目录 JavaCV 预览本机摄像头视频图像的简单实现 预览的同时,保存为FLV文件 JavaCV javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视 ...

  10. Windows下pip使用清华源

    一.下列内容更换成批处理,直接运行即可 @echo off md "C:\Users\Administrator\AppData\pip" echo [global] >C: ...