5.4. 논리 볼륨 관리자 스토리지를 사용하는 영구 스토리지
LVM(Logical Volume Manager) 스토리지는 TopoLVM CSI 드라이버를 사용하여 단일 노드 OpenShift 클러스터에서 로컬 스토리지를 동적으로 프로비저닝합니다.
LVM Storage는 Logical Volume Manager를 사용하여 씬 프로비저닝 볼륨을 생성하고 제한된 리소스 단일 노드 OpenShift 클러스터에서 블록 스토리지의 동적 프로비저닝을 제공합니다.
LVM 스토리지를 사용하여 볼륨 그룹, PVC(영구 볼륨 클레임), 볼륨 스냅샷 및 볼륨 복제를 생성할 수 있습니다.
5.4.1. 논리 볼륨 관리자 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
단일 노드 OpenShift 클러스터에 LVM(Logical Volume Manager) 스토리지를 설치하고 워크로드의 스토리지를 동적으로 프로비저닝하도록 구성할 수 있습니다.
OpenShift Container Platform CLI(oc
), OpenShift Container Platform 웹 콘솔 또는 RHACM(Red Hat Advanced Cluster Management)을 사용하여 단일 노드 OpenShift 클러스터에 LVM 스토리지를 배포할 수 있습니다.
5.4.1.1. LVM 스토리지를 설치하기 위한 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
LVM 스토리지를 설치하기 위한 전제 조건은 다음과 같습니다.
- 최소 10밀리CPU 및 100MiB의 RAM이 있는지 확인합니다.
- 모든 관리 클러스터에 스토리지를 프로비저닝하는 데 사용되는 전용 디스크가 있는지 확인합니다. LVM 스토리지는 비어 있고 파일 시스템 서명이 포함되지 않은 디스크만 사용합니다. 디스크가 비어 있고 파일 시스템 서명을 포함하지 않도록 하려면 디스크를 사용하기 전에 초기화하십시오.
이전 LVM 스토리지 설치에서 구성한 스토리지 장치를 재사용할 수 있는 개인 CI 환경에 LVM 스토리지를 설치하기 전에 사용하지 않는 디스크를 지웁니다. LVM 스토리지를 설치하기 전에 디스크를 지우지 않으면 수동 조작 없이 디스크를 재사용할 수 없습니다.
참고사용 중인 디스크를 초기화할 수 없습니다.
- RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM 스토리지를 설치하려면 OpenShift Container Platform 클러스터에 RHACM을 설치해야 합니다. RHACM을 사용하여 LVM 스토리지 설치 섹션을 참조하십시오.
5.4.1.2. OpenShift Container Platform 웹 콘솔을 사용하여 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Container Platform OperatorHub를 사용하여 LVM 스토리지를 설치할 수 있습니다.
사전 요구 사항
- 단일 노드 OpenShift 클러스터에 액세스할 수 있습니다.
-
cluster-admin
및 Operator 설치 권한이 있는 계정을 사용하고 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Operators
OperatorHub를 클릭합니다. -
스크롤하거나 키워드로
필터링
상자에 LVM 스토리지 를 입력하여 LVM 스토리지를 찾습니다. - 설치를 클릭합니다.
Operator 설치 페이지에서 다음 옵션을 설정합니다.
- stable-4.12 로 채널을 업데이트합니다.
- 클러스터의 특정 네임스페이스로 설치 모드 입니다.
-
Operator 권장 네임스페이스 openshift-storage로 네임스페이스 가 설치되어 있습니다.
openshift-storage
네임스페이스가 없으면 Operator 설치 중에 생성됩니다. 자동 또는 수동으로의 승인 전략 .
자동 업데이트를 선택하면 OLM(Operator Lifecycle Manager)은 개입 없이 Operator의 실행 중인 인스턴스를 자동으로 업그레이드합니다.
수동 업데이트를 선택하면 OLM에서 업데이트 요청을 생성합니다. 클러스터 관리자는 Operator를 최신 버전으로 업데이트하기 위해 해당 업데이트 요청을 수동으로 승인해야 합니다.
- 설치를 클릭합니다.
검증 단계
- LVM Storage에 성공적으로 설치를 나타내는 녹색 눈금이 표시되는지 확인합니다.
5.4.1.3. RHACM을 사용한 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
LVM Storage는 RHACM(Red Hat Advanced Cluster Management)을 사용하여 단일 노드 OpenShift 클러스터에 배포됩니다. PlacementRule
리소스에 지정된 선택기와 일치하는 관리 클러스터에 Operator를 배포하고 구성하는 RHACM에 정책
오브젝트를 생성합니다. 이 정책은 나중에 가져오고 배치 규칙을 충족하는 클러스터에도 적용됩니다.
사전 요구 사항
-
cluster-admin
및 Operator 설치 권한이 있는 계정을 사용하여 RHACM 클러스터에 액세스할 수 있습니다. - LVM 스토리지에서 사용할 각 단일 노드 OpenShift 클러스터의 전용 디스크입니다.
- 단일 노드 OpenShift 클러스터는 RHACM에서 가져오거나 생성해야 합니다.
절차
- OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
정책을 생성할 네임스페이스를 생성합니다.
oc create ns lvms-policy-ns
# oc create ns lvms-policy-ns
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정책을 생성하려면 다음 YAML을
policy-lvms-operator.yaml
과 같은 이름으로 파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- LVM Storage를 설치하려는 단일 노드 OpenShift 클러스터에 설정된 라벨과 일치하도록
PlacementRule.spec.clusterSelector
의 키와 값을 바꿉니다. - 2
- 볼륨 그룹을 기본 디스크로 제어하거나 제한하려면
LVMCluster
YAML의deviceSelector
섹션에 디스크의 로컬 경로를 수동으로 지정할 수 있습니다. - 3
- 추가 작업자 노드의 하위 집합인 노드 필터를 추가하려면
nodeSelector
섹션에서 필요한 필터를 지정합니다. LVM Storage는 새 노드가 표시될 때 추가 작업자 노드를 감지하고 사용합니다.
중요이
nodeSelector
노드 필터 일치는 Pod 레이블 일치와 동일하지 않습니다.다음 명령을 실행하여 네임스페이스에 정책을 생성합니다.
oc create -f policy-lvms-operator.yaml -n lvms-policy-ns
# oc create -f policy-lvms-operator.yaml -n lvms-policy-ns
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
policy-lvms-operator.yaml
은 정책이 저장되는 파일의 이름입니다.
이렇게 하면
lvms-policy-ns
네임스페이스에Policy
,PlacementRule
,PlacementBinding
오브젝트가 생성됩니다. 이 정책은 배치 규칙과 일치하는 클러스터에Namespace
,OperatorGroup
,Subscription
,LVMCluster
리소스를 생성합니다. 그러면 선택 기준과 일치하는 단일 노드 OpenShift 클러스터에 Operator가 배포되고 스토리지를 프로비저닝하는 데 필요한 리소스를 설정하도록 구성합니다. Operator는LVMCluster
CR에 지정된 모든 디스크를 사용합니다. 디스크가 지정되지 않은 경우 Operator는 단일 노드 OpenShift 노드에서 사용되지 않는 디스크를 모두 사용합니다.중요장치를
LVMCluster
에 추가한 후에는 제거할 수 없습니다.
5.4.1.4. LVM 스토리지에 사용되는 장치의 크기를 구성하는 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
LVM 스토리지를 사용하여 스토리지를 프로비저닝하는 데 사용할 수 있는 장치의 크기를 구성하는 제한 사항은 다음과 같습니다.
- 프로비저닝할 수 있는 총 스토리지 크기는 기본 LVM(Logical Volume Manager) 씬 풀의 크기와 초과 프로비저닝 요인으로 제한됩니다.
논리 볼륨의 크기는 PE(물리 확장 영역) 및 논리 확장 영역(LE)의 크기에 따라 다릅니다.
- 물리 및 논리 장치 생성 중에 PE 및 LE의 크기를 정의할 수 있습니다.
- 기본 PE 및 LE 크기는 4MB입니다.
- PE 크기가 증가하면 커널 제한 및 디스크 공간에 따라 LVM의 최대 크기가 결정됩니다.
아키텍처 | RHEL 6 | RHEL 7 | RHEL 8 | RHEL 9 |
---|---|---|---|---|
32비트 | 16 TB | - | - | - |
64비트 | 8 EB [1] 100 TB [2] | 8 EB [1] 500 TB [2] | 8 EB | 8 EB |
- 중간 크기.
- 테스트된 크기.
5.4.2. LVM 스토리지를 사용하는 스토리지 프로비저닝 링크 복사링크가 클립보드에 복사되었습니다!
Operator 설치 중에 생성된 스토리지 클래스를 사용하여 PVC(영구 볼륨 클레임)를 프로비저닝할 수 있습니다. 블록 및 파일 PVC를 프로비저닝할 수 있지만 PVC를 사용하는 Pod가 생성될 때만 스토리지가 할당됩니다.
LVM Storage는 1GiB 단위로 PVC를 프로비저닝합니다. 요청된 스토리지는 가장 가까운 GiB로 반올림됩니다.
절차
LVM Storage가 배포될 때 생성되는
StorageClass
를 식별합니다.StorageClass
이름은lvms-<device-class-name> 형식으로 되어 있습니다
.device-class-name
은Policy
YAML의LVMCluster
에 제공한 장치 클래스의 이름입니다. 예를 들어deviceClass
가1이라고 하는 경우storageClass
이름은lvms-
입니다.vg1
스토리지 클래스의
volumeBindingMode
가WaitForFirstConsumer
로 설정됩니다.애플리케이션에 스토리지가 필요한 PVC를 생성하려면 다음 YAML을
pvc.yaml
과 같은 이름의 파일에 저장합니다.PVC를 생성하는 YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PVC를 생성합니다.
oc create -f pvc.yaml -ns <application_namespace>
# oc create -f pvc.yaml -ns <application_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 PVC는 이를 사용하는 Pod를 배포할 때까지
보류 중
상태로 유지됩니다.
5.4.3. PVC 확장 링크 복사링크가 클립보드에 복사되었습니다!
용량을 추가한 후 새 스토리지를 활용하려면 LVM 스토리지를 사용하여 기존 PVC(영구 볼륨 클레임)를 확장할 수 있습니다.
사전 요구 사항
- 동적 프로비저닝이 사용됩니다.
-
제어
StorageClass
오브젝트에allowVolumeExpansion
이true
로 설정되어 있습니다.
프로세스
다음 명령을 실행하여 원하는 PVC 리소스의
.spec.resources.requests.storage
필드를 새 크기로 수정합니다.oc patch <pvc_name> -n <application_namespace> -p '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'
oc patch <pvc_name> -n <application_namespace> -p '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
PVC의
status.conditions
필드를 확인하여 크기 조정이 완료되었는지 확인합니다. OpenShift Container Platform은 확장 중에 PVC에Resizing
조건을 추가합니다. 확장이 완료된 후 제거됩니다.
5.4.4. 단일 노드 OpenShift 클러스터에서 LVM 스토리지 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
현재 단일 노드 OpenShift 클러스터에서 OpenShift Data Foundation Logical Volume Manager Operator 4.11에서 LVM Storage 4.12로 업그레이드할 수 없습니다.
이 과정에서 데이터는 보존되지 않습니다.
프로세스
- PVC(영구 볼륨 클레임)에서 보존할 데이터를 백업합니다.
- OpenShift Data Foundation Logical Volume Manager Operator 및 해당 Pod에서 프로비저닝한 모든 PVC를 삭제합니다.
- OpenShift Container Platform 4.12에 LVM 스토리지를 다시 설치합니다.
- 워크로드를 다시 생성합니다.
- 4.12로 업그레이드한 후 생성된 PVC에 백업 데이터를 복사합니다.
5.4.5. 단일 노드 OpenShift의 볼륨 스냅샷 링크 복사링크가 클립보드에 복사되었습니다!
LVM 스토리지에서 프로비저닝하는 PV(영구 볼륨)의 볼륨 스냅샷을 가져올 수 있습니다. 복제된 볼륨의 볼륨 스냅샷을 생성할 수도 있습니다. 볼륨 스냅샷을 사용하면 다음을 수행할 수 있습니다.
애플리케이션 데이터를 백업합니다.
중요볼륨 스냅샷은 원래 데이터와 동일한 장치에 있습니다. 볼륨 스냅샷을 백업으로 사용하려면 스냅샷을 안전한 위치로 이동해야 합니다. 데이터 보호 백업 및 복원 솔루션에 OpenShift API를 사용할 수 있습니다.
- 볼륨 스냅샷을 만든 상태로 되돌립니다.
5.4.5.1. 단일 노드 OpenShift에서 볼륨 스냅샷 생성 링크 복사링크가 클립보드에 복사되었습니다!
씬 풀의 사용 가능한 용량 및 초과 프로비저닝 제한을 기반으로 볼륨 스냅샷을 생성할 수 있습니다. LVM 스토리지는 lvms-<deviceclass-name>
이름을 사용하여 VolumeSnapshotClass
를 생성합니다.
사전 요구 사항
-
PVC(영구 볼륨 클레임)가
Bound
상태인지 확인합니다. 이는 일관된 스냅샷에 필요합니다. - 스냅샷을 생성하기 전에 PVC에 대한 모든 I/O를 중지했습니다.
프로세스
-
oc
명령을 실행해야 하는 단일 노드 OpenShift에 로그인합니다. 다음 YAML을 이름이
lvms-vol-snapshot.yaml
인 파일에 저장합니다.볼륨 스냅샷을 생성하는 YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC와 동일한 네임스페이스에서 다음 명령을 실행하여 스냅샷을 생성합니다.
oc create -f lvms-vol-snapshot.yaml
# oc create -f lvms-vol-snapshot.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
PVC의 읽기 전용 사본이 볼륨 스냅샷으로 생성됩니다.
5.4.5.2. 단일 노드 OpenShift로 볼륨 스냅샷 복원 링크 복사링크가 클립보드에 복사되었습니다!
볼륨 스냅샷을 복원하면 새 PVC(영구 볼륨 클레임)가 생성됩니다. 복원된 PVC는 볼륨 스냅샷 및 소스 PVC와 독립적입니다.
사전 요구 사항
- 스토리지 클래스는 소스 PVC와 동일해야 합니다.
요청된 PVC의 크기는 스냅샷의 소스 볼륨과 동일해야 합니다.
중요스냅샷은 스냅샷의 소스 볼륨과 동일한 크기의 PVC로 복원되어야 합니다. 더 큰 PVC가 필요한 경우 스냅샷이 성공적으로 복원된 후 PVC의 크기를 조정할 수 있습니다.
절차
- 소스 PVC 및 볼륨 스냅샷 이름의 스토리지 클래스 이름을 확인합니다.
다음 YAML을
lvms-vol-restore.yaml
과 같은 이름의 파일에 저장하여 스냅샷을 복원합니다.PVC를 복원하는 YAML의 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스냅샷과 동일한 네임스페이스에서 다음 명령을 실행하여 정책을 생성합니다.
oc create -f lvms-vol-restore.yaml
# oc create -f lvms-vol-restore.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.5.3. 단일 노드 OpenShift에서 볼륨 스냅샷 삭제 링크 복사링크가 클립보드에 복사되었습니다!
볼륨 스냅샷 리소스 및 PVC(영구 볼륨 클레임)를 삭제할 수 있습니다.
프로세스
다음 명령을 실행하여 볼륨 스냅샷 리소스를 삭제합니다.
oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
# oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고PVC(영구 볼륨 클레임)를 삭제하면 PVC의 스냅샷이 삭제되지 않습니다.
복원된 볼륨 스냅샷을 삭제하려면 다음 명령을 실행하여 볼륨 스냅샷을 복원하도록 생성된 PVC를 삭제합니다.
oc delete pvc <pvc_name> -n <namespace>
# oc delete pvc <pvc_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.6. 단일 노드 OpenShift의 볼륨 복제 링크 복사링크가 클립보드에 복사되었습니다!
복제는 표준 볼륨처럼 사용할 수 있는 기존 스토리지 볼륨과 중복됩니다.
5.4.6.1. 단일 노드 OpenShift에서 볼륨 복제 생성 링크 복사링크가 클립보드에 복사되었습니다!
볼륨 복제본을 생성하여 특정 시점의 데이터를 복사합니다. PVC(영구 볼륨 클레임)는 다른 크기로 복제할 수 없습니다.
복제된 PVC에는 쓰기 액세스 권한이 있습니다.
사전 요구 사항
-
PVC가
Bound
상태인지 확인합니다. 이는 일관된 스냅샷에 필요합니다. -
StorageClass
가 소스 PVC와 동일한지 확인했습니다.
프로세스
- 소스 PVC의 스토리지 클래스를 식별합니다.
볼륨 복제를 생성하려면 다음 YAML을
lvms-vol-clone.yaml
과 같은 이름의 파일에 저장합니다.볼륨을 복제하는 YAML의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 소스 PVC와 동일한 네임스페이스에 정책을 생성합니다.
oc create -f lvms-vol-clone.yaml
# oc create -f lvms-vol-clone.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.6.2. 단일 노드 OpenShift에서 복제된 볼륨 삭제 링크 복사링크가 클립보드에 복사되었습니다!
복제된 볼륨을 삭제할 수 있습니다.
프로세스
복제된 볼륨을 삭제하려면 다음 명령을 실행하여 복제된 PVC를 삭제합니다.
oc delete pvc <clone_pvc_name> -n <namespace>
# oc delete pvc <clone_pvc_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.7. LVM 스토리지 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 모니터링을 활성화하려면 LVM 스토리지를 설치한 네임스페이스에 다음 레이블을 추가해야 합니다.
openshift.io/cluster-monitoring=true
openshift.io/cluster-monitoring=true
RHACM에서 클러스터 모니터링 활성화에 대한 자세한 내용은 Observability 및 사용자 정의 지표 추가 를 참조하십시오.
5.4.7.1. 지표 링크 복사링크가 클립보드에 복사되었습니다!
메트릭을 확인하여 LVM 스토리지를 모니터링할 수 있습니다.
다음 표에서는 topolvm
메트릭을 설명합니다.
경고 | 설명 |
---|---|
| LVM thinpool에 사용된 데이터 공간의 백분율을 나타냅니다. |
| LVM thinpool에 사용된 메타데이터 공간의 백분율을 나타냅니다. |
| LVM 씬 풀의 크기를 바이트 단위로 나타냅니다. |
| LVM 볼륨 그룹의 사용 가능한 공간을 바이트 단위로 나타냅니다. |
| LVM 볼륨 그룹의 크기를 바이트 단위로 나타냅니다. |
| LVM 씬 풀의 사용 가능한 초과 프로비저닝 크기를 바이트 단위로 나타냅니다. |
지표는 10분마다 업데이트되거나 씬 풀에서 새 논리 볼륨 생성과 같은 변경이 있을 때 업데이트됩니다.
5.4.7.2. 경고 링크 복사링크가 클립보드에 복사되었습니다!
thin 풀 및 볼륨 그룹이 최대 스토리지 용량에 도달하면 추가 작업이 실패합니다. 이는 데이터 손실을 초래할 수 있습니다.
LVM 스토리지는 thin 풀 및 볼륨 그룹 사용이 특정 값을 초과하면 다음 경고를 보냅니다.
경고 | 설명 |
---|---|
| 이 경고는 볼륨 그룹과 씬 풀 사용량이 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 볼륨 그룹 확장이 필요합니다. |
| 이 경고는 볼륨 그룹과 씬 풀 사용량이 노드에서 85%를 초과하면 트리거됩니다. 이 경우 볼륨 그룹이 매우 가득 차 있습니다. 데이터 삭제 또는 볼륨 그룹 확장이 필요합니다. |
| 이 경고는 볼륨 그룹의 thin pool data uusage가 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다. |
| 이 경고는 볼륨 그룹의 씬 풀 데이터 사용량이 노드에서 85%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다. |
| 이 경고는 볼륨 그룹의 씬 풀 메타데이터 사용량이 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다. |
| 이 경고는 볼륨 그룹의 씬 풀 메타데이터 사용량이 노드에서 85%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다. |
5.4.8. must-gather를 사용하여 로그 파일 및 진단 정보 다운로드 링크 복사링크가 클립보드에 복사되었습니다!
LVM 스토리지에서 문제를 자동으로 해결할 수 없는 경우 must-gather 툴을 사용하여 로그 파일 및 진단 정보를 수집하여 귀하 또는 Red Hat 지원팀이 문제를 검토하고 솔루션을 결정할 수 있도록 합니다.
프로세스
LVM 스토리지 클러스터에 연결된 클라이언트에서
must-gather
명령을 실행합니다.oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.12 --dest-dir=<directory_name>
$ oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.12 --dest-dir=<directory_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.8.1. Pending 상태에 있는 PVC 조사 링크 복사링크가 클립보드에 복사되었습니다!
PVC(영구 볼륨 클레임)는 여러 가지 이유로 Pending
상태로 고정될 수 있습니다. 예를 들면 다음과 같습니다.
- 컴퓨팅 리소스가 충분하지 않음
- 네트워크 문제
- 일치하지 않는 스토리지 클래스 또는 노드 선택기
- 사용 가능한 볼륨 없음
-
PV(영구 볼륨)가
Not Ready
상태인 노드
oc describe
명령을 사용하여 정지된 PVC에 대한 세부 정보를 검토하여 원인을 식별합니다.
프로세스
다음 명령을 실행하여 PVC 목록을 검색합니다.
oc get pvc
$ oc get pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PVC와 관련된 이벤트를
Pending
상태로 유지합니다.oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pvc_name>
을 PVC 이름으로 바꿉니다. 예를 들면lvms-vg1
입니다.
출력 예
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not found
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.8.2. 누락된 LVMS 또는 Operator 구성 요소에서 복구 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클래스 "Not found" 오류가 발생하면 LVMCluster
리소스를 확인하고 모든 LVMS(Logical Volume Manager Storage) Pod가 실행 중인지 확인합니다. LVMCluster
리소스가 없는 경우 생성할 수 있습니다.
프로세스
다음 명령을 실행하여 LVMCluster 리소스가 있는지 확인합니다.
oc get lvmcluster -n openshift-storage
$ oc get lvmcluster -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE my-lvmcluster 65m
NAME AGE my-lvmcluster 65m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터에
LVMCluster
리소스가 없는 경우 다음 명령을 실행하여 해당 리소스를 생성합니다.oc create -n openshift-storage -f <custom_resource>
$ oc create -n openshift-storage -f <custom_resource>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<custom_resource>
를 요구 사항에 맞는 사용자 정의 리소스 URL 또는 파일로 바꿉니다.
사용자 정의 리소스의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 LVMS의 모든 포드가
openshift-storage
네임스페이스에서Running
상태인지 확인합니다.oc get pods -n openshift-storage
$ oc get pods -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66m
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예상되는 출력은
lvms-operator
및vg-manager
의 인스턴스 중 하나입니다. 각 노드에 대해topolvm-controller
및topolvm-node
의 인스턴스 1개가 예상됩니다.topolvm-node
가Init
상태에 있는 경우 LVMS에서 사용할 사용 가능한 디스크를 찾지 못했습니다. 문제 해결에 필요한 정보를 검색하려면 다음 명령을 실행하여vg-manager
Pod의 로그를 검토합니다.oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
$ oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.8.4. 디스크 장애에서 복구 링크 복사링크가 클립보드에 복사되었습니다!
PVC(영구 볼륨 클레임)와 연결된 이벤트를 검사하는 동안 실패 메시지가 표시되면 기본 볼륨 또는 디스크에 문제가 있을 수 있습니다. 디스크 및 볼륨 프로비저닝 문제는 종종 StorageClass <storage_class_name>을 사용하여 볼륨을 프로비저닝하지 못했습니다
. 일반적으로 보다 구체적인 두 번째 오류 메시지가 표시됩니다.
프로세스
다음 명령을 실행하여 PVC와 관련된 이벤트를 검사합니다.
oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pvc_name>
을 PVC 이름으로 바꿉니다. 다음은 디스크 또는 볼륨 오류 오류 메시지와 그 원인의 몇 가지 예입니다.- 볼륨 존재를 확인하지 못했습니다. 볼륨이 이미 있는지 확인하는 데 문제가 있음을 나타냅니다. 볼륨 확인 오류는 네트워크 연결 문제 또는 기타 오류로 인해 발생할 수 있습니다.
- 볼륨 바인딩 실패: 사용 가능한 PV(영구 볼륨)가 PVC의 요구 사항과 일치하지 않는 경우 볼륨을 바인딩하지 못하는 경우가 발생할 수 있습니다.
- FailedMount 또는 FailedUnMount: 이 오류는 볼륨을 노드에 마운트하거나 노드에서 볼륨을 마운트 해제 할 때 문제가 있음을 나타냅니다. 디스크가 실패한 경우 Pod에서 PVC 사용을 시도할 때 이 오류가 표시될 수 있습니다.
-
볼륨은 이미 하나의 노드에 독점적으로 연결되어 있으며 다른 노드에만 연결되어 있지 않습니다. 이 오류는
ReadWriteMany
액세스 모드를 지원하지 않는 스토리지 솔루션과 함께 표시될 수 있습니다.
- 문제가 발생하는 호스트에 대한 직접 연결을 설정합니다.
- 디스크 문제를 해결합니다.
디스크 문제를 해결한 후 오류 메시지가 유지되거나 다시 발생하는 경우 강제 정리 절차를 수행해야 할 수 있습니다.
5.4.8.5. 강제 정리 수행 링크 복사링크가 클립보드에 복사되었습니다!
문제 해결 절차를 완료한 후 디스크 또는 노드 관련 문제가 지속되는 경우 강제 정리 절차를 수행해야 할 수 있습니다. 강제 정리는 영구 문제를 포괄적으로 해결하고 LVMS의 적절한 기능을 확인하는 데 사용됩니다.
사전 요구 사항
- LVM(Logical Volume Manager) 드라이버를 사용하여 생성된 모든 PVC(영구 볼륨 클레임)가 제거되었습니다.
- 해당 PVC를 사용하는 Pod가 중지되었습니다.
프로세스
다음 명령을 실행하여
openshift-storage
네임스페이스로 전환합니다.oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
Logical Volume
CR(사용자 정의 리소스)이 남아 있지 않은지 확인합니다.oc get logicalvolume
$ oc get logicalvolume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
No resources found
No resources found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LogicalVolume
CR이 남아 있는 경우 다음 명령을 실행하여 종료자를 제거합니다.oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
$ oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>
을 CR 이름으로 바꿉니다.
종료자를 제거한 후 다음 명령을 실행하여 CR을 삭제합니다.
oc delete logicalvolume <name>
$ oc delete logicalvolume <name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>
을 CR 이름으로 바꿉니다.
다음 명령을 실행하여
LVMVolumeGroup
CR이 남아 있지 않은지 확인합니다.oc get lvmvolumegroup
$ oc get lvmvolumegroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
No resources found
No resources found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVMVolumeGroup
CR이 남아 있는 경우 다음 명령을 실행하여 종료자를 제거합니다.oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
$ oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>
을 CR 이름으로 바꿉니다.
종료자를 제거한 후 다음 명령을 실행하여 CR을 삭제합니다.
oc delete lvmvolumegroup <name>
$ oc delete lvmvolumegroup <name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>
을 CR 이름으로 바꿉니다.
다음 명령을 실행하여
LVMVolumeGroupNodeStatus
CR을 제거합니다.oc delete lvmvolumegroupnodestatus --all
$ oc delete lvmvolumegroupnodestatus --all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
LVMCluster
CR을 제거합니다.oc delete lvmcluster --all
$ oc delete lvmcluster --all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow