Vitess适配OBS心得

举报
pengcss 发表于 2024/12/13 09:32:04 2024/12/13
【摘要】 Vitess是一个用于部署、扩展和管理大型MySQL实例集群的数据库解决方案

项目分析

Vitess是一个用于部署、扩展和管理大型MySQL实例集群的数据库解决方案。VitessMySQL数据库的很多重要特性和NoSQL数据库的可扩展性于一体。它的架构设计使得您可以像在物理机上一样在公共云或私有云架构中有效运行。它结合并扩展了许多重要的MySQL功能,同时兼具NoSQL数据库的可扩展性。

Vitess能解决以下问题:

  1. 支持您对MySQL数据库进行分片来扩展MySQL数据库,应用程序无需做太多更改。
  2. 从物理机迁移到私有云或公共云。
  3. 部署和管理大量的MySQL实例。

该任务的目标就是让Vitess支持华为云OBS服务,Vitess能够备份数据到华为云OBS上,拓展OBS服务的影响力。方便Vitess的用户能够顺利对接OBS服务。

适配过程

备份引擎

引擎是用于生成备份的技术。目前 Vitess 有以下插件:

  • 内置:关闭实例并复制所有数据库文件(默认)
  • XtraBackup:使用 Percona XtraBackup进行在线备份

默认备份实现是builtin,但是官方建议使用xtrabackup引擎,xtabackup允许无阻塞备份。

因此这里将backup_engine_implementation参数设置为xtrabackup

连接OBS

由于Vitess的备份功能提供了S3兼容的API,而OBS 提供了强大的 S3 API 兼容性,使得我们能够通过 S3 API 无缝集成到现有的 Vitess的备份功能中,而无需额外开发代码进行适配。

Vitess使用s3 api与对象存储通信,因此只需确保华为云 OBS S3 接口配置正确即可。

 

部署Vitess

Vitess为部署在kubernetes提供了Vitess-Operator,能够支持在k8s上自动管理Vitess集群。

Vitess Operator 可自动执行如下任务:

  • 部署任意数量的 Vitess 集群、单元、键空间、分片和平板电脑,以水平或垂直扩展读写能力;
  • Vitess 重新分片部署重叠分片,允许零停机时间调整分片大小;
  • 通过 Kubernetes 注释触发手动计划故障转移;
  • 在单个 Kubernetes 集群中的多个可用区域复制数据,以支持读/写流量的立即故障转移,以从可用区域丢失中恢复;
  • 自动推出 Vitess 级用户凭证的更新。

要配置OBS需要在配置文件中添加backup模块:

  backup:

    engine: xtrabackup

    locations:

      - s3:

          bucket: vitess

          endpoint: https://obs.cn-south-1.myhuaweicloud.com

          region: cn-south-1

          authSecret:

            name: vitess-s3-secret

            key: credentials.json

authSecret 为华为云凭证,在credentials.json中需要使用 aws 凭据文件格式,例如

[default]

aws_access_key_id=<YourAK>

aws_secret_access_key=<YourSK>

验证截图

验证思路

OBS兼容S3协议,Vitess支持S3兼容协议,通过S3 API对接华为云OBS。通过vtctlclient客户端对Vitess服务端发送请求进行验证。

验证步骤:

  • CCE中通过Vitess-Operator部署
  • 添加数据
  • 备份数据
  • 查询OBS
  • 从备份中恢复

CCE中通过Vitess-Operator部署



添加数据



 

备份数据

执行备份命令:vtctlclient --logtostderr --server localhost:15999 BackupShard commerce/-


查看最新的备份列表


查询OBS


从备份中恢复

执行恢复命令:vtctlclient --logtostderr RestoreFromBackup zone1-2469782763



 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。