5.6. 将 Heketi 配置为每个区域间的 Place Bricks Acicks


heketi 使用节点区域作为 brick 放置的提示。要强制 Heketi 严格将副本 brick 放置在不同区域中,必须启用 Heketi 的"限制区域检查"功能。启用此功能后,只有在每个 brick 集分散到足够多区域时,才会成功创建一个卷。

注意

在将 StorageClass 配置为使用 heketi 的严格 zoning 前,请确保将 OCS 节点标记为正确的区。

您可以通过在 StorageClass 的 parameter 部分中使用所需的设置添加 "volumeoptions" 字段来配置此功能。例如:

volumeoptions: "user.heketi.zone-checking strict"

或者

volumeoptions: "user.heketi.zone-checking none"

设置如下:

strict
至少需要 3 个节点在不同的区域中(假设副本 3)存在。
none
之前(及当前的默认值)的行为

配置了 "strict zone check" 功能的 StorageClass 文件示例如下所示:

# cat glusterfs-storageclass.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gluster-container
provisioner: kubernetes.io/glusterfs
reclaimPolicy: Delete
parameters:
  resturl: "http://heketi-storage-project.cloudapps.mystorage.com"
  restuser: "admin"
  volumetype: "replicate:3"
  clusterid: "630372ccdc720a92c681fb928f27b53f"
  secretNamespace: "default"
  secretName: "heketi-secret"
  volumeoptions: "user.heketi.zone-checking strict"
  volumenameprefix: "test-vol"
allowVolumeExpansion: true
注意

现有的存储类规格不可编辑。您可以使用未来所有应用程序所需的卷选项创建新存储类。但是,如果您需要更改现有存储类的设置,必须首先删除现有存储类,然后才能重新创建具有相同名称的新存储类。

执行以下命令,使用新设置删除和重新创建 glusterfs-storage 存储类:

  1. 将存储类对象导出到 yaml 文件中:

    # oc get sc glusterfs-storage --export=true -o yaml > glusterfs-storage.yaml
  2. 使用您的首选编辑器添加新参数。
  3. 删除并重新创建存储类对象:

    # oc delete sc glusterfs-storage
    # oc create -f glusterfs-storage.yaml
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部