更新时间:2024-10-11 GMT+08:00

相关模型

多租户相关模型

多租户相关模型如下图所示。

图1 多租户相关模型

图1中涉及的概念如表1所示。

表1 相关概念说明

概念

说明

用户

用户是拥有用户名,密码等帐号信息的自然人,是大数据集群的使用者。

图1中有三个不同的用户:用户A、用户B和用户C。

角色

角色是承载一个或多个权限的载体。权限是限定在具体对象上的,例如对HDFS中的“/tenant”目录的访问权限,这里权限就限定在“/tenant”目录这个具体对象上。

图1中有四个不同的角色:角色“t1”、角色“t2”、角色“t3”和角色“Manager_tenant”

  • 角色“t1”、角色“t2”和角色“t3”为创建租户时,集群自动生成的角色,角色名和租户名相同,分别对应租户“t1”、租户“t2”和租户“t3”,不能单独使用。
  • 角色“Manager_tenant”为集群中本身存在的角色,不能单独使用。

租户

租户是从大数据集群中划分出的资源集合。多个不同的租户统称为多租户,租户内部进一步划分出的资源集合是子租户。

图1中有三个不同的租户:租户“t1”、租户“t2”和租户“t3”

资源

  • 计算资源包括CPU和内存。

    租户的计算资源是从集群总计算资源中划分出的,租户之间不可以互占计算资源。

    图1中:计算资源1、计算资源2和计算资源3分别是租户“t1”、租户“t2”和租户“t3”从集群中划分出的计算资源。

  • 存储资源包括磁盘或第三方存储系统。

    租户的存储资源是从集群总存储资源中划分出的,租户之间不可以互占存储资源。

    图1中:存储资源1、存储资源2和存储资源3分别是租户“t1”、租户“t2”和租户“t3”从集群中划分出的存储资源。

若用户想要使用租户资源或为租户添加/删除子租户,则需要同时绑定该租户对应的角色和角色“Manager_tenant”。在图1中,各用户绑定的角色如表2所示。

表2 各用户绑定的角色

用户

绑定的角色

权限

用户A

  • 角色“t1”
  • 角色“t2”
  • 角色“Manager_tenant”
  • 使用租户“t1”和租户“t2”的资源。
  • 为租户“t1”和租户“t2”添加/删除子租户。

用户B

  • 角色“t3”
  • 角色“Manager_tenant”
  • 使用租户“t3”的资源。
  • 为租户“t3”添加/删除子租户。

用户C

  • 角色“t1”
  • 角色“Manager_tenant”
  • 使用租户“t1”的资源。
  • 为租户“t1”添加/删除子租户。

用户和角色是多对多的关系,一个用户可以绑定多个角色,一个角色可以被多个用户绑定。用户通过绑定角色和租户建立关系,因此用户和租户也是多对多的关系。一个用户可以使用多个租户的资源,多个用户也可以使用同一个租户的资源,例如图1中,用户A使用租户“t1”和租户“t2”的资源,用户A和用户C都使用租户“t1”的资源。

“父租户”、“子租户”、“一级租户”、“二级租户”的概念是针对客户的多租户业务场景设定的,注意与FusionInsight Manager上的“叶子租户资源”和“非叶子租户资源”的概念区别。

  • 一级租户:按照租户所在层级确定名称,如最初创建的租户为一级租户,一级租户的子租户为二级租户。
  • 父租户与子租户:用来表述租户间上下层级关系的称呼。
  • 非叶子租户资源:创建租户时,选择的租户类型,该类型可以创建子租户。
  • 叶子租户资源:创建租户时,选择的租户类型,该类型不可以创建子租户。

多租户平台

租户是FusionInsight大数据平台的核心概念,使传统的以用户为核心的大数据平台向以多租户为核心的大数据平台转变,更好的适应现代企业多租户应用环境,如图2所示。

图2 以用户为核心的平台和以多租户为核心的平台

对于以用户为核心的大数据平台,用户直接访问并使用全部的资源和服务。

  • 用户的应用可能只用到集群的部分资源,资源利用效率低。
  • 不同用户的数据可能存放在一起,难以保证数据安全。

对于以租户为核心的大数据平台,用户通过访问租户来使用需要的资源和服务。

  • 按照应用需求分配和调度出需要的资源,以租户来统一使用,资源利用效率高。
  • 用户通过分配不同的角色获得使用不同租户资源的权限,以保障访问安全。
  • 不同的租户之间数据隔离,以保证数据安全。