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

news2024/9/22 15:29:50
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: root
         password: password
       keystone:
         username: keystone
         password: password
     hosts:
       default: svc-openstack
     path: /keystone
     scheme: mysql+pymysql
     port:
       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.coloradmin.cn/o/2122546.html

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

相关文章

西门子博途零基础学PLC必会的100个指令

#西门子##PLC##自动化##工业自动化##编程##电工##西门子PLC##工业##制造业##数字化##电气##工程师# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

MATLAB求解0-1线性规划问题的详细分析

引言 0-1线性规划是整数规划中的一种特殊形式,它广泛应用于资源分配、工厂选址、投资组合优化、物流运输等多个领域。0-1线性规划的特点是,决策变量只能取0或1的离散值,通常用于描述“是-否”决策问题。随着计算机技术的发展,数学…

红日靶机(一) 笔记

红日靶机(一)笔记 概述 域渗透靶机,可以练习对域渗透的一些知识,主要还是要熟悉 powershell 语法,powershell 往往比 cmd 的命令行更加强大,而很多渗透开源的脚本都是 powershell 的。例如 NiShang,PowerView 等等。…

料品档案没有配置主供应商信息

这个问题经常会出现在普通用户的面前。没有合适的工程人员去打理料品档案。信息是缺漏的。用友给出来的提示,也让人摸不着头脑。只能是记下来备用吧。

Ai+若依(集成easyexcel实现excel表格增强)

EasyExcel 介绍 官方地址:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一…

Web3 项目安全手册

现如今针对 Web3 项目的攻击手法层出不穷,且项目之间的交互也越发复杂,在各个项目之间的交互经常会引入新的安全问题,而大部分 Web3 项目研发团队普遍缺少的一线的安全攻防经验,并且在进行 Web3 项目研发的时候,重点关…

JavaWeb中处理 Web 请求的方式总结

文章目录 JavaWeb中处理 Web 请求的方式总结1. 原始的 Servlet 方式1.1. 环境搭建**创建 Maven 或 Gradle 项目**:**添加 Servlet 依赖**:**创建 Servlet 类**:**配置项目**:**配置 Tomcat**: 1.2. 路由机制1.3. 示例代…

[产品管理-4]:NPDP新产品开发 - 2 - 制定企业经营战略目标的结构化方法与工具

目录 一、SWOT分析工具 1、SWOT分析工具概述 2、SWOT分析与企业战略目标制定的关系 3、SWOT分析在企业战略目标制定中的应用实例 4、SWOT分析的改进与应用建议 二、P E S T L E 分 析:外部环境分析 2.1 概述 1. 政治因素(Political) …

2024第三届大学生算法大赛 真题训练3 解题报告 | 珂学家

前言 题解 C. 洞穴探险 题目描述: 简单来说,就是 在一个无向图中,两个点之间关系 (存在多条简单路径,一条简单路径,不联通), 请判断两点之间的关系。 思路: 并查集 tarjan割边 对于通联和非联通&#x…

Java学习Day41:手刃青背龙!(spring框架之事务)

1.spring事务概念 在数据层和业务层保证一系列数据库操作原子性成功失败!(相比事务可以在业务层开启) 1.事务定义:关键字:Transactional(一般写在接口上) 2.事务管理器:在JdbcCon…

vscode ssh离线远程连接ubuntu调试

遇见问题: 1 ssh连接上无法启动服务器的虚拟环境; 2 ssh连接上启动服务器的虚拟环境后无法打断点; 对于问题需要参考下面连接安装python和debugy的插件拓展,并且配置json文件link。VSCode - 离线安装扩展python插件教程_vscode…

web 自动化测试框架 TestCafe 安装和入门使用

一、TestCafe 介绍: TestCafe 是一款基于 Node.js 的端到端 Web 自动化测试框架,支持 TypeScript 或 JavaScript 来编写测试用例,运行用例,并生成自动化测试报告。 TestCafe 兼容 Windows,MacOS 和 Linux 系统&#x…

基于C++实现(控制台+界面)通讯录管理系统

个人通讯录管理系统 问题描述: 主要内容: 个人通讯录是记录了同学(包含一起上学的学校名称)、同事(包含共事的单位名称)、朋友(包含认识的地点)、亲戚(包含称呼&#…

国家级|加速科技成功入选国家级专精特新“小巨人”企业

9月6日,浙江省通过的第六批专精特新“小巨人”企业名单在省经济和信息化厅官网完成公示,经过严格评审,杭州加速科技有限公司正式获国家级专精特新“小巨人”企业认定。 专精特新”小巨人”企业具备专业化、精细化、特色化、新颖化特征&#x…

“我”变小了但更强了!英伟达发布最新大语言模型压缩技术,无损性能且提升数倍!

1. 摘要 英伟达研究团队提出了一份全面报告,详细介绍了如何使用剪枝和蒸馏技术将Llama 3.1 8B和Mistral NeMo 12B模型分别压缩至4B和8B参数。他们探索了两种不同的剪枝策略:深度剪枝和联合隐藏/注意力/MLP(宽度)剪枝。 研究人员…

Adoptium Temurin JDK 的下载

在当今的软件开发领域,Java 无疑是最受欢迎和广泛使用的编程语言之一。Java 开发工具包(JDK)是任何 Java 开发者不可或缺的工具,它提供了编译、调试和运行 Java 应用程序所需的所有工具和库。Eclipse Temurin 是一个流行的开源 JD…

网络药理学:分子动力学模拟入门、gromacs能量最小化

推荐视频 B站: 讲的都是有效的概论,其中关于分子动力学模拟归纳的三步挺有用的。 B站:也没有讲清楚关于分子对接后得到的文件该如何处理。 B站: 需要用的是autodock vina,而且走过一遍up主之前分子对接的视频才比较…

mysql笔记3(数据库、表和数据的基础操作)

文章目录 一、数据库的基础操作1. 显示所有的仓库(数据库)2. 创建数据库注意(命名规范): 3. 删除数据库4. 查看创建数据库的SQL5. 创建数据库时跟随字符编码6. 修改数据库的字符编码 二、表的基础操作1. 引入表的思维2. 引用数据库3. 查看该数据库下面的表4. 创建表…

终端安全如何防护?一文为你揭晓答案!

终端安全防护是确保组织内部网络及其连接设备免受威胁的关键措施。 以下是终端安全防护的一些核心方法: 1. 资产管理与识别 摸清家底:识别所有连接到网络的终端设备及其状态,包括硬件和软件配置。 资产分类:确定哪些资产最为关…

华三(H3C)HDM服务器硬件监控指标解读

在当今日益复杂的IT环境中,服务器的稳定运行对于保障业务的连续性至关重要。华三(H3C)作为知名的网络设备供应商,其HDM(Hardware Diagnostic Module)技术为服务器硬件的监控提供了强有力的支持。监控易作为…