批量迁移实现方案求助

2019-08-04 21:02:52 +08:00
 playnoa

背景

现在有很多服务器需要迁移上云,之前需要数据同步到云上的新机器非集中式,需要 A->A,B->B 的对应方式,我已经用脚本加上 expect 实现了首次自动化处理,但是在同步方式上没有找到合适的软件或工具来做实时同步;

要求

尽量不动生产服务器(原服务器)(每台大约 100G 以内的数据)

过程

  1. rsync + inotify
  2. lsyncd + ssh

方式 1 得安装配置 client,而且网上对于这种同步方式在大量数据的情况下,目录对比和灵敏性方面很不如意;它不知道哪个文件修改了,而是用全部目录对比的方式进行同步,这也太傻了,还有就是它的是从 原到新的同步方式,有点像备份,就是用“推”的方式,我更希望是从 新到原 的方式,就新机器从原机器“拉”数据

方式 2 lsyncd 封装了 rsync+inotify,但是工作方式也是推数据的方式

Google 都搜烂了,也没找到方法,是我的思路不对?

2554 次点击
所在节点    程序员
17 条回复
billlee
2019-08-04 23:35:18 +08:00
没看明白,为什么需要 inotify, 直接 rsync 不行吗?
oott123
2019-08-04 23:51:28 +08:00
你要实时同步,就要推,这是个逻辑问题
playnoa
2019-08-05 00:39:35 +08:00
@billlee 直接不行,首次同步完成后,就是实时增量了,只同步修改的,所以需要 inotify 来知道哪个文件的变动
playnoa
2019-08-05 00:43:25 +08:00
@oott123 你的意思是只能主从逻辑?生产环境批量修改难度很大,不能有一点失误;要是有一种能够跟随监测同步就好了
openwrt
2019-08-05 01:14:40 +08:00
其实 rsync 没什么不好,全目录对比花不了多少时间。推和拉实际上并没有本质区别,如果你想用拉的方式,完全可以在新机器上运行 rsync 命令去旧服务器上拉。
msg7086
2019-08-05 05:08:10 +08:00
你是说 SyncThing 么?
hawhaw
2019-08-05 07:16:32 +08:00
rsync 也可以指定某些文件做同步吧,不一定都会全目录做对比
opengps
2019-08-05 08:09:03 +08:00
阿里云的话,有快递硬盘业务
playnoa
2019-08-05 09:15:22 +08:00
@hawhaw 在需要同步的目录下有很多子目录,要监测这整个目录的变化,它的工作方式就是从指定的目录起到最深处的目录树
playnoa
2019-08-05 09:16:40 +08:00
@openwrt 不想用推的方式其实是不想动生产服务器,因为多,得批量操作,有风险
playnoa
2019-08-05 09:17:03 +08:00
@msg7086 我查查这个
playnoa
2019-08-05 09:28:45 +08:00
@msg7086 我查,查这个
playnoa
2019-08-05 09:29:04 +08:00
@opengps 我问问云厂商有啥好办法
figael
2019-08-05 18:05:32 +08:00
怎么同步,应该不是问题,关键是你什么时候切,切完是否要强一致。
billlee
2019-08-05 21:34:23 +08:00
@playnoa #3 你是要不停机迁移?没必要这样搞吧?
playnoa
2019-08-05 21:39:08 +08:00
@billlee 不能停机,就是因为卡在同步方式上
playnoa
2019-08-05 21:40:19 +08:00
@figael 一针见血,同步方式决定着数据的完整性,也影响着切换的质量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/589004

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX