AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Openstack Trove 在奇云上的实践

  • 2019-11-14
  • 本文字数:1259 字

    阅读完需:约 4 分钟

Openstack Trove在奇云上的实践

Openstack Trove 是 Openstack 为用户提供的数据库即服务。Trove 允许用户快速又简单的使用关系型或非关系型数据库,不需要有处理复杂管理任务的负担。在实际使用中,原生的 Trove 在创建主从模式数据库实例,如 RDS/Redis 时,需要先单独创建一个主实例,再创建一个该实例的副本,才能建立好主从关系,需要两步操作。同时在实例里,用户私有网络需要与管理网络互通,有很大的安全隐患。本文将介绍奇云在创建主从模式数据库实例上,对 Trove 做了哪些改造。

Trove 简介

Trove 能完全运行于 Openstack 中,Trove 与 Openstack 其他组件通过 Restful API 来交互。其中最主要的部分,Trove 在 Nova 中创建包含 trove-guestagent 和数据库程序的虚机,Trove 所使用的镜像存放在 Glance 中, Neutron 为 Trove 分配所要的网络信息,同时 Trove 依赖 keystone 与其他组件通信。



Trove 自身包含的组件通过消息队列来通信,它们可以运行在不同的服务器上。Trove 主要由下面这些组件组成。


  • API Server

  • Message Bus

  • Task Manager

  • Guest Agent

  • Conductor


Trove-api 服务对外提供创建和管理实例等 Restful API 接口,支持 Json 和 Xml 格式。Trove-api 将复杂的异步任务交给 trove-taskmanager 来处理,对于简单任务,Trove-api 也可以直接与 Trove-guestagent 通信。


Trove-taskmanager 服务主要是做一些重的任务,比如创建实例,管理实例的生命周期,对数据库实例执行一些操作等


Trove-guestagent 服务运行在每一个客户实例中,监听消息队列的消息,负责管理数据库和对数据库执行相应操作,


Trove-conductor 运行在主机上,接收从客户实例发送来的消息。

Trove 相关概念

Instance:数据库实例,一个包含数据库程序的 Openstack 虚机


Replica instance:数据库副本实例,创建时需要指定从属于哪个主实例


Datastore/Dastastore version:用来表示和存储数据库的类型、版本、对应虚拟机镜像等信息。当用户创建一个数据库实例时需要指定 Datastore 和版本

Trove 在奇云中的实践

系统架构


奇云基于原生 Mitaka 版的 Trove,结合自身需要,做了很多改造,增加了自动备份服务 Trove-backup,存活监控服务 Trove-monitor, 优化了主从切换,实例扩容,参数配置等操作,在这里不进行一一详述。下面主要讲述奇云在创建主从模式的数据库实例,例如 RDS/Redis,做了哪些操作。

创建主从模式的实例

奇云 Trove 支持一个 API 创建请求创建出主从两个实例,两个实例分属于两个物理集群(master/slave),之后再关联好主从关系,这样主从实例就可以正常使用了。实例虚机内包含两块网卡,管理网卡可与管理网络通信,而与用户数据网络隔离,并且用户数据网络增加一个服务 IP(VIP),便于主从切换的实现。下图所示是奇云 Trove 在创建 RDS 实例的过程,该网络交互过程是在虚机分配的管理网卡上。


主从切换

用户通过 VIP 来访问数据库实例,当主节点宕机或不可用时,管理员可以进行主从切换,切换节点角色,把 VIP 切换到从节点上,保证服务的可用性。



本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/oloafWaDFTJRIG9IHxcN3A


2019-11-14 18:481416

评论

发布
暂无评论
发现更多内容

零基础学Java第一节(语法格式、数据类型)

编程攻略

java 5月月更

String基础整合

工程师日月

java 5月月更

Go Web 编程入门:Go pongo2 模板引擎

宇宙之一粟

Go web Go 语言 模板 5月月更

FinClip小程序+Rust(二):环境搭建

Speedoooo

rust 前端框架 小程序容器

FinClip小程序+Rust(五):用内联SVG实现二维码

Speedoooo

rust 前端框架 小程序容器

你中奖了吗?低代码开发师(高级)认证中奖名单揭晓啦!

一只大光圈

钉钉宜搭

源码分析 Flutter 的 setState 过程

岛上码农

flutter ios 前端 跨平台开发 5月月更

先进数据中心背后,“东数西算”的三重意志

脑极体

三种常见的 Mac 安装 git 工具的方法

liuzhen007

git git 学习 5月月更

ABBYY2022全新版PDF文字识别功能

茶色酒

FinClip小程序+Rust(四):端到端融合

Speedoooo

rust 前端框架 小程序容器

FinClip小程序+Rust(三):一个加密钱包

Speedoooo

rust 前端框架 小程序容器

FinClip小程序里如何安全使用SVG

Speedoooo

rust SVG 前端框架 小程序容器

宠物类自媒体运营心得:如何才能拍得更有创意

石头IT视角

druid 源码阅读 6——如何实现断链重连的?

张大彪

AIrserver2022手机软件无线投屏电脑屏幕

茶色酒

AirServer

druid源码学习六

Nick

jdk JMX Druid

设计模式之装饰器模式

乌龟哥哥

5月月更

FFmpeg介绍

Loken

音视频 5月月更

Kubernetes下web服务的性能测试三部曲之三:横向扩容

程序员欣宸

Java Kubernetes 5月月更

学生管理系统(5)

5月月更

Druid 连接池源码阅读 06

石小天

druid 源码阅读(七)Druid Filter 介绍

爱晒太阳的大白

5月月更

飞书将于5月25日举行春季发布会 同步推出全新项目管理产品

陈泽涛

飞书 飞书项目

企业架构如何促进创新?

涛哥 数字产品和业务架构

企业架构

FinClip小程序+Rust(一):夹心饼架构

Speedoooo

rust 前端框架 小程序容器

Qt软件开发_解决中文路径无法识别问题

DS小龙哥

5月月更

OpenMLDB v0.5.0 发布 | 性能、成本、灵活性再攀高峰!

第四范式开发者社区

人工智能 机器学习 数据库 数据 特征平台

数据库连接池 -Druid 源码学习(六)

wjchenge

Druid 数据库连接池

网站开发进阶(六十八)CSS3媒体查询@media

No Silver Bullet

5月月更 媒体查询 设备自适应 hsl

Openstack Trove在奇云上的实践_文化 & 方法_方慧琳_InfoQ精选文章