本节主要介绍资源管理的结构和基本概念。
OceanBase 数据库是多租户的分布式数据库,一个集群内可包含多个相互独立的租户,每个租户提供独立的数据库服务。租户的可用物理机资源规格、租户的副本数及副本类型等均可由用户指定。基于多租户的 OceanBase 数据库系统的集群和租户资源管理结构,自底向上依次包括以下三个层面:
-
物理机资源:一个 OceanBase 集群中包含若干个 Zone,使用 Zone 作为物理机的容器,每台物理机都隶属于一个 Zone,一个 Zone 内可包含若干物理机,同一个 Zone 内的物理机通常部署在相同机房内。通常情况下,可简单将一个 Zone 对应理解为一个机房。
-
租户资源:租户的可用物理资源以资源池(Resource Pool)的方式描述,资源池由分布在物理机上的若干资源单元(Resource Unit)组成,资源单元的可用物理资源通过资源配置(Resource Unit Config)指定,资源配置由用户创建。
-
租户数据:租户数据使用多副本的 Paxos 组存储数据,OceanBase 数据库使用内置的副本分配和副本均衡策略,将租户的数据副本分配到该租户的资源单元上。资源单元是租户在各物理机上数据副本的容器。
说明
Meta 租户没有独立的 Unit,所以租户资源管理过程中不管理 Meta 租户。
资源管理中有如下概念:
-
资源单元(Resource Unit,Unit)
资源单元是一个容器。实际上,副本是存储在资源单元之中的,所以资源单元是副本的容器。资源单元包含了计算存储资源(Memory、CPU 和 IO 等)同时资源单元也是集群负载均衡的一个基本单位,在集群节点上下线,扩容、缩容时会动态调整资源单元在节点上的分布进而达到资源的使用均衡。
-
资源池 (Resource Pool)
一个租户拥有若干个资源池,这些资源池的集合描述了这个租户所能使用的所有资源。一个资源池由具有相同资源配置(Resource Unit Config)的若干个资源单元组成。一个资源池只能属于一个租户。每个资源单元描述了位于一个 Server 上的一组计算和存储资源,可以视为一个轻量级虚拟机,包括若干 CPU 资源、内存资源、磁盘资源等。一个租户在同一个 Server 上最多有一个资源单元。
-
资源配置(Resource Unit Config)
资源配置是资源单元的配置信息,用来描述资源池中每个资源单元可用的 CPU、内存、存储空间和 IOPS 等。修改资源配置可以动态调整资源单元的规格,进而调整对应租户的资源。
注意
资源配置指定的是对应资源单元能够提供的服务能力,而不是资源单元的实时负载。