概述
什么是卷?
Ozone 中的**卷(Volume)**是命名空间层级中的最高级别,它作为一个或多个桶的逻辑容器。从概念上讲,卷可以被看作用户的主目录或项目空间,从而清晰地划分数据的所有权与管理职责。
主要特性:
- 管理控制: 只有管理员才能创建或删除卷。这确保了在最高层级上实现恰当的资源分配与访问控制。
- 存储计量: 卷被用作存储计量的基础,管理员可以按卷跟踪资源使用情况。
- 桶的容器: 一个卷可以包含任意数量的桶。
卷/桶命名规范
为了保持与 S3 的兼容性,Ozone 的卷名和桶名遵循 S3 的命名规范。
这意味着 Ozone 中的卷/桶名称:
允许的字符与长度:
- 允许的字符:小写字母 (a-z)、数字 (0-9)、点 (.) 和连字符 (-)
- 长度:必须介于 3 到 63 个字符之间
- 开头与结尾:必须以字母或数字开头并结尾
禁止事项:
- 不能包含大写字母或下划线 (_)
- 不能为 IP 地址格式(例如 192.168.5.4)
- 不能包含连续的点(例如 my..bucket),也不能有点号相邻的连字符(例如 my-.bucket)
- 不能以连字符结尾
在将 HDFS 工作负载迁移到 Ozone 时,这可能会带来麻烦,因为 HDFS 路径名是符合 POSIX 规范的。
若要在卷名和桶名中允许使用下划线 (_),同时仍然强制执行其他 S3 命名规则,请在 Ozone Manager 的 ozone-site.xml 中将属性 ozone.om.namespace.s3.strict 配置为 false。(这并不会放宽对其他非 S3 字符的规则。)
详细信息
创建与管理
卷通常使用 Ozone 命令行界面 (CLI) 来创建和管理。例如:
ozone sh volume create /myvolume有关卷操作的更多详情,请参阅 Ozone CLI 文档。
用户最大卷数
Ozone 对用户可拥有的卷数量实行可配置的限制。该限制由以下配置属性控制:
用户可拥有的最大卷数:
- 默认值: 每个用户 1024 个卷
- 配置属性:
ozone.om.user.max.volume - 错误: 若超过该限制,操作将失败并返回 USER_TOO_MANY_VOLUMES 错误,错误消息为:
"Too many volumes for user: {owner}"
<property>
<name>ozone.om.user.max.volume</name>
<value>1024</value>
<description>Maximum number of volumes a user can own</description>
</property>配额管理
可以为卷应用配额,限制其可占用的总存储空间或命名空间(存储桶)数量。这对于多租户环境至关重要,能够防止单个用户或项目独占资源。
- 存储空间配额: 限制卷内的数据总大小。
- 命名空间配额: 限制卷内可创建的存储桶数量。
有关配置和管理配额的详细信息,请参阅配额管理文档。
访问控制列表(ACL)
对卷的访问通过 ACL 进行控制,ACL 定义了用户和组的权限。这些权限决定了谁可以在卷内创建存储桶、列出其内容或执行其他操作。
- Create(创建): 允许在卷内创建存储桶。
- List(列举): 允许列举卷内的存储桶。
- Read(读取): 允许读取卷的元数据。
- Write(写入): 允许写入卷的元数据。
- Delete(删除): 允许删除卷(卷为空时或递归删除)。
可以使用 Ozone CLI 设置和管理 ACL。更多信息请参阅安全 ACL 文档。
S3 网关集成(/s3v 卷)
为了兼容 S3 API,Ozone 使用一个特殊的卷,通常为 /s3v。默认情况下,通过 S3 接口访问的所有存储桶都存储在该卷下。也可以通过"存储桶链接(bucket linking)"将其他 Ozone 卷中的存储桶通过 S3 接口对外暴露。更多详情请参阅 S3 协议文档和 S3 多租户文档。
数据节点物理卷与 Ozone Manager 逻辑卷
需要区分 Ozone Manager 管理的逻辑"卷"(如上所述)与数据节点(Datanode)管理的物理"卷"(磁盘)。
- Ozone Manager 卷: 用于容纳存储桶和键的逻辑命名空间容器。
- 数据节点卷: 数据节点上的物理存储设备(磁盘),实际的数据块以容器形式存储在其中。
有关数据节点卷管理的更多信息,请参阅数据节点文档。
评论
登录后参与评论
KnowForge