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


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

주의

이 기능을 활성화하면 데이터 복제 없이 단일 복제본 풀이 생성되어 애플리케이션에 자체 복제가 없는 경우 데이터 손실, 데이터 손상 및 잠재적 시스템 불안정의 위험이 증가합니다. 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 또는 Replace 디스크입니다.
  7. rook-ceph Operator를 다시 시작합니다.

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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.