搜索

2.3. 带有单一副本的存储类

download PDF

您可以使用应用程序使用单个副本创建存储类。这可避免冗余数据副本,并允许在应用程序级别上进行弹性管理。

警告

启用这个功能会创建一个没有数据复制的副本池,如果应用程序本身没有复制,这会增加数据丢失、数据崩溃和潜在的系统不稳定的风险。如果有任何 OSD 丢失,此功能需要非常干扰的步骤才能恢复。所有请求都可能会丢失其数据,在出现故障 OSD 时必须重新创建数据。

流程

使用以下命令启用单个副本功能:

$ oc patch storagecluster ocs-storagecluster -n openshift-storage --type json --patch '[\{ "op": "replace", "path": "/spec/managedResources/cephNonResilientPools/enable", "value": true }]'

2.3.1. 在 OSD 从单个副本丢失后恢复

在使用副本 1 时,具有单个副本的存储类时,当 OSD 丢失时,可以保证数据丢失。

流程

按照以下步骤,使应用程序在数据丢失后再次运行。

  1. 查找处于 Error 状态或 CrashLoopBackoff 状态的 OSD pod:

    $ oc get pods -nopenshift-storage -l app=rook-ceph-osd  | grep 'CrashLoopBackOff\|Error'
  2. 识别具有故障 OSD 的 replica-1 池。

    1. 识别运行故障 OSD 的节点:

      failed_osd_id=0 #replace with the ID of the failed OSD
    2. 识别运行故障 OSD 的该节点的区域:

      failure_domain=$(oc get storageclass ocs-storagecluster-ceph-non-resilient-rbd -o yaml | grep domainLabel)
      domainLabel=$”(oc get pods rook-ceph-osd-$failed_osd_id -o yaml | grep topology-location-$failure_domain:)”

      输出显示池,例如:

      poolName= "ocs-storage cluster-ceph block pool-$domaiLabel”

      其中 $domaiLabel 是 zoneName。

  3. 删除 replica-1 池。

    1. 连接到 toolbox pod:

      toolbox=$(kubectl get pod -l app=rook-ceph-tools -noperator-namespace -o jsonpath='{.items[*].metadata.name}')
      
      oc rsh $toolbox -noperator-namespace
    2. 删除 replica-1 池:

      ceph osd pool rm replica1-pool-name replica1-pool-name yes-I-really-really-mean-it
  4. 缩减故障 OSD pod 的部署:

    failed_osd_id=0 #replace with the ID of the failed OSD
    oc scale deployment -nopenshift-storage rook-ceph-osd-$failed_osd_id --replicas=0
  5. 清除上面标识的 OSD。在 替换设备 指南中的根据您的平台,使用"替换操作或失败的存储设备"中的步骤。
  6. 对于使用 LSO 的平台,Wipe 或 替换磁盘。
  7. 重启 rook-ceph Operator:

    $ oc delete pod -l rook-ceph-operator -nopenshift-storage
  8. 在 avaialbity 区域中重新创建任何受影响的应用程序,以使用具有相同名称的新池。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.