mysql 存储计算分离 开源_容器化RDS|计算存储分离 or 本地存储?

随着交流机会的增多(集中在金融行业,规模都在各自领域数一数二),发现大家对 Docker + Kubernetes 的接受程度超乎想象, 并极有兴趣将这套架构应用到 RDS 领域。数据库服务的需求可以简化为:

实现数据零丢失的前提下,提供可接受的服务能力。因此存储架构的选型至关重要。到底是选择计算存储分离还是本地存储?本文就这个问题,从以下几点展开:回顾:计算存储分离, 本地存储优缺点

MySQL 基于本地存储实现数据零丢失

性能对比

基于 Docker + Kubernetes 的实现来分享个人理解。回顾:计算存储分离,本地存储优缺点

还是从计算存储分离说起。

计算存储分离

32308488a07163f7b74aef4950c011e5.png

先说优点:

架构清晰

计算资源 / 存储资源独立扩展

提升实例密度,优化硬件利用率

简化实例切换流程:将有状态的数据下沉到存储层,Scheduler 调度时,无需感知计算节点的存储介质,只需调度到满足计算资源要求的 Node,数据库实例启动时,只需在分布式文件系统挂载 mapping volume 即可。可以显著的提高数据库实例的部署密度和计算资源利用率。

以 MySQL 为例

e1f539a0648c68e26067604e42a0a025.png

通用性更好,同时适用于 Oracle、MySQL,详见:《容器化RDS——计算存储分离架构下的"Split-Brain"》。从部分用户的上下文来看,存在如下客观缺点:引入分布式存储,架构复杂度加大。一旦涉及到分布式存储的问题,DBA 无法闭环解决。

分布式存储选型:

选择商用,有 Storage Verdor Lock In 风险。

选择开源,大多数用户(包括沃趣)都测试过 GlusterFS 和 Ceph,针对数据库(Sensitive Lantency)场景,性能完全无法接受。

本地存储如果在意计算存储分离架构中提到的缺点,本地存储可以有效的打消类似顾虑,无需引入分布式存储,避免Storage Verdor Lock In 风险,所有问题都由DBA 闭环解决,但是,需要依赖数据库自有方案实现数据零丢失。

23c377f145c3211f721f2a53cad7ae18.png

以 MySQL 为例还会引入类似问题:物理容量受限于单机容量;

调度更复杂,选定数据库实例的存储类型(比如 SSD)后,一旦该实例发生“failover”,只能调度到拥有 SSD 的物理节点,这导致调度器需要对物理节点“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值