rgw multi-tenancy 多租户理解

一. 什么是multi-tenancy

在 J版之前,同一个ceph集群中不允许有同名的bucket和用户,这会引发一个比较诡异的问题,比如用户在创建bucket的时候回提示,”bucket” 已经存在,但是却没有访问的权限,因为这个bucket是其他用户创建的,用户创建的bucket默认只有创建者有访问权限(这个关系到bucket的policy) , 从J版开始,引入tenant(租户)的概念,不同一个tenant下得用户和bucket可以同名。


二. 测试multi-tenancy

为了兼容,J版之前的版本,rgw 默认创建一个tenant ,是个空的字符串 “”, 在创建用户的时候如果没有显式的指定tenant名字 就默认加入到 “” tenant

这一有一个疑问,用户是可以访问不同bucket的,那用户可以访问不同tenant的bucket吗?要怎么访问?这个关系到bucket policy,用一篇关于bucket policy详细解释。