浅谈XX系统跨平台迁移(测试环境)
一 概述
XX系统目前运行在XX-A的云平台上,计划将其迁移至XX-B的云平台。
XX系统是java开发,中间组件涉及nginx+keepalived实现各个业务系统之间的高可用,kafka,zookeeper、redis等组件用于消息处理协调及缓存工作,数据存储有postgres、fastdfs、hbase。针对数据接入,有各个基站数据发送至数据处理服务器再转发至网关接入系统。数据迁移过程中,上层业务系统及中间组件迁移事项比较单一,进行再部署,配置修改即可。针对数据处理服务器(即目前使用的抓包服务器)涉及修改数据转发目的地址至XX-B的新地址,难点存在于数据存储部分的迁移事项。
二 网络
方案1:
VPN(Strongswan)
方案分析:
搭建VPN的方式对公网带宽有一定的影响,若vpn带宽用的过大,则会影响到线上用户对系统的访问;若VPN带宽用的过小,则会对数据同步速度造成影响,本次测试未考虑此方面的问题。
方案实现(亲测):
flexgw镜像使用指南:http://source.docs.cloudcare.cn/support/image/others/others_16/?spm=5176.730006-cmjj006981.102.10.ZjE3eJ
strongswan:https://help.aliyun.com/document_detail/57412.html?spm=5176.product51933.6.556.s0PPxP
注意:
在VPN搭建完毕之后,需要对hbase添加访问白名单,在其中注明源地址的IP段;
在源设备中添加静态路由指向VPN设备地址;
在NAT映射设备中需要添加路由指定目标网段访问指向到vpn所在设备;
三 数据存储-fastdfs
方案1:
针对fastdfs的迁移,其中主要存储图片数据,需要先将postgres数据库及数据导入之后,再进行fastdfs数据导入,因为在fastdfs导入的时候会将每个图片生成一个链接地址存储在postgres中,供其他业务系统调用。
方案分析:
数据迁移不会对原线上系统造成影响。
方案实现:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /file/need/to/be/import
四 数据存储-postgres
postgres有业务系统数据及轨迹数据,其中轨迹数据需postgis轨迹插件支持。
方案1:
通过使用ECS服务器实例搭建相同版本postgres及相同版本插件,首先关闭postgres写入,再将postgres数据dump到本地,再使用sql命令导入dump下来的文件。
方案分析:
考虑线上环境postgres数据量大,dump时间+数据传输时间+数据导入时间=T远大于实际能接受的范围,故此方案排除;
方案实现:
通过pg dump命令对数据进行下载及导入。
方案2(优选方案):
通过使用ECS服务器搭建相同版本postgres及相同版本插件,并对原系统postgres及XX-B上postgres配置进行修改,配置主从postgres数据同步,待数据同步完毕之后,进行主备切换。
方案分析:
此方案能够满足线上系统几乎不影响用户使用,在增加此同步postgres之后,对原有系统网络性能会造成一定的影响,故建议在夜间用户访问量较少的情况下进行。
方案实现:
参考我博文(亲测):
Postgres配置主从流复制:http://www.cnblogs.com/cf532088799/p/7560842.html
Postgres主从切换:http://www.cnblogs.com/cf532088799/p/7592253.html
方案3:
通过使用XX-B的RDS数据库服务中的postgres数据库,使用DTS数据同步工具对测试环境postgres数据进行同步。
方案分析:
由于XX-B的DTS数据同步工具对postgres版本支持9.4及以上,测试环境及实际云环境中postgres版本均为9.1,所以此方案排除;
方案实现(若版本在9.4及以上可采用此方案,由于不符项目实际情况,未经测试):
DTS PG迁移手册:https://help.aliyun.com/document_detail/26624.html
方案4(若能实现,则为优选方案):
通过在测试环境搭建9.4版本的postgres,再对9.4版本psotgres与9.1版本postgres做主从同步,之后再通过XX-B的DTS数据同步工具来同步测试环境中的9.4版本的数据并使用XX-B云平台上RDS中的postgres服务。
方案分析:
此方案未经过测试,实际是否可行未作验证。
方案实现:
无
五 数据存储-hbase
测试环境中仅仅对表H_DSE_TRACE进行导入/同步等测试,其大小在3.15G左右。
方案1:
通过对表进行快照备份,再将快照导出至目标集群,再通过数据恢复(快照恢复方式)。
方案分析:
对整个表进行快照备份,考虑到线上实际环境数据量大,表快照生成时间+表快照导出时间+表快照导入时间=T大于一天,故此方案不可取。
方案实现:
参考我博文(亲测):
使用hbase快照将数据输出到互联网区的临时Hbase集群:http://www.cnblogs.com/cf532088799/p/7445942.html
方案2:
通过采用XX-B云平台数据集成工具,通过数据集成脚本配置,根据rowkey来分批次导入。
方案分析:
在实际数据集成脚本配置过程中,需要配置表列族下面的列名,由于本项目中列名是由程序中截取协议ID+时间生成,列名及数量不定,不能采用此种方案。
方案实现(若条件符合列名及列名数量固定可采用此方案,由于不符项目实际情况,未经测试):
数据集成脚本模式:https://help.aliyun.com/document_detail/56231.html
数据集成reader:https://help.aliyun.com/knowledge_detail/54189.html
数据集成writer:https://help.aliyun.com/knowledge_detail/54191.html
方案3(优选方案):
通过hbase原生CopyTable来进行数据同步,可根据rowkey值范围分批次进行导入。
方案分析:
此方案对网络要求较高,在导入之前需要先将表split一下再导入,否则写入速度提不上去。
方案实现(亲测):
使用CopyTable同步Hbase数据:https://yq.aliyun.com/articles/176546?spm=5176.doc57695.2.2.c9ycjG
hbase shell 客户端:https://m.aliyun.com/doc/document_detail/52056.html?spm=5176.product49055.3.9.aEeFqx
(未完待续...)
浅谈XX系统跨平台迁移(测试环境)的更多相关文章
- [原创] 浅谈ETL系统架构如何测试?
[原创] 浅谈ETL系统架构如何测试? 来新公司已入职3个月时间,由于公司所处于互联网基金行业,基金天然固有特点,基金业务复杂,基金数据信息众多,基金经理众多等,所以大家可想一下,基民要想赚钱真不容易 ...
- [原创]浅谈移动互联网App兼容性测试
[原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service ...
- 浅谈Android系统开发中LOG的使用
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用 ...
- 老司机浅谈linux系统学习技巧
Linux起源于20世纪70年代,是一种优秀的操作系统系统.初次接触到linux这个系统是在大学期间,这样才发现除了windows外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它 ...
- 浅谈Linux系统运维工程师必备技能
一.什么是运维工程师 相信读者们必定听说过Linux,也听说过运维工程师.那么运维工程师是个什么概念呢? 百度百科上的官方解释如下: 运维工程师(Operations)在国内又称为运维开发工程师(De ...
- (转)浅谈 Linux 系统中的 SNMP Trap
原文:https://www.ibm.com/developerworks/cn/linux/l-cn-snmp/index.html 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前, ...
- 浅谈linux系统中pdf文件的默认打开方式
atril.gimp和evince,三者均可以打开application/pdf格式文件.gimp为一款图像处理软件:atril为mate环境下常用的文档查看器:evince为gnome环境下常用的文 ...
- 浅谈Android系统开发中LOG的使用【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以 ...
随机推荐
- Thinkphp 出现 “_CACHE_WRITE_ERROR” 错误的可能解决办法
有可能是老毛病: Cache文件夹和里面的文件,php没有权限 解决办法: chmod -R 777 /.............../www/Cache
- 安装Android模拟器Genymotion【Android学习入门】
安装Android模拟器Genymotion 推荐教程:一个强大的Android模拟器Genymotion具体内容如下: 相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了 ...
- form中的action与<url-pattern>的理解
一.<form action="Test/Login" method="post"> 在action中有两种表示方式: 1."/Test/ ...
- PCB仿真软件与电磁场求解器的算法
1. 简介 目前商业化的PCB仿真软件主要有: Cadence公司的Sigrity.Ansys公司的SIwave/HFSS.CST公司的CST.Mentor公司的HyperLynx.Polor公司的S ...
- Java I/O 工作机制(一) —— Java 的 I/O 类库的基本架构
Java 的 I/O 类库的基本架构 Java 的 I/O 操作类在包 java.io 下,有将近 80 个类. 按数据格式分类: 面向字节(Byte)操作的 I/O 接口:InputStream 和 ...
- 用户表单事件(focus事件)
以前做用户系统的时候经常用到表单验证,正则表达式事件来处理和绑定事件和进行事件,这里说的其实只是一小部分,也不是很值得写,但是今天遇到了还是写一下,毕竟基础还是蛮重要的,就算懂的童鞋,巩固一下也是好的 ...
- selenium添加cookie切换到不同环境
背景:网站中需要切环境到预发布,在用谷歌浏览器可以使用工具,但是在selenium启动时,是不会带任何插件,向开发了解下,切换环境本质是添加cookie值,那么这个就简单了 1.使用selenium中 ...
- 【BZOJ4025】二分图(LCT动态维护图连通性)
点此看题面 大致题意: 给你一张图以及每条边的出现时间和消失时间,让你求每个时间段这张图是否是二分图. 二分图性质 二分图有一个比较简单的性质,即二分图中不存在奇环. 于是题目就变成了:让你求每个时间 ...
- BZOJ 2824: [AHOI2012]铁盘整理
BZOJ 2824: [AHOI2012]铁盘整理 标签(空格分隔): OI-BZOJ OI-搜索 Time Limit: 10 Sec Memory Limit: 128 MB Descriptio ...
- Mysql常见的引擎
常用的引擎是:Innodb和Myiasm这两种引擎: innodb: 提供了对事务的ACID操作,还提供了行级锁和外键约束,,他的优势就是处理大量数据,在msql启动的时候,首先会建立一个缓存池,主要 ...