2.3. 단일 복제본이 있는 스토리지 클래스


애플리케이션에서 사용할 단일 복제본이 있는 스토리지 클래스를 생성할 수 있습니다. 이렇게 하면 중복 데이터 사본을 방지하고 애플리케이션 수준에서 복원력을 관리할 수 있습니다.

주의

이 기능을 활성화하면 데이터 복제 없이 단일 복제본 풀이 생성되어 애플리케이션에 자체 복제가 없는 경우 데이터 손실, 데이터 손상 및 잠재적 시스템 불안정의 위험이 증가합니다. OSD가 손실된 경우 이 기능을 사용하려면 복구에 매우 중단된 단계가 필요합니다. 모든 애플리케이션은 데이터를 손실할 수 있으며 OSD가 실패한 경우 다시 생성해야 합니다.

프로세스

  1. 다음 명령을 사용하여 단일 복제본 기능을 활성화합니다.

    $ oc patch storagecluster ocs-storagecluster -n openshift-storage --type json --patch '[{ "op": "replace", "path": "/spec/managedResources/cephNonResilientPools/enable", "value": true }]'
  2. storageclusterReady 상태인지 확인합니다.

    $ oc get storagecluster

    출력 예:

    NAME                 AGE   PHASE   EXTERNAL   CREATED AT             VERSION
    ocs-storagecluster   10m   Ready              2024-02-05T13:56:15Z   4.15.0
  3. 각 실패 도메인에 대해 새 cephblockpools 가 생성됩니다. cephblockpoolsReady 상태인지 확인합니다.

    $ oc get cephblockpools

    출력 예:

    NAME                                          PHASE
    ocs-storagecluster-cephblockpool              Ready
    ocs-storagecluster-cephblockpool-us-east-1a   Ready
    ocs-storagecluster-cephblockpool-us-east-1b   Ready
    ocs-storagecluster-cephblockpool-us-east-1c   Ready
  4. 새 스토리지 클래스가 생성되었는지 확인합니다.

    $ oc get storageclass

    출력 예:

    NAME                                        PROVISIONER                             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    gp2 (default)                               kubernetes.io/aws-ebs                   Delete          WaitForFirstConsumer   true                   104m
    gp2-csi                                     ebs.csi.aws.com                         Delete          WaitForFirstConsumer   true                   104m
    gp3-csi                                     ebs.csi.aws.com                         Delete          WaitForFirstConsumer   true                   104m
    ocs-storagecluster-ceph-non-resilient-rbd   openshift-storage.rbd.csi.ceph.com      Delete          WaitForFirstConsumer   true                   46m
    ocs-storagecluster-ceph-rbd                 openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   52m
    ocs-storagecluster-cephfs                   openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   52m
    openshift-storage.noobaa.io                 openshift-storage.noobaa.io/obc         Delete          Immediate              false                  50m
  5. 새 OSD Pod가 생성됩니다. 3개의 osd-prepare Pod 및 3개의 추가 Pod가 있습니다. 새 OSD Pod가 Running 상태인지 확인합니다.

    $ oc get pods | grep osd

    출력 예:

    rook-ceph-osd-0-6dc76777bc-snhnm                                  2/2     Running     0               9m50s
    rook-ceph-osd-1-768bdfdc4-h5n7k                                   2/2     Running     0               9m48s
    rook-ceph-osd-2-69878645c4-bkdlq                                  2/2     Running     0               9m37s
    rook-ceph-osd-3-64c44d7d76-zfxq9                                  2/2     Running     0               5m23s
    rook-ceph-osd-4-654445b78f-nsgjb                                  2/2     Running     0               5m23s
    rook-ceph-osd-5-5775949f57-vz6jp                                  2/2     Running     0               5m22s
    rook-ceph-osd-prepare-ocs-deviceset-gp2-0-data-0x6t87-59swf       0/1     Completed   0               10m
    rook-ceph-osd-prepare-ocs-deviceset-gp2-1-data-0klwr7-bk45t       0/1     Completed   0               10m
    rook-ceph-osd-prepare-ocs-deviceset-gp2-2-data-0mk2cz-jx7zv       0/1     Completed   0               10m

2.3.1. 단일 복제본에서 OSD 손실 후 복구

복제본 1을 사용하는 경우 OSD가 손실되면 단일 복제본이 있는 스토리지 클래스가 데이터 손실이 보장됩니다. 손실된 OSD는 실패 상태로 전환됩니다. OSD가 손실된 후 복구하려면 다음 단계를 사용합니다.

프로세스

복제본 1에서 데이터 손실 후 애플리케이션을 다시 실행하려면 다음 복구 단계를 따르십시오. 먼저 실패한 OSD가 있는 도메인을 식별해야 합니다.

  1. 실패한 OSD가 있는 장애 도메인을 알고 있는 경우 다음 명령을 실행하여 다음 단계에 필요한 replica1-pool-name 을 가져옵니다. 실패한 OSD가 어디에 있는지 모르는 경우 2 단계로 건너뜁니다.

    $ oc get cephblockpools

    출력 예:

    NAME                                          PHASE
    ocs-storagecluster-cephblockpool              Ready
    ocs-storagecluster-cephblockpool-us-south-1   Ready
    ocs-storagecluster-cephblockpool-us-south-2   Ready
    ocs-storagecluster-cephblockpool-us-south-3   Ready

    다음 단계에서 사용할 해당 실패 도메인 이름을 복사한 다음 4 단계로 건너뜁니다.

  2. Error 상태 또는 CrashLoopBackoff 상태의 OSD Pod를 찾아 실패한 OSD를 찾습니다.

    $ oc get pods -n openshift-storage -l app=rook-ceph-osd  | grep 'CrashLoopBackOff\|Error'
  3. 실패한 OSD가 있는 replica-1 풀을 식별합니다.

    1. 오류가 발생한 OSD가 실행 중인 노드를 확인합니다.

      failed_osd_id=0 #replace with the ID of the failed OSD
    2. 실패한 OSD가 실행 중인 노드의 failureDomainLabel을 식별합니다.

      failure_domain_label=$(oc get storageclass ocs-storagecluster-ceph-non-resilient-rbd -o yaml | grep domainLabel |head -1 |awk -F':' '{print $2}')
      failure_domain_value=$”(oc get pods $failed_osd_id -oyaml |grep topology-location-zone |awk ‘{print $2}’)”

      출력에는 OSD가 실패하는 replica-1 풀 이름이 표시됩니다. 예를 들면 다음과 같습니다.

      replica1-pool-name= "ocs-storagecluster-cephblockpool-$failure_domain_value”

      여기서 $failure_domain_value 는 failureDomainName입니다.

  4. replica-1 풀을 삭제합니다.

    1. toolbox Pod에 연결합니다.

      toolbox=$(oc get pod -l app=rook-ceph-tools -n openshift-storage -o jsonpath='{.items[*].metadata.name}')
      
      oc rsh $toolbox -n openshift-storage
    2. replica-1 풀을 삭제합니다. 명령에 replica-1 풀 이름을 두 번 입력해야 합니다. 예를 들면 다음과 같습니다.

      ceph osd pool rm <replica1-pool-name> <replica1-pool-name> --yes-i-really-really-mean-it

      replica1-pool-name 을 이전에 확인한 실패 도메인 이름으로 교체합니다.

  5. 장치 교체 가이드의 플랫폼에 따라 "운영 또는 실패한 스토리지 장치 교체" 섹션의 단계에 따라 실패한 OSD를 제거합니다.
  6. rook-ceph Operator를 다시 시작합니다.

    $ oc delete pod -l rook-ceph-operator -n openshift-storage
  7. 해당 avaialbity 영역에서 영향을 받는 애플리케이션을 다시 생성하여 동일한 이름의 새 풀을 사용하기 시작합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.