OpenStack × OceanBase: 打造高可用可扩展的基础设施平台

OceanBase 社区资深总监封仲淹在9月3日参加 OpenInfra 亚洲峰会中,分享了OceanBase与OpenStack的联合解决方案。本文将介绍这一联合方案的技术亮点及其为用户带来的独特价值。

OpenStack长期以来一直是云计算领域的先行者,通过提供强大的开源平台,助力云基础设施的构建与管理。其模块化架构设计,赋予了厂商在公有云和私有云环境中高效管理网络资源、计算及存储的能力。OpenStack的灵活性及其广泛的社区支持,使其成为众多企业部署可扩展云基础设施时的首选方案。

众所周知,数据库对任何软件系统都至关重要,对于 OpenStack,通常使用 MySQL 提供数据库服务,可以在大部分场景下稳定可靠的运行。然而,随着业务增长到一定规模,为了满足性能需求,通常需要额外的方案,例如数据分片。此外,由于 OpenStack 作为云基础设施,确保其高可用至关重要。基于 MySQL 实现高可用方案通常会涉及专业的配置和额外的工具,如 Galera 集群,这可能会引入额外的复杂性和运维负担,从而影响 OpenStack 整体效率和可靠性。

OceanBase 是由蚂蚁集团开发的分布式关系型数据库,旨在为高度分布式环境中的现代大规模应用提供云原生高性能数据库解决方案。它提供了原生的高可用和可扩展特性,无需依赖外部工具或复杂的配置。OceanBase 在 TPC-C 和 TPC-H 两项基准测试中均打破了世界纪录,展示了其在处理复杂事务和分析工作负载方面的卓越性能。除了技术成就之外,OceanBase 的能力也在实际场景中得到验证,已经为超过 1,000+ 家各行各业客户提供数据库服务,充分证明了 OceanBase 在可靠性、可扩展性和支持关键任务应用的能力。其云原生架构也确保了可以与 OpenStack 等下一代云平台的无缝集成,使其成为一个简化、弹性、可扩展且高性能的数据库解决方案。

OceanBase 的分布式特性恰好满足了 OpenStack 对数据库系统可用性和扩展性的需求,是为 OpenStack 提供数据库服务的理想选择。使用 OceanBase,厂商不仅能够减轻数据库运维负担,也能提高整个 OpenStack 平台的性能和稳定性。随着云原生技术成为现代 IT 运维管理的趋势,将 OpenStack 和 OceanBase 部署在 Kubernetes 上也代表着构建新一代云基础设施的形态。

1. 如何使用 OceanBase 为 OpenStack 提供数据库服务

OpenStack 架构

首先,我们简要介绍一下 OpenStack 的架构。OpenStack 由多个互联的组件组成,每个组件负责云基础设施管理的不同方面,如计算、存储和网络。这些组件中的每一个都有自己的数据库来存储状态数据、配置和元数据。这些数据的完整性和处理性能对 OpenStack 生态系统的整体功能和可靠性至关重要。

1725507550

OceanBase 架构

OceanBase 专为解决大规模分布式系统中的高可用性和可扩展性挑战而设计。一个典型的 OceanBase 集群跨越三个可用区(zone),每个可用区包含多个存储数据副本的节点。OceanBase 使用 Paxos 共识协议来维持这些副本之间的数据一致性,确保数据在返回提交成功之前,已经成功同步到多数节点上,从而提供强一致性和容错能力。

此外,OceanBase 引入了多租户架构,实现数据隔离和资源高效管理。在 OceanBase 中,租户可以视为虚拟 MySQL 实例。租户中的数据通常是分区的,这些分区的 leader 可以分布在不同的服务器上。可以使 OceanBase 能够充分利用所有可用服务器的处理能力,从而提升整体系统性能。

1725507560

为了高效管理和路由 OceanBase 集群中的请求,我们引入了 OBProxy。OBProxy 是一个轻量级的无状态的代理服务器,可以将请求路由到集群中最合适的 observer 节点来处理。它会先解析 SQL 请求,将其路由到相关表分区的 leader 节点,可以确保数据的强一致性。由于 OBProxy 本身是无状态的,可以通过在负载均衡服务后面部署多个实例轻松实现扩展和高可用。

上述图片展示了 OceanBase 集群和通过负载均衡服务提供服务的 OBProxy 的简单示意图,在应用的视角可以将所有这些组件整体视为提供数据库服务的统一组件。

OceanBase 兼容 MySQL 协议,无需修改 OpenStack 代码即可使用 OceanBase。使用 OceanBase 作为数据库服务的架构如下图所示:

1725507597

基于 OceanBase 部署 OpenStack:

要使用 OceanBase 提供数据库服务,只需要配置 OpenStack 各个组件的数据库服务地址为 OceanBase。例如,keystone 组件需要覆盖的配置如下:

endpoints:oslo_db:auth:admin:username: rootpassword: passwordkeystone:username: keystonepassword: passwordhosts:default: svc-openstackpath: /keystonescheme: mysql+pymysqlport:mysql:default: 2883  

其他组件,一般情况只需要对应的更新 oslo_db 配置。对于 Nova,还需要替换 oslo_db、oslo_db_api 和 oslo_db_cell0 的相关配置。详细说明,请参阅 OpenStack 部署文档。

部署 OceanBase:

通过 ob-operator 在 Kubernetes 中部署 OceanBase 非常简单直接。只需要创建以下资源:

·       OceanBase 集群: 定义一个集群,包含三个 obzone,每个 obzone 至少一个 observer。

·       OceanBase 租户: 定义一个租户,具有三个副本分布在三个 obzone 上。

·       ObProxy 部署: 部署至少两个副本的 ObProxy 和一个服务来路由请求。

详细配置可以在查看这里。

2. 高可用特性 (HA)

OpenStack 使用 OceanBase 作为数据库服务,随即即可获得高可用(HA)能力。OceanBase 依靠分布式架构提供原生的高可用能力,极大程度减少了操作复杂性,提高了可靠性。高可用特性的实现基于 Paxos 共识协议,是一种经过验证的数据一致性确保方法。Paxos 需要节点之间的多数票来达成任何数据更改的共识,这确保了即使某些节点失败,系统仍然保持一致和运行。例如,如果 OceanBase 集群中的一个节点离线,Paxos 确保剩余节点可以继续处理事务而不会丢失数据。这使 OceanBase 能够容忍硬件故障、网络分区和其他潜在干扰。OceanBase 能够在发生故障时自动切换 leader,OBProxy 可以检测到这种变化并无缝地将请求路由到新的 leader。这个过程完全自动化,无需手动干预,可以确保在 OceanBase 上运行的应用程序无中断地继续运行。

1725507649

ob-operator 在 OceanBase 的故障恢复过程中启动关键的作用,使 OceanBase 的高可用能力更近一步,不仅能在故障时持续提供服务,更能实现自动故障恢复。ob-operator 为 observer 维护固定的 IP 地址,确保在 Pod 失败时能够快速的使用相同的 IP 拉起新的 Pod,能够最大限度的减少停机时间,在存储数据完整的情况下,新的 Pod 能够直接挂在现有的存储,在分钟级时间即可恢复。即使在多数派的 Pod 发生故障时,只要数据仍然是可以访问的,OceanBase 仍然可以恢复服务。

1725507664

对于 OpenStack 而言,使用 OceanBase 的好处显而易见,OceanBase 能够自动管理节点故障并以最小干预进行恢复,使 OpenStack 无需繁琐的配置即可确保 OpenStack 基础设施安全可靠,为用户提供不间断的云服务。

有关 OceanBase 其他高可用特性的详细介绍,包括备份、恢复和备用租户的详细说明,请参阅 高可用文档。

3. 可扩展性和性能

可扩展性是 OceanBase 另一个核心优势,可以增加 OpenStack 的灵活性。与传统数据库不同,在处理高负载时,OceanBase 的分布式架构能够通过水平扩展轻松应对,不会成为系统的瓶颈。只需要添加更多节点到集群中,OceanBase 即可无感的扩展其处理能力和存储容量。

OceanBase 通过以下几种策略来实现动态扩展,OceanBase 会对数据分区存储,可以有效防止单一节点成为瓶颈,当新节点加入集群时,OceanBase 会自动的做负载均衡,能够自动迁移数据达到平衡的状态,使整个系统的性能得到最大程度的发挥。

OceanBase 支持实时动态调整租户的 CPU 和内存以及存储资源,能够在负载频繁变化时快速响应,这种特性在云环境中至关重要,管理员可以随时快速的根据负载调整资源。

扩容 OceanBase 集群非常容易,举个例子来说,一个典型的 3 个 zone 的集群,每个 zone 有一个 observer,当负载增长时,管理员可以扩容每个 zone 的 observer 数量到 2 个,只需要简单的修改集群资源 spec 定义中每个 zone 的 replica 即可实现。

1725507686

扩容 observer 之后,进一步的将租户的 unitNum 修改成 2,即可获得双倍的处理能力。

1725507713

基于 OceanBase 的可扩展性,OpenStack 可以轻松支持大规模应用和快速增长的业务需求,也证明 OceanBase 是作为 OpenStack 数据库服务的理想解决方案。

有关 OceanBase 可扩展性的详细介绍,包括租户管理和动态资源调整等内容,请参阅 租户管理文档。

4. 总结

OceanBase 为 OpenStack 提供了极致的高可用性和可扩展性数据库服务。其云原生架构、原生 HA 机制和方便的可扩展性与现代云基础设施完美契合。通过将 OceanBase 作为数据库层集成到 OpenStack 中,来构建下一代解决方案,可以轻松应对当今以云为中心的场景中大规模、灵活性和稳定性的挑战,厂商可以显著提高其云环境的弹性和性能,降低运维复杂性,同时提高服务可靠性。

如上所示,在 OpenStack 环境中部署 OceanBase 非常简单,在高可用和可扩展性方面带来的好处是显而易见的。 随着云原生技术的不断发展,OpenStack 和 Kubernetes 上的 OceanBase 的结合也代表了一种具有前瞻性的构建强大、可扩展且有弹性的云基础设施的方法。对于希望未来的 IT 运营企业来说,OceanBase 提供了一种强大且易于实施的解决方案,增强了 OpenStack 的关键特性,使其成为云计算领域重要的力量。

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

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

相关文章

前端正确设置资源上下文路径ContextPath(发布目录outDir 、公共基础路径),保证打包部署后站点能正常加载资源。

文章目录 引言I 处理资源上下文路径ContextPathjavascript对象获取上下文路径使用`./` 加载资源文件Vite 的basepublicPath是webpack部署应用包时的基本 URLII 知识扩展:URL的识别2.1 标准的链接格式2.2 URL中的?涵义2.3 URL中的&涵义2.4 传参III #fragment3.1为网页位置…

圆锥曲线练习

设 A ( x 1 , y 1 ) , B ( x 2 , y 2 ) A\left( x_{1}, y_{1} \right), B\left( x_{2}, y_{2} \right) A(x1​,y1​),B(x2​,y2​) l : y k ( x 2 ) l: y k\left( x2 \right) l:yk(x2) 显然 y 0 y0 y0符合题意 当 k ≠ 0 k\neq 0 k0 联立 l l l和 C C C ( k 2 1 2 ) x…

shader 案例学习笔记之偏移

效果 代码 #ifdef GL_ES precision mediump float; #endifuniform vec2 u_resolution; uniform float u_time;vec2 brickTile(vec2 _st, float _zoom){_st * 5.;_st.x step(1., mod(_st.y,2.0)) * 0.5;return fract(_st); }float box(vec2 _st, vec2 _size){_size vec2(0.5)…

【软考中级攻略站】-软件设计师(5)- 软件工程

软件生存周期 什么是软件生存周期? 软件生存周期指的是一个软件从开始构思到最终停止使用(或被替换)的整个过程。就像人的生命一样,软件也有一个从出生到死亡的过程。 软件生存周期的几个阶段 软件生存周期通常可以分为以下几…

DAY13信息打点-Web 应用源码泄漏开源闭源指纹识别GITSVNDS备份

#知识点 0、Web架构资产-平台指纹识别 1、开源-CMS指纹识别源码获取方式 2、闭源-习惯&配置&特性等获取方式 3、闭源-托管资产平台资源搜索监控 演示案例: ➢后端-开源-指纹识别-源码下载 ➢后端-闭源-配置不当-源码泄漏 ➢后端-方向-资源码云-源码泄漏 …

苹果宣布iOS 18正式版9月17日推送:支持27款iPhone升级

9月10日消息,在苹果秋季发布会结束后, 苹果宣布将于9月17日(下周二)推送iOS 18正式版系统。 苹果官网显示,iOS 18正式版将兼容第二代iPhone SE及之后的所有机型,加上刚发布的iPhone 16系列,共兼容27款iPhone。 iOS 18升…

算法学习攻略总结 : 入门至进阶,通关之路指南

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

UE中如何制作后处理设置面板

1&#xff09;UE中如何制作后处理设置面板 2&#xff09;Magica Clothes 2插件与Burst编译问题 3&#xff09;UI大小和文本变量 4&#xff09;如何检索直线与网格的所有交点 这是第399篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答、社…

机械面试常见问题

文章目录 1.机械设计的一般思路&#xff08;方法&#xff09;2.公差等级有多少种3.机械传动的方式有哪些&#xff1f;选择的时候要考虑哪些问题&#xff1f;1. 齿轮传动2. 带传动3. 链传动4. 摩擦传动5. 螺旋传动6. 液压传动7. 气压传动8. 电磁传动总结 4.什么是宽禁带半导体&a…

4.1 符号定义伪指令

&#x1f393; 微机原理考点专栏&#xff08;通篇免费&#xff09; 欢迎来到我的微机原理专栏&#xff01;我将帮助你在最短时间内掌握微机原理的核心内容&#xff0c;为你的考研或期末考试保驾护航。 为什么选择我的视频&#xff1f; 全程考点讲解&#xff1a;每一节视频都…

【小沐学OpenGL】Ubuntu环境下glew的安装和使用

文章目录 1、简介1.1 OpenGL简介1.2 glew简介 2、安装glew2.1 命令安装glew2.2 直接代码安装glew2.3 cmake代码安装glew 3、测试glew3.1 测试glewfreeglut3.2 测试glewglfw 结语 1、简介 1.1 OpenGL简介 Linux 系统中的 OpenGL 是一个跨语言、跨平台的应用程序编程接口&#…

【C++】STL容器-string的遍历

1.引言 C STL&#xff08;Standard Template Library&#xff09;作为C标准库的核心部分&#xff0c;其重要性不言而喻。它提供了一系列高效、灵活且可复用的数据结构和算法&#xff0c;极大地提升了开发效率&#xff0c;并使得代码更加易于阅读和维护。 在STL中&#xff0c;…

根据NVeloDocx Word模板引擎生成Word(四)

前面介绍了《E6低代码开发平台》的Word模版引擎NVeloDocx&#xff0c;实现了表单的基本字段、子表、单张图片、二维码、条形码怎么基于NVelocity脚本输出到Word文件&#xff0c;都是些比较简单且常用的需求。 本篇介绍怎么基于NVeloDocx在Word中插入图表&#xff0c;目前只支持…

模型训练如何实现自动化输出评估报告、模型、特种平台

模型训练如何实现自动化 1、目标 把对文本分类【体育,教育,娱乐,经济,文学,政治】的模型实现自动化训练。 分类器:贝叶斯、支持向量机、梯度提升、随机森林、逻辑斯蒂回归 通过预设的准确率期望值与训练轮数,获取最优的分类器模型,当模型评估的准确率大于期望值时即…

算法基础-快速幂

(a b) % p (a % p b % p) % p (a - b) % p (a % p - b % p) % p (a * b) % p (a % p * b % p) % p (a ^ b) % p ((a % p)^b) % p 快速幂 3^10 10 1010 2^2 2^3 3^10 3 * 2^2 3 * 2^3 3^4 3^8 a a * a > a a^2 a^4 a^8 所以当 b & 1 1 时&#xff…

建造者模式builder

此篇为学习笔记&#xff0c;原文链接 https://refactoringguru.cn/design-patterns/builder 能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象

2024.9 学习笔记

目录 9.10 1.大地坐标系 2.地球坐标系 3.局部坐标系 4.世界坐标系 5.IMU 6.GPS 9.11 1.SGM算法 步骤 优点与缺点 应用 2.ISP 核心任务 9.12 1.双立方插值 9.10 1.大地坐标系 大地坐标系&#xff08;Geodetic Coordinate System&#xff09;: 定义: 基于地球…

利用数据分析提升SEO排名的7种方法

我们都听过“大数据分析”这个词。科技让我们能够清晰地了解我们的活动和内容的表现——向我们提供了关于受众的宝贵信息&#xff0c;甚至可以精确到他们在Google和其他搜索引擎上使用的具体搜索词。 你已经在你的业务中使用数据分析了吗&#xff1f;如果是&#xff0c;你有利…

CCF推荐C类会议和期刊总结:(计算机网络领域)

CCF推荐C类会议和期刊总结&#xff08;计算机网络领域&#xff09; 在计算机网络领域&#xff0c;中国计算机学会&#xff08;CCF&#xff09;推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结&#xff0c;包括全称、出版社、dblp文献网…

基于SpringBoot+Vue的古诗词学习软件系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的古诗词学…