从 Aliyun 经典网络迁移到 Aliyun VPC 网络
由于阿里云策略问题,要求用户从经典网络中全部迁出,搬迁到他们设置的 VPC 网络中。这里的 VPC 大概指的是逻辑上的一个虚拟局域网。即使是实际上你的机器垮机房在阿里云的不同机房。但是他们仍然能从逻辑上属于一个 VPC。这次搬迁涉及到的主要问题是,目前手里的机器有很多都不太清楚在做什么,上面的服务是否重要,包括其中的管理以及是否最后还能将其启动起来。可以说是挤压了非常多的老债务,通过这次迁移需要一并还上。心里还是比较虚的。
由于这次迁移的主负责人并不是我 所以只用管好自己手中的业务就好了,还是轻松不少。提前了两天开始梳理手里面的十几台机器,按照如下格式做了记录。
Data10: 目前来看可以直接迁, 也不用手动起什么。谁关注什么业务再去启动。 Data08:
1. 离线库 MySQL 的启动 /usr/bin/mysql
可以使用命令
启动: service mysqld start
停止:service mysqld stop
重启:service mysqld restart 这个今天半夜来重新启动一下
查看状态:service mysqld status 2. Maxwell(从离线到 aliyun) 的重新启动。/usr/local/share/maxwell-1.10.3
启动:bin/maxwell --kafka_topic=sync_to_aliyun
停掉:直接在我的 tmux 里面停掉(这里是生产者随时停都可以)。 3. Apache Zeppelin 数据分析(这个可以停 需要自己启一下不在当日启动)
启动:work: bin/zeppelin-daemon.sh start xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
十几台每台机器做什么,都照此做了记录。这样可以比较清楚的看到哪些服务在本机器上跑着。如何启动,需要注意一些什么。另外单个机器上的梳理任务遵循从重要 -> 次要。
使用 htop 命令按照内存排序,将所有吃资源的服务先梳理出来。按照经验这些大家伙总是会占用着更多的资源,也会更加重要。
梳理的时候遇到一个小插曲,之前搭建 某3台机器上的 kafka 集群并不是我操作的。不是很清楚上面的 HA 配置情况。巧合的是当天上午因为某些奇怪的原因集群3台中的某一台挂了,我开始就默认了集群的 topic 有高可用设置,并没有特别在意。后来收到同步数据不一致的情况去看了集群配置才猛然发现完全没有设置 HA 的 topic ,每个 topic 的 partition 都只有一个副本。。。。。。 所以其中某个节点一挂, 其负责的那些 partition 中的数据就会丢失。赶紧先启动起来,并且把这个问题记录下来了。在迁移停机期间将 重要的 topic 都设置了高可用三备份。
另外在迁移 kafka 集群的时候还遇到一个问题,kafka 似乎在集群刚启动的时候会需要不少时间来同步一些信息,包括与 zookeeper 通讯之类的。当完成同步之后才能在 kafka 里面查询到 topic 和 group 相关的信息,在启动完成之前会执行 kafka 的相关命令可能会一直得不到响应,这点也需要注意一下。以下罗列最常用到的命令:
./kafka-consumer-groups.sh --bootstrap-server xxxxxxx:9092 --describe --group sync_group_20180321
./kafka-consumer-groups.sh --bootstrap-server xxxxxxx:9092 --list
./kafka-topics.sh --zookeeper xxxxx:2181 --list
./kafka-topics.sh --zookeeper xxxxx:2181 --describe
这种全部停机的迁移基本上都会放在对用户影响最少的时候来进行,例如晚上。晚上经常做事情的时候都不是很清楚了 所以我罗列了一个 checklist 单子。只要 step by step 照着这个执行,就能最大程度的保证一切按照计划和预期执行。
1. ☑️得到业务通知 数据库关机之后
Data05 06 07 上的 kafka 集群需要设置 备份为 3 份 默认分区改为 4 份。删除 topic 再重新创建 topic 为4个副本。
具体操作:
将 05 06 07 kafka config 中设置
num.partitions= 12
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
然后使用命令
./kafka-consumer-groups.sh --bootstrap-server 10.171.97.1:9092 --describe --group sync_group_20180321
观察生产消费都已经停止。
2. ☑️当得到业务通知数据库开机这边可以迁移了 开始迁移数据的机器。
3. ☑️https://ecs.console.aliyun.com/?spm=5176.2020520001.aliyun_sidebar.aliyun_sidebar_ecs.311e4bd3VY5wLr#/server/region/cn-beijing
去该地址根据标签过滤属于 data 的机器。
4. ☑️从 data01 开始预约迁移。 右侧-> 更多 -> 网络和安全组 -> 预约迁移至专用网络 一共预约 16 台机器。 08 07 10 05 02 01 04 12 03 11 yanxishe01 研习社02 研习社服务器 06
5. ☑️阿里云 Hybird for MySQL 迁移到设置到 a 区。 迁移到 redis01 可用a区
6. ☑️如果没有意外发生 等待至预约重启时间,如果有问题中断流程。
aliyun 经典网络 -> vpc 迁移完成
7. ☑️检查 Hybird for MySQL 的请求地址是否有变化 如果有变化 需要改变相关库的地址。 地址未改变
8. ☑️从 data01 开始修改机器内网 ip地址 。右侧 -> 管理 -> 停止 -> 配置信息更多 -> 修改私有 ip 地址依次操作 16 台机器
9. ☑️根据文档 https://wiki.hundun.cn/pages/viewpage.action?pageId=20659409 挂载 data 所有机器上的相关磁盘 并且修改 /etc/fstab 文件至正确 并且 check
去每台已经修改完 ip 的机器上使用命令
Fdisk -l查看需要挂载的硬盘名称。然后将该名字更新到 /etc/fstab 上并且取消注释使用命令 mount /dev/xxxx /directory 即可
mount /dev/sdb1 /data
10. ☑️优先恢复 medivh 系统正常,去 data02 上使用命令 仅启动 zookeeper 脚本 kafka 会起来
Zookeeper
启动:./zookeeper-server-start.sh -daemon /usr/share/kafka/config/zookeeper.properties
Kafka
启动:/usr/share/kafka/bin/kafka-server-start.sh -daemon /usr/share/kafka/config/server.properties
恢复 kafka 和 zookeeper 服务。
11. ☑️去 data05 06 07 上依次将 kafka 集群启动起来。
按照顺序依次启动 05 -> 06 ->07 的 zookeeper
./zkServer.sh start 启动 05 -> 06 -> 07 上的 kafka
./kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-1.0.1/config/server.properties
观察消费情况 删除 sync_aliyun 主题 并且重新创建 sync_aliyun 主题
./kafka-topics.sh --zookeeper 10.171.97.1:2181 --delete --topic sync_to_aliyun
./kafka-topics.sh --zookeeper 10.171.97.1:2181 --create --topic sync_to_aliyun --replication-factor 3 --partitions 12
12. ☑️去 data08 上恢复 该机器的 supervisor
Root 权限下 python /usr/bin/supervisord -c /etc/supervisord.conf
然后 supervisorctl 恢复上面的 消费者服务
sync_maxwell_mysql:sync_to_data08mysql start
去 data05 将其生产者启动起来
Root 权限下 python /usr/bin/supervisord -c /etc/supervisord.conf
然后 supervisorctl 将所有生产者启动起来 并且进行 线上到离线库的验证 在线 -> 离线 check 流程完成。
13. ☑️启动 data08 上的 maxwell
bin/maxwell --kafka_topic=sync_to_aliyun 生产者起起来 离线 -> 阿里云 需要 check 流程完成。
14. ☑️从 data01 开始 启动相关服务。
☑️验证相关服务。
每完成以项就打勾确认,直到你完成所有的配置项,最后再看一眼 结束。
良好的计划和对业务的梳理可以让你在服务迁移的时候更加从容。这次搬迁过程中除了启动集群的时候稍微多花了一点时间以外,其他都是完全按照计划,整个过程非常平滑。
可见一般迁移之前的准备工作如果足够充分,可以让你在实施的时候事半功倍。
从 Aliyun 经典网络迁移到 Aliyun VPC 网络的更多相关文章
- 服务器资源迁移到aliyun对象存储及oss的权限管理配置
chinasoft-download增值服务的迁移和部署 需求: 增值服务网站需要从网宿迁移到阿里云,以前的增值服务历史软件存放在服务器中需要迁移到阿里云的oss中存放 需要改造程序给程序添加一个os ...
- 青云VPC网络配置
1 创建VPC网络 2 申请公网IP 3 回到VPC图形界面绑定公网ip 4 创建私有网络,并绑定私有网络 5 创建3台主机 6 新建防火墙,并绑定到VPC 7 配置VPC端口转发规则 8 添加防火墙 ...
- 阿里云不同账号之间相同地域的VPC网络互访
今天实际操作了一下,在这篇随笔中记录一下以备忘,主要参考阿里云帮助文档-不同账号下专有网络内网互通. 实现场景:账号A的VPC网络中的ECS访问账号B的VPC网络中的ECS与RDS(地域都在华东1), ...
- 创建vpc网络
vpc相关功能点: 模块 功能点 描述 备注 VPC 创建vpc网络 创建vpc网络,指定vpc网络名称 修改vpc网络 修改vpc网络名称 删除vpc网络 删除vpc网络 vpc相关命令 ...
- NASNet学习笔记—— 核心一:延续NAS论文的核心机制使得能够自动产生网络结构; 核心二:采用resnet和Inception重复使用block结构思想; 核心三:利用迁移学习将生成的网络迁移到大数据集上提出一个new search space。
from:https://blog.csdn.net/xjz18298268521/article/details/79079008 NASNet总结 论文:<Learning Transfer ...
- 基于CentOS6.5下Suricata(一款高性能的网络IDS、IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐)
不多说,直接上干货! 为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物 ...
- 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...
- 深度残差网络(DRN)ResNet网络原理
一说起“深度学习”,自然就联想到它非常显著的特点“深.深.深”(重要的事说三遍),通过很深层次的网络实现准确率非常高的图像识别.语音识别等能力.因此,我们自然很容易就想到:深的网络一般会比浅的网络效果 ...
- 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)
reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...
随机推荐
- [matlab] 16.多约束非线性规划 ga工具箱解决 [带不等式约束]
下面举例说明如何运用GA工具箱求解多约束非线性规划问题: function f =fitness(x) f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2 ...
- 3D打印社区
http://mc.dfrobot.com.cn/forum.php?mod=forumdisplay&fid=100&filter=typeid&typeid=9
- 小技巧:改变 VS Code 工作区页面背景
效果图: 步骤(一): 1.点击页面左上角 文件/首选项/设置 2.在搜索框中输入:background 如下图. 3.找到 Background: Custom Images 选项并点击在 ...
- hdu2121 Ice_cream's world II
hdu2121 Ice_cream's world II 给一个有向图,求最小树形图,并输出根节点 \(n\leq10^3,\ m\leq10^4\) 最小树形图 对于求无根最小树形图,可以建一个虚拟 ...
- Pycharm远程调试服务器代码(使用Pipenv管理虚拟环境)
准备工作 1.随便准备一个项目工程,在本地用Pipenv创建一个虚拟环境并生成Pipfile和pipfile.lock文件,如下: 2.准备一台服务器,我这里使用阿里云的ECS SSH连接上 $ ss ...
- 典型分布式系统分析:Bigtable
本文是典型分布式系统分析的第三篇,分析的是Bigtable,一个结构化的分布式存储系统. Bigtable作为一个分布式存储系统,和其他分布式系统一样,需要保证可扩展.高可用与高性能.与此同时,Big ...
- 【vue】iView-admin后台管理系统
1.目录手册解析 2.跨域解决(axios访问服务器由于前端地址和后端地址不同源会出现跨域问题) 实例2 3.动态菜单导航+权限 4.webstorm 配置 Eslint 代码检查和自动修复
- wpf、winform仿QQ靠边隐藏
先说下下面的代码和demo是wpf的,如果winform要用,改动不大的. 实现思路: 通过定时刷新鼠标位置 和 窗体坐标 进行计算 来控制窗体的隐藏 显示 代码都有详细的注释 //窗体状态 true ...
- ML.NET 示例:推荐之矩阵分解
写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...
- Python从菜鸟到高手(6):获取用户输入、函数与注释
1. 获取用户输入 要编写一个有实际价值的程序,就需要与用户交互.当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会 ...