数据节点
数据节点容器模式 v3
登录后可跨设备保存划线和私人笔记登录
在 Ozone 中,用户数据被切分为数据块(block),存储在 HDDS 容器中。容器是 Ozone/HDDS 的基本复制单元。每个容器都包含其元数据和数据。数据以文件形式保存在磁盘上,元数据保存在 RocksDB 中。
此前,数据节点上每个容器都对应一个 RocksDB。随着用户数据不断增长,一个数据节点上将出现数十万个 RocksDB 实例。在单个 JVM 中管理如此数量的 RocksDB 实例是一大挑战。
与之前的方式不同,容器 Schema v3 为每个数据卷仅使用一个 RocksDB,将所有容器的元数据都保存在该 RocksDB 中。
配置
这主要是数据节点的功能,不需要太多配置。默认情况下该功能已启用。
如果更倾向于"每个容器一个 RocksDB"的模式,可以通过以下配置来禁用该功能。请注意,一旦启用了该功能,强烈建议之后不要将其禁用。
<property>
<name>hdds.datanode.container.schema.v3.enabled</name>
<value>false</value>
<description>Disable or enable this feature.</description>
</property>在没有任何特定配置的情况下,单个 RocksDB 会创建在 hdds.datanode.dir 所配置的数据卷之下。
对于有高性能需求的高级集群管理员,可以利用更快的存储介质来保存 RocksDB。此时需要配置以下两个属性:
<property>
<name>hdds.datanode.container.db.dir</name>
<value/>
<description>This setting is optional. Specify where the per-disk RocksDB instances will be stored.</description>
</property>
<property>
<name>hdds.datanode.failed.db.volumes.tolerated</name>
<value>-1</value>
<description>The number of db volumes that are allowed to fail before a Datanode stops offering service.
Default -1 means unlimited, but we should have at least one good volume left.</description>
</property>向后兼容
启用此功能后,每个现有容器各自拥有的 RocksDB 仍然可以访问。所有容器数据将共存于现有的 Ozone 集群中。
参考资料
评论
登录后参与评论
正在加载评论…
KnowForge