OpenStack 如何跨版本升级

3ec855cd35c334dad7e58603c94acab0.gif

作者 | 孙琦

来源 | 万博智云

7946e216b5a6918dafc919918d12737d.png

OpenStack是中国私有云的事实标准

根据三方统计报告,2020年,中国私有云市场规模达到951.8亿元,同比增长42.1%,私有云在国内IaaS市场占比约45%。私有云提供商有望在云计算市场持续高速发展进程中持续受益。

在中国的私有云企业排名中,以OpenStack为代表的开源技术占比70%,依然占据主流。作为全球部署最广泛的开源云基础设施软件,OpenStack经过10年的发展,在国内已经形成了稳定的以OpenStack为核心的开源云生态体系。尽管在近年来受到了容器等技术的冲击,但是在中国市场中越来越丰富、越来越成熟的用户实践案例表明,OpenStack开源云技术依然保持着足够的活力。然而随着产品版本迭代升级,各企业的私有云平台运营维护,升级改造的压力逐渐增大。

a6638f7b376332398b00d3e0bd349499.png

eeeabc37ac096d389fc933755b0da3e8.png

OpenStack为什么升级难?

虽然OpenStack目前已经成为大多数私有云的解决方案,但是做过OpenStack的人都知道,版本升级是OpenStack商业化应用最大的痛。每年两个新版本不说,随着版本升级,老旧的操作系统也不再支持,这样让用户更加不敢轻易的进行升级。虽然后续的OpenStack试图解决这个问题,但是在大多数情况下,商业版本OpenStack为了稳定,往往选择一个较为固定的OpenStack版本,持续进行迭代和优化,这样就带来和社区版本较大的差异,而无法进行升级。

之前看过360公司的一篇《横跨7个版本的OpenStack无感知热升级在360的落地与实践》,洋洋洒洒数千字描述了OpenStack升级的血泪史。对于一家技术实力积累雄厚的互联网公司尚且花费了如此大的代价,对于传统企业客户来说,这几乎就成为了心中永远的痛。在实际项目中,由于无法实现平滑升级,我们往往看到很多客户的环境部署着多套OpenStack不同版本的环境,而每一套都需要配备相应的运维团队,这就造成了客户和云平台厂商两难的尴尬局面。

“不识庐山真面目,只缘身在此山中”,大多数的解决方案专注于OpenStack本身,而今天这篇文章为大家带来一种不同视角的解决方案,从根本上解决OpenStack升级问题,无论你跨多少个版本,都可以完美的解决。

6080c006d4ff8ee812b0c19dc0a94e4f.png

如何破局?

OpenStack升不动或者不敢升本质是云平台上有业务系统运行,所以我们本质上要解决在升级过程中,业务系统连续性的问题,那么最简单的方案就是将业务系统平滑的迁移至新的云平台上,为了防止大家失去耐心读完整篇文章,我先说解决方案:

  1. 业务系统迁移过程中不中断:利用主机块级别增量迁移方式(不是OpenStack原生的Live Migration),将主机从原有云平台迁移至新的云平台;

  2. 无代理方式:市面上90%以上的迁移方案都是需要在源端安装代理,那么如果用户云主机数量过多,一台台安装代理的成本也实在太高了,对于用户来讲需要一种无代理的方式来实现云平台之间的平滑迁移;

  3. 容灾渐进式迁移:按照最小规模部署新版本OpenStack,待主机逐步迁移至新平台后,将闲置计算节点重新加入回新资源池,同时在正式割接前,业务系统可以在新的云平台上统一演练,确保业务可以正常使用,数据完整;

  4. 重建管理信息:解决了数据的问题,云平台对应的租户、网络、安全组等资源可以通过导出导入的方式在新的平台上重新构建即可。

60b5cf909d66f4ece0bce8320b3ac8a4.png

如何解决?

HyperMotion是一款基于云原生的迁移产品,基于块级别差量复制实现业务级别热迁移。在我们最初设计产品时,除了注重对云平台云原生能力的利用,还在产品中加入了“软件定义存储控制器”层,这样让HyperMotion不仅仅可以使用自身的数据流能力,还能够轻松使用开放的数据接口,从而实现云环境之间的“数据流转”。另外一方面,HyperMotion是从云端反向设计,不同于传统的灾备产品,更符合云平台管制的需求。

9259cb3023ba1f0fa28a78495aeac8f9.png

在本场景中,HyperMotion利用OpenStack接口和Ceph RBD接口实现了云主机热迁移问题,从而解决了OpenStack自身版本的困难,基本的原理如下图所示:

091b5c3f0e9ed2873898f756ecc90197.png

首先在旧版本OpenStack上,我们利用云主机构建一台源端同步代理节点,该节点一方面负责调用源端OpenStack API接口,另外一方面负责与Ceph RBD进行通讯,读取块级别差量数据。这种方案下,对于源端的网络有一定的要求,需要源端同步代理节点能够同时访问源端同步代理及Ceph存储网络。

2bb7eedbcc7d49327efca6dfdc36a5f7.png

每次同步时,为了不破坏OpenStack自有的管理体系,每一次的快照要从OpenStack层面进行调度,之后再去Ceph层读取数据,这样就不会产生垃圾数据。待数据读出后,通过加密、压缩等手段传输到目标平台。

9d67e41b68172af751b10d9991efc20f.png

在目标平台上,我们需要利用云主机资源再建立一台同步代理,用于接收数据。接收的数据并不直接写入Ceph中,而是利用云主机直接写入Cinder的磁盘中,这样做的目的仍然是符合OpenStack管制的需求。

3e1db127d32b748cf9ae8e7dd875894e.png

每次写入完成后,利用Cinder快照机制,固化时间点数据,这样我们可以在正式割接前,进行反复的迁移演练,保证业务系统割接后能够正常使用。

88ac856c793f510a9044b974f7d9bbf0.png

最后,在割接窗口期,将最后的增量补全后,利用HyperMotion与OpenStack API的深度对接,按照指定规格同时指定IP地址进行启动,完成割接。

一句话总结一下,通过无代理,渐进式迁移,解决OpenStack版本升级过程中的业务连续性问题,是我们在大量私有云迁移实践中总结的一条行之有效的路径,给大家分享。

208faa6df9df428fb94fbd692e83cfb1.gif

往期推荐

从 40% 跌至 4%,“糊”了的 Firefox 还能重回巅峰吗?

Gartner 发布 2022 年汽车行业五大技术趋势

别再用 Redis List 实现消息队列了,Stream 专为队列而生

漫画:什么是“低代码”开发平台?

28d0024117cc1db0b8b2a19cc8cfed53.gif

点分享

88e21afe80749dffd0efa568d7ebf420.gif

点收藏

394a0d74f42f416973f4775e8ce3d9eb.gif

点点赞

fce627312162ac9ae3351e468d2c3e32.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流计算引擎数据一致性的本质

简介: 本篇文章从流计算的本质出发,重点分析流计算领域中数据处理的一致性问题,同时对一致性问题进行简单的形式化定义,提供一个一窥当下流计算引擎发展脉络的视角,让大家对流计算引擎的认识更为深入,为可能…

java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?

原标题:Java的IO流之字节流,必须要学得内容,你会嘛?伙伴们~端午节过的如何呀~有没有很开心呀~假期已过咱们继续开动了IO流先来认识一下IO流:IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式…

为什么大家都在抵制用定时任务实现「关闭超时订单」功能?

作者 | 阿Q来源 | 阿Q说代码前几天领导突然宣布几年前停用的电商项目又重新启动了,让我把代码重构下进行升级。让我最深恶痛觉的就是里边竟然用定时任务实现了“关闭超时订单”的功能,现在想来,哭笑不得。我们先分析一波为什么大家都在抵制用…

面对疾风吧,如何搭建高协同的精准告警体系?

简介: 想要实现AiOps,智能告警少不了。Arms 告警运维中心让面向告警的组织协同更加便捷高效! 作者|九辩 世上没有一个系统是百分之百尽善尽美的。如果想要保证可用性,那么技术团队就得对服务的各种状态了如指掌&…

KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点

简介: 10 月 16 日上海,OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环境和企业需求下,有关“云原生应用管理”的那些事儿。 随着云原生关注…

Redis 究竟适不适合当队列来用?

‍作者 | Magic Kaito来源 | 水滴与银弹我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便。也些人则反对,认为 Redis 会「丢」数据,最好还是…

EDA 事件驱动架构与 EventBridge 二三事

简介: 事件驱动型架构 (EDA) 方兴未艾,作为一种 Serverless 化的应用概念对云原生架构具有着深远影响。当我们讨论到一个具体架构时,首当其冲的是它的发展是否具有技术先进性。这里从我们熟悉的 MVC 架构,SOA 架构谈起&#xff0c…

如果被问到分布式锁,应该怎样回答?

作者 | tech-bus.七十一来源 | 程序员巴士说到锁,在平时的工作中,主要是使用synchronized关键字,或者相关的一些类库来实现同步,但这都是基于单机应用而言的,当我们的应用多实例部署时,这时候就需要用到分布…

工业视觉智能实战经验之IVI算法框架2.0

简介: 工业视觉智能团队在交付了多个工业视觉智能质检项目后,发现了工业视觉智能的共性问题和解法,打造了工业视觉智能平台,通过平台的方式积累和提升工业视觉的通用能力。在平台建设上最核心的能力是算法能力。算法能力包括不断增…

技术干货 | jsAPI 方式下的导航栏的动态化修改

简介: 操作指导:通过 jsAPI 实现导航栏的动态修改。 很多开发同学在接入 H5 容器后都会对容器的导航栏进行深度定制,除了 Native 的定制化之外,还有很多场景是使用到 jsAPI 的方式,通过 jsAPI 实现导航栏的动态修改。 …

Gartner:企业机构需重新定义网络安全领导者角色

编辑 | 宋慧 供稿 | Gartner 根据Gartner的最新调查,由于网络风险责任已被转移到IT以外,并且日益分散的生态系统导致网络安全领导者正在失去对决策的直接控制权,企业机构需要重新定义网络安全领导者的角色。 如今,安全和风险管理…

成本直降50%,下一代网关震撼发布

简介: 在容器和K8s主导的云原生时代,网关的新形态变得逐渐清晰,阿里内部也孵化出了下一代的网关产品 - 云原生网关,已在支付宝、淘宝、优酷、口碑等业务成功上线,并且经历了2020双11大促海量请求的考验,目前…

备战“双11”,阿里云为企业提供一站式资源保障服务

简介: 阿里云弹性计算将上线资源保障服务,通过智能化资源诊断、推荐、资源预定及授权候补为用户提供一站式自助化资源保障服务,兼顾灵活,经济的同时还能获得时刻的确定性保障,为业务顺畅前行保驾护航。 报名体验资源保…

快速上手 Serverless | 入门第一课

简介: 本文从云计算抛砖引玉,详解 Serverless 的典型应用场景和一些产品介绍。 一、 从云计算到 Serverless 自世界上第一台通用计算机 ENIAC (图左)诞生以来,计算机科学与技术的发展就从未停止过前进的脚步。2003年-2006年,谷歌…

钉钉宜搭邵磊:钉钉宜搭低代码加速业务互联 让改变发生

简介: 近日,在2021“低代码技术发展与应用线上研讨会”上,钉钉宜搭产品总监邵磊带来了“钉钉宜搭低代码加速业务互联 让改变发生”的主题演讲,详细介绍了钉钉宜搭低代码产品的六大互联能力。 宜搭是今年1月份正式上线到钉钉&…

Cloudera发布全球企业数据成熟度报告,混合云趋势中有效数据战略是关键

编辑 | 宋慧 出品 | CSDN云计算 2022年3月初,企业数据云公司Cloudera近日发布与技术市场研究公司Vanson Bourne联合编写的全球企业数据战略研究报告,报告分别洞察了数据的使用和价值、企业数据战略、企业数据发展趋势、企业业务计划四大部分的内容&…

基于海量日志和时序数据的质量建设最佳实践

简介: 在云原生和DevOps研发模式的挑战下,一个系统从开发、测试、到上线的整个过程中,会产生大量的日志、指标、事件以及告警等数据,这也给企业质量平台建设带来了很大的挑战。本议题主要通过可观测性的角度来讨论基于海量日志和时…

阿里云RDS深度定制-XA Crash Safe

简介: 近几年,随着分布式数据库系统的兴起,特别是基于MySQL分布式数据库系统,会用到XA来保证全局事务的一致性。众所周知,MySQL对XA事务的支持是比较弱的,存在很多问题。为了满足分布式数据库系统对XA事务的…

java集合表_java集合类散列表

哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。…

庖丁解牛|图解 MySQL 8.0 优化器查询转换篇

简介: 本篇介绍子查询、分析表和JOIN的复杂转换过程 一 背景和架构 在《庖丁解牛-图解MySQL 8.0优化器查询解析篇》一文中我们重点介绍了MySQL最新版本8.0.25关于SQL基本元素表、列、函数、聚合、分组、排序等元素的解析、设置和转换过程,本篇我们继续…