关于数据:云原生分布式数据库云平台技术选择

58次阅读

共计 2162 个字符,预计需要花费 6 分钟才能阅读完成。

Part 1 – 云平台简介

浪潮云溪数据库云平台是由云溪数据库公司开发的针对特定的云溪数据库量身定做的数据库运维治理平台,其目的旨在于:晋升用户对数据库部署操作的体验,为用户提供数据库原生主动部署、主动备份、主动容灾、数据恢复、监控、治理等全套解决方案。

浪潮云溪数据库云平台,通过运行提供的部署脚本,可能间接实现一键式部署。同时浪潮云溪数据库云平台提供了直观便捷的可视化界面,大部分的操作只需通过鼠标点击便能够实现,方便快捷,而且每个操作的后果能够通过界面的模式直观地展示在用户背后,让用户对本人的操作有实时的反馈;同时因为丰盛的性能,该零碎还实用于运维治理等业余人员,满足用户的业余人员查看、监测、部署、治理数据库的需要。

  • 技术:虚拟化技术,隔离资源
  • 趋势:内核技术保持稳定;分布式事务数据库倡议反对基于多租户的资源隔离,以升高业务部署的危险和老本
  • 多租户指标:单个产品实例为多个用户提供服务,并且可按需应用资源,用户数据互相隔离
  • 倒退过程:整合多个产品实例,对立运维;单产品实例为多个用户提供服务

Part 2 – 根本架构

Part 3 – 技术抉择

目前解决分布式数据库的多租户隔离,有三种计划:物理隔离、虚拟机、容器。

1. 物理隔离

即每个租户对应一组独立的服务器集群上,zcp 治理多组服务器集群;用多组服务器来解决分布式数据库多租户隔离面临着比较严重的问题,多组服务器部署多租户最终问题就是实用性差,会造成服务器资源的节约,部署起来也不是非常不便。所以首先排除物理隔离的计划。

2. 虚拟机与容器

虚拟机就是带环境装置的一种解决方案,他能够在一种操作系统外面运行另一种操作系统,比方在 Windows 零碎外面运行 Linux 零碎,应用程序对此毫无感知,因为虚拟机看上去跟实在零碎截然不同,而对于底层零碎来说,虚拟机就是一个一般文件,不须要了就删掉,对其余局部毫无影响。

尽管用户能够通过虚拟机还原软件的原始环境。然而如下毛病:

  • 资源占用多:虚构机会独占一部分内存和硬盘空间。他运行的时候,其余程序就不能应用这些资源了。哪怕虚拟机外面的应用程序,真正应用的内存只有 1MB,虚拟机却须要几百 MB 的内存能力运行。一个零碎个别只反对几十个虚拟机。
  • 冗余步骤多:虚拟机是残缺的操作系统,一些零碎级别的操作步骤,往往无奈跳过,比方用户登陆。
  • 启动慢:启动零碎须要多久,启动虚拟机就须要多久。可能要等几分钟,应用程序能力真正运行。
  • 而相较于虚拟机,容器则具备着如下显著长处:
  • 启动快:容器外面的利用,间接就是底层零碎的一个过程,而不是虚拟机外部的过程。所以,启动容器相当于启动本机的一个过程,而不是启动一个操作系统,速度就快很多。
  • 资源占用少:容器只占用须要的资源,不占用那些没有用到的资源;虚拟机因为是残缺的操作系统,不可避免要占用所有资源。另外,多个容器能够共享资源,虚拟机都是独享资源。一个单机上反对上千个容器。
  • 体积小:容器只有蕴含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。

3.Docker 与 Kubernetes

Docker 应用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,对过程进行封装隔离,属于 操作系统层面的虚拟化技术。因为隔离的过程独立于宿主和其它的隔离的过程,因而也称其为容器。最后实现是基于 LXC,从 0.7 版本当前开始去除 LXC,转而应用自行开发的 libcontainer,从 1.11 开始,则进一步演进为应用 runC 和 containerd。Docker 在容器的根底上,进行了进一步的封装,从文件系统、网络互联到过程隔离等等,极大地简化了容器的创立和保护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

Kubernetes(k8s) 是 Google 开源的容器集群管理系统(谷歌外部:Borg)。在 Docker 技术的根底上,为容器化的利用提供部署运行、资源调度、服务发现和动静伸缩等一系列残缺性能,进步了大规模容器集群治理的便捷性。

Kubernetes 是一个齐备的分布式系统撑持平台,具备齐备的集群治理能力,多扩多层次的平安防护和准入机制、多租户利用撑持能力、通明的服务注册和发现机制、內建智能负载均衡器、弱小的故障发现和自我修复能力、服务滚动降级和在线扩容能力、可扩大的资源主动调度机制以及多粒度的资源配额治理能力。同时 Kubernetes 提供欠缺的管理工具,涵盖了包含开发、部署测试、运维监控在内的各个环节。

对于实现数据库多租户隔离,docker 须要增加一种定义用户的办法, 并将它们放在只容许对特定容器和卷进行操作的命名空间中, 并限度容许冲破容器的选项, 如更改性能或任意装置来自主机的文件系统,Docker 的企业产品 UCP 的确开始通过在对象上应用标签来增加这些性能,但目前来说 docker 实现多租户的计划还并不欠缺,而且可能须要通过革新底层代码去实现多租户的一个反对。

而 k8s 提供了 namespace 作为根底的资源隔离单位,还提供了基于 RBAC 的权限治理形式来实现多租户之间的隔离。

Docker

Kubernetes

Part 4 – 云溪数据库云平台的应用

1. 概念介绍

2. 根本流程

3. 性能介绍
(1) 创立集群:

(2) 创立租户:

(3) 租户详情:

(4) 租户批改:

(5) 备份复原:

(6) 性能趋势:

正文完
 0