【Weed-FS又名叫Seaweed-FS】,

本篇主要是关于数据迁移相关的内容,

更详细的源码相关的请看分布式存储Weed-FS源码分析。

很多刚开始接触 Weed-FS 但是又不熟悉它的用户经常会使用以下的方式启动 weed 集群。

weed master -mdir="/tmp/mdata" -defaultReplication="001" -ip="localhost" -port=9334

weed volume -dir=/tmp/vol1/ -mserver="localhost:9334" -ip="localhost" -port=8081

weed volume -dir=/tmp/vol2/ -mserver="localhost:9334" -ip="localhost" -port=8082

weed volume -dir=/tmp/vol3/ -mserver="localhost:9334" -ip="localhost" -port=8083

一个 MasterServer 对应三个 VolumeServer ,设置复制模式为 "001" ,

也就是在相同 Rack 下复制副本为一份,也就是总共有两份。

经过一段时间的上传之后磁盘的文件如下:(其实只要上传一份文件之后就可以看到)

ls vol1 vol2 vol3

vol1:

1.dat 1.idx 2.dat 2.idx 3.dat 3.idx 5.dat 5.idx

vol2:

2.dat 2.idx 3.dat 3.idx 4.dat 4.idx 6.dat 6.idx

vol3:

1.dat 1.idx 4.dat 4.idx 5.dat 5.idx 6.dat 6.idx

也就是总共有6个Volume,分布在三个目录,这三个目录分别属于

VolumeServer1,VolumeServer2,VolumeServer3 。

此时如果想要缩减VolumeServer,比如去掉VolumeServer3。

不熟悉 Weed-FS 的人会很纠结是否可以直接将VolumeServer3的数据挪给

VolumeServer1 和 VolumeServer2 ?

其实这个完全是可以的,由 md5 就可以看出来:

md5 vol1/1.dat vol2/1.dat

MD5 (vol1/1.dat) = c1a49a0ee550b44fef9f8ae9e55215c7

MD5 (vol2/1.dat) = c1a49a0ee550b44fef9f8ae9e55215c7

md5 vol1/1.idx vol2/1.idx

MD5 (vol1/1.idx) = b9edc95795dfb3b0f9063c9cc9ba8095

MD5 (vol2/1.idx) = b9edc95795dfb3b0f9063c9cc9ba8095

只要名字相同,也就是 VolumeId 相同,

即使是属于不同 VolumeServer 的 Volume

其实也是一模一样的(不一样就说明数据损坏),因为 Volume 里面并没有含有任何它所属于的 VolumeServer 的相关信息。

也有人怀疑是否会一模一样,担心备份的时候是采用最终一致性的异步备份方案。

这个也不用担心,在 分布式存储Weed-FS源码分析 里面就说过,

Weed-FS 是采用的强一致性的方式进行备份。

每次都是写完所有备份才完成一次上传操作。

客户端才会收到上传成功的返回值。

所以可以放心的将 VolumeServer3 的 Volume 挪到其他两个 VolumeServer,

如下,当然迁移数据之前需要将这四个服务都停止。

ls vol1 vol2 vol3

vol1:

1.dat 1.idx 2.dat 2.idx 3.dat 3.idx 4.dat 4.idx 5.dat 5.idx 6.dat 6.idx

vol2:

1.dat 1.idx 2.dat 2.idx 3.dat 3.idx 4.dat 4.idx 5.dat 5.idx 6.dat 6.idx

vol3:

然后再启动 MasterServer, VolumeServer1, VolumeServer2 即可,如下:

weed master -mdir="/tmp/mdata" -defaultReplication="001" -ip="localhost" -port=9334

weed volume -dir=/tmp/vol1/ -mserver="localhost:9334" -ip="localhost" -port=8081

weed volume -dir=/tmp/vol2/ -mserver="localhost:9334" -ip="localhost" -port=8082

其实后来这篇已经通过 pull request 提交到 weed-fs 的文档上面了。

但是鉴于现在搜索引擎上关于 weed-fs 的资料还是太少了,

所以还是增加这篇博文,丰富一下中文的索引数据吧。

有疑问加站长微信联系(非本文作者)

weedfs php,Weed-FS之Volume数据迁移相关推荐

  1. docker的文件流处理_Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken...

    前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...

  2. Hadoop数据迁移解决方案 上

    Hadoop数据迁移解决方案 数据迁移场景 冷热集群数据同步.分类存储 集群数据整体迁移 数据的准时同步 数据迁移考虑的因素 Bandwidth-带宽 带宽用多会影响到线上业务的任务运行,带宽用的少会 ...

  3. hbase集群间数据迁移

    2019独角兽企业重金招聘Python工程师标准>>> HBase迁移数据方案一(集群互联) 一.需要在hbase集群停掉的情况下迁移 步骤: (1)执行Hadoop distcp ...

  4. HBase不同版本集群之间数据迁移

    本文摘自:https://www.dazhuanlan.com/2019/10/20/5dac43ffeb75a/ 由于HBase CDH4和CDH5数据格式不兼容,所以不能用"CopyTa ...

  5. 伪分布式hbase数据迁移汇总

    https://www.jianshu.com/p/990bb550be3b hbase0.94.11(hadoop为1.1.2,此电脑ip为172.19.32.128)向hbase1.1.2 (ha ...

  6. 生产环境下,oracle不同用户间的数据迁移。第三部分

    任务名称:生产环境下schema ELON数据迁移至schema TIAN ######################################## 前期准备: 1:确认ELON用户下的对象状 ...

  7. HBase 数据迁移

    最近两年负责 HBase,经常被问到一些问题, 本着吸引一些粉丝.普及一点HBase 知识.服务一点阅读人群的目的,就先从 HBase 日常使用写起,后续逐渐深入数据设计.集群规划.性能调优.内核源码 ...

  8. HDFS高级功能(防止用户的错误操作 备份 试验/测试 灾难恢复 配额 数据迁移)

    HDFS高级功能(防止用户的错误操作 备份 试验/测试 灾难恢复 配额 数据迁移) 介绍HDFS的高级功能: 回收站 快照snapshot(一种备份) 配额 安全模式 回收站 和我们Window系统上 ...

  9. hdfs 数据迁移_对象存储BOS发布全新工具,加速自建HDFS到云端的访问速度

    想让自建Hadoop拥有流畅的云端访问体验?想替老板省点钱?是时候升级你的装备了! 百度智能云对象存储服务BOS新推出BOS HDFS工具,支持HDFS数据在BOS中的海量存储,并能在上层数据运算中使 ...

  10. mysql 导入tsv文件_HBase数据迁移(2)- 使用bulk load 工具从TSV文件中导入数据

    英文原文摘自:<HBase Administration Cookbook>??编译:ImportNew?-?陈晨 本篇文章是对数据合并的系列文章之二(共三篇),针对的情景模式就是将现有的 ...

最新文章

  1. Windows7 下Ubuntu VM 中Docker连接不上的问题及解决方案
  2. 2018AI最佳应用回顾
  3. 什么叫dfs文件服务器,什么是DFS(分布式文件系统)以及DFS的优点
  4. 新版linux安装旧软件下载,Linux下载安装各种版本的firefox
  5. php crypt mysql password_php使用crypt()函数进行加密
  6. 扩展单元格 == 报表
  7. 转载:牛客练习赛17 c 规律题
  8. SELECT 1 FROM table含义
  9. 程序员必读的三十本经典书籍
  10. 删除无法读取源文件或磁盘的文件 删除系统找不到指定路径的文件
  11. C++二维vector初始化大小方法
  12. Latex 环境配置(TexLive + Texstudio)
  13. layui树形组件渲染
  14. Windows每次开机键盘无法使用,需要重新拔插键盘USB接口的解决方案
  15. 一分钟搞懂app热更新
  16. 数据库实验四:数据高级查询
  17. Spring cloud系列六 Ribbon的功能概述、主要组件和属性文件配置
  18. Android ION 内存管理
  19. java+jna+DD实现全局键鼠驱动级模拟
  20. c语言中03怎么表示成30,C语言入门篇-03

热门文章

  1. Android集成腾讯Bugly和简单使用
  2. Qt编写自定义控件54-时钟仪表盘
  3. 【054】七麦数据-应用商店中详细的应用大数据
  4. 分时线的9代表什么_一位血亏百万股民血泪史告诉你:为什么要打板?
  5. 网站添加Google翻译代码
  6. win10计算机未连接到网络适配器,Windows 10 Hyper-V网络适配器未连接
  7. python 内存文件_python基础知识-7-内存、深浅、文件操作
  8. 电脑桌面图标有阴影怎么办
  9. python 把图片白色部分变透明_如何将图像区域转换为白色或透明?
  10. 圣安德鲁斯计算机科学排名,2020年圣安德鲁斯大学历史世界排名最好是第几位...