CEPH J版本新特性RGW Multi-tenancy详解
CEPH官方对RGW Multi-tenancy的介绍如下
RGW Multi-tenancy
多租户特性允许创建使用不同的存储桶和用户,前提是将其分离在不同的租户之下。例如,允许不同租户下的Swift API的用户,都可以创建形如“test”,“trove”这样很容易重复的桶名。
从Jewel版本开始,每个用户和桶都在租户之下。为了兼容性,RGW提供了一个名为空的“legacy”租户,如果引用桶时没有指明所属租户,则默认从“legacy”租户下获取该桶的信息。由于原有用户位于传统租户之下,因此他们将继续像以前一样创建和访问存储桶。RADOS中对象的布局以兼容的方式扩展,确保能顺利升级到Jewel版本。
指定租户下管理用户
租户实际没有做任何操作。当管理用户时,租户的概念才能起作用。为了明确使用租户的创建、修改和删除用户,可以使用附加提供的参数-tanant。或者在radosgw-admin名参数中使用语法<tenant>$<user>”
示例
创建S3用户testx$tester
radosgw-admin --tenant testx --uid tester--display-name "Test User" --access_key TESTER --secret test123 usercreate
创建Swift用户testx$tester
radosgw-admin --tenant testx --uid tester--display-name "Test User" --subuser tester:test --key-type swift--access full user create
请注意,指明租户的子用户必须在shell中引用
测试
创建租户为testx,用户名为tester的用户,swift子账号名为test,创建命令
radosgw-admin --tenant testx --uid tester--display-name "Test User" --subuser tester:test --key-type swift--access full user create
用该用户的keys调用SWIFT API创建桶test
创建租户为testx3,用户名为tester的用户,swift子账号名为test,创建命令
radosgw-admin --tenant testx3--uid tester --display-name "Test User" --subuser tester:test--key-type swift --access full user create
用该用户的keys调用SWIFT API创建桶test
底层使用命令radosgw-admin metadata list bucket查看RGW所有桶
由此可见,底层其实是把租户的名称加到桶名前面,这样实现不同租户下可以创建相同的桶名。
同样的,使用命令radosgw-admin metadata list user查看,可以看出RGW用户名格式为<tenant>$<user>
总结
RGWMulti-tenancy这个特性,底层实现其实就是在桶名和用户名前加个租户tenant字段来实现区分,对于用户而言是透明的,但是对于底层而言,是在用户名或者桶名加上了tenant字段而已。这个在做应用的时候会有一定的好处,即对不同租户的使用上来说,可以看成是可以创建同名的bucket桶。
测试python脚本(需先安装swiftclient的python包)
import requests
import swiftclient
KEY = '0os329T9icBwNB1Kpjt5SJi0BNTJPltcrZH5YCAj'
USERNAME = 'testx$tester:test'
server = '192.168.59.2:8080'
url = 'http://%s/auth' % server
conn = swiftclient.Connection(
user=USERNAME,
key=KEY,
authurl=url,
)
print USERNAME
print conn.put_container("test")
print conn.get_account()
CEPH J版本新特性RGW Multi-tenancy详解相关推荐
- Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍
前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...
- Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机
前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...
- 【java8新特性】——Stream API详解(二)
一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...
- java8 stream遍历_Java8新特性:Stream流详解
1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel agg ...
- java lambda表达式详解_Java8新特性:Lambda表达式详解
在 Java 版本的历次更新迭代中,Java8 是一个特殊的存在,与以往的版本升级不同.我们对 Java8 似乎抱有更大的期待,因为它是 Java5 之后最重要的一次升级,提供了十多个新特性,其中 L ...
- java lambda表达式详解_java8新特性-Lambda表达式的详解(从0开始)
这几天复习了java8的一些新特性,作为一个从java5以来最具革命性的版本,一直没有来得及总结.本系列文章主要是从<java8实战>总结的.这是第一篇文章主要介绍java8的lambda ...
- H5的新特性及部分API详解
h5新特性总览 移除的元素 纯表现的元素: basefont.big.center.font等 对可用性产生负面影响的元素: frame.frameset.noframes 新增的API 语义: 能 ...
- oracle中pdb,Oracle 12C新特性-CDB和PDB 详解
最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...
- JDK1.8新特性 Optional判空详解,简化判空操作
一.简介 从 Java 8 引入的一个很有趣的特性是 Optional 类.Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) -- 每个 Java ...
最新文章
- JML规格编程——BUAA OO第三单元作业总结
- linux redhat 下载_使用Vmware创建Linux(Ubuntu)系统
- java内存模型(JMM)和happens-before
- [蓝桥杯][算法提高VIP]聪明的美食家-dp
- [设计模式] ------ 适配器模式
- android lottie字体json,Android 动画深入Lottie
- 服务器文件夹同步到手机,本机文件夹同步到云服务器
- 【差分隐私的指数机制该怎么理解?】差分隐私系统学习记录(三)
- 第9章matlab符号计算答案,第9章 MATLAB符号计算_MATELAB课程设计_ppt_大学课件预览_高等教育资讯网...
- linux windows爆音,如何解决 Windows 服务器远程桌面的爆音问题
- c语言的真随机,怎样让c语言中的随机函数真正随机?
- java打印某年日历_java打印指定年月份的日历
- 不限速度盘下载神器Pandownload作者被抓,大量下载脚本已宣布停更
- 计算机网络在信息时代中的作用
- android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
- 数据结构——竞选海报
- 连接到mysql提示错误:The server time zone value is unrecognized or represents more than one time zone
- 2021-12-22 AndroidR 电池信息 简单分析记录
- java本地缓存简介
- 数据库去重,group by、distinct、rowid的用法,oracle和mysql如何数据去重保留一条
热门文章
- 阿里巴巴原来这么容易就能进去…
- 推荐这几个阿里、抖音、快手超级牛逼的技术大佬的公众号!
- 面向Python开发人员的综合置信区间全面理解
- C语言:Educoder结构体储存学生信息
- 基于unity3D的趣味桌球游戏开发
- 0x0000001a蓝屏代码是什么意思 0x0000001a蓝屏代码怎么解决
- 自动控制原理9.1---线性系统的状态空间描述(中下)
- vue中slot-scop=“scope“
- 如何通过电影学英语 English through Movies
- 视频配音文字转语音怎么弄?介绍几种好用的方法给你