云计算租户隔离:给小白的科普文

  • 内容
  • 评论
  • 相关

租户隔离不是指隔离租户这些现实中的人,而是特指租户登录云端后,其操作行为和数据对于其他已登录云端的租户来说是不可见的。换句话说就是,每个租户都感觉不到他人的存在,似乎就是自己一个人在操作计算机。

租户隔离存在以下两个方面的隔离:

  • 租户行为隔离。
  • 租户数据隔离,数据隔离比行为隔离更重要。

租户行为隔离

租户行为隔离是指一个租户操作计算机的行为,其他租户感知不到。

租户操作计算机的行为是通过消耗的计算资源(内存、硬盘、CPU 和网络)体现出来的,换句话说,一个租户消耗计算资源的变动不会引起其他租户计算资源的可感知变动,感知不到的变动除外。

例如,租户甲内存配额是 4GB,但是他最多也就使用了 2GB,另外 2GB 空闲。此时如果租户乙运行一个大型软件,消耗了很多内存,使得租户甲只剩下 1GB 的空闲内存,但是租户甲感知不到,因为他的软件运行照样流畅、响应速度照样快、网速不卡,一切如故。

现代很多虚拟机厂商倾向于采用如下的行为隔离原则:按实际使用量分配资源,但不超过租用上限。这里的“上限”是指租户租用的资源额度。

比如租户甲租用的内存额度是 2GB、硬盘额度是 20GB。如果他实际要消耗 1.5GB 的内存,就分配 1.5GB 给他,但是他最多只能用 2GB 的内存。这样,同样的一台服务器就能服务更多的租户。比如一台服务器拥有 64GB的物理内存,假设每个租户租赁 2GB,那么这台服务器很可能允许 45 个用户同时登录。

SaaS、PaaS 和 IaaS 模式都需要实施租户行为隔离。

租户数据隔离

在《云计算SaaS服务模式精讲》教程中,我们提到租户数据包括配置数据和业务数据。配置数据指租户选择的语言、设置的时区、桌面背景图片、屏幕分辨率、创建的快捷方式及各种软件的界面设置等,而业务数据就是日常操作计算机生成的数据,如个人简历、售前 PPT、邮件、音乐、视频、财务数据、库存记录、客户资料等。

租户数据一般保存在家目录或者数据库中,而家目录和数据库被保存在云端的磁盘中。

PaaS 型租户的数据隔离一般采用容器的形式或者操作系统的访问控制列表(ACL),主要在操作系统层设置。而 SaaS 型租户的数据隔离主要在应用软件层及以上展开,租户身份鉴别和权限控制策略由应用软件开发者负责。

比如一个 SaaS 型的 ERP 系统,账号、密码及权限都被登记在数据库中的一个表中,当租户登录 ERP 系统时,输入账号和密码并单击“登录”按钮后,软件要去查询数据库确认账号是否存在;如果存在,再核对密码是否正确;如果密码正确,再根据权限显示相应的模块菜单项。总之,租户的账户信息一定是租户数据记录的主索引的组成部分,这是实现数据隔离的必要条件。

SaaS 型租户数据一般全部保存在数据库中,对于同一个数据库管理系统的租户数据隔离有以下 3 种方法可选:

  • 分离数据库。
  • 共享数据库但分离 Schema。
  • 共享数据库和 Schema。

我们用图 1 来表示一个数据库管理系统、数据库、Schema、Login、User 的关系。

数据库管理系统
图 1  数据库管理系统

本文标题:云计算租户隔离:给小白的科普文

本文地址:https://www.hosteonscn.com/5645.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注