3.3. PV(영구 볼륨)
각 PV에는 사양
및 상태
가 포함됩니다. 이는 볼륨의 사양과 상태이고 예는 다음과 같습니다.
PersistentVolume
오브젝트 정의 예
다음 명령을 실행하면 PV에 바인딩된 PVC의 이름을 볼 수 있습니다.
oc get pv <pv_name> -o jsonpath='{.spec.claimRef.name}'
$ oc get pv <pv_name> -o jsonpath='{.spec.claimRef.name}'
3.3.1. PV 유형 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 다음과 같은 영구 볼륨 플러그인을 지원합니다.
- 기본적으로 설치되는 AWS Elastic Block Store(EBS).
- AWS Elastic File Store(EFS)
- Azure Disk
- Azure File
- Cinder
- 파이버 채널
- GCP 영구 디스크
- GCP 파일스토어
- IBM Power Virtual Server Block
- IBM Cloud® VPC Block
- HostPath
- iSCSI
- 로컬 볼륨
- NFS
- OpenStack Manila
- Red Hat OpenShift Data Foundation
- CIFS/SMB
- VMware vSphere
3.3.2. 용량 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 PV(영구 볼륨)에는 특정 스토리지 용량이 있습니다. 이는 PV의 용량
속성을 사용하여 설정됩니다.
현재는 스토리지 용량이 설정 또는 요청할 수 있는 유일한 리소스뿐입니다. 향후 속성에는 IOPS, 처리량 등이 포함될 수 있습니다.
3.3.3. 액세스 모드 링크 복사링크가 클립보드에 복사되었습니다!
영구 볼륨은 리소스 공급자가 지원하는 방식으로 호스트에 볼륨을 마운트될 수 있습니다. 공급자에 따라 기능이 다르며 각 PV의 액세스 모드는 해당 볼륨에서 지원하는 특정 모드로 설정됩니다. 예를 들어, NFS에서는 여러 읽기-쓰기 클라이언트를 지원할 수 있지만 특정 NFS PV는 서버에서 읽기 전용으로 내보낼 수 있습니다. 각 PV는 특정 PV의 기능을 설명하는 자체 액세스 모드 세트를 가져옵니다.
클레임은 액세스 모드가 유사한 볼륨과 매칭됩니다. 유일하게 일치하는 두 가지 기준은 액세스 모드와 크기입니다. 클레임의 액세스 모드는 요청을 나타냅니다. 따라서 더 많이 부여될 수 있지만 절대로 부족하게는 부여되지 않습니다. 예를 들어, 클레임 요청이 RWO이지만 사용 가능한 유일한 볼륨이 NFS PV(RWO+ROX+RWX)인 경우, RWO를 지원하므로 클레임이 NFS와 일치하게 됩니다.
항상 직접 일치가 먼저 시도됩니다. 볼륨의 모드는 사용자의 요청과 일치하거나 더 많은 모드를 포함해야 합니다. 크기는 예상되는 크기보다 크거나 같아야 합니다. NFS 및 iSCSI와 같은 두 개의 볼륨 유형에 동일한 액세스 모드 세트가 있는 경우 둘 중 하나를 해당 모드와 클레임과 일치시킬 수 있습니다. 볼륨 유형과 특정 유형을 선택할 수 있는 순서는 없습니다.
모드가 동일한 모든 볼륨이 그룹화된 후 크기 오름차순으로 크기가 정렬됩니다. 바인더는 모드가 일치하는 그룹을 가져온 후 크기가 일치하는 그룹을 찾을 때까지 크기 순서대로 각 그룹에 대해 반복합니다.
볼륨 액세스 모드는 볼륨 기능을 설명합니다. 제한 조건이 적용되지 않습니다. 리소스를 잘못된 사용으로 인한 런타임 오류는 스토리지 공급자가 처리합니다. 공급자에서의 오류는 런타임 시 마운트 오류로 표시됩니다.
예를 들어, NFS는 ReadWriteOnce
액세스 모드를 제공합니다. 볼륨의 ROX 기능을 사용하려면 클레임을 ReadOnlyMany
로 표시합니다.
iSCSI 및 파이버 채널 볼륨은 현재 펜싱 메커니즘을 지원하지 않습니다. 볼륨을 한 번에 하나씩만 사용하는지 확인해야 합니다. 노드 드레이닝과 같은 특정 상황에서는 두 개의 노드에서 볼륨을 동시에 사용할 수 있습니다. 노드를 비우기 전에 볼륨을 사용하는 포드를 삭제합니다.
다음 표에는 액세스 모드가 나열되어 있습니다.
액세스 모드 | CLI 약어 | 설명 |
---|---|---|
ReadWriteOnce |
| 볼륨은 단일 노드에서 읽기-쓰기로 마운트할 수 있습니다. |
ReadWriteOncePod [1] |
| 볼륨은 단일 노드의 단일 포드에 의해 읽기-쓰기로 마운트될 수 있습니다. |
ReadOnlyMany |
| 볼륨은 여러 노드에서 읽기 전용으로 마운트할 수 있습니다. |
ReadWriteMany |
| 볼륨은 여러 노드에서 읽기-쓰기로 마운트할 수 있습니다. |
- RWOP는 SELinux 마운트 기능을 사용합니다. 이 기능은 드라이버에 따라 달라지며 AWS EBS, Azure Disk, GCP PD, IBM Cloud Block Storage 볼륨, Cinder, vSphere 및 Red Hat OpenShift Data Foundation에서 기본적으로 활성화되어 있습니다. 타사 드라이버의 경우 스토리지 공급업체에 문의하세요.
볼륨 플러그인 | ReadWriteOnce [1] | ReadWriteOncePod | ReadOnlyMany | ReadWriteMany |
---|---|---|---|---|
AWS EBS [2] |
✅ |
✅ |
|
|
AWS EFS |
✅ |
✅ |
✅ |
✅ |
Azure File |
✅ |
✅ |
✅ |
✅ |
Azure Disk |
✅ |
✅ |
|
|
CIFS/SMB |
✅ |
✅ |
✅ |
✅ |
Cinder |
✅ |
✅ |
|
|
파이버 채널 |
✅ |
✅ |
✅ |
✅ [3] |
GCP 영구 디스크 |
✅ [4] |
✅ |
✅ |
✅ [4] |
GCP 파일스토어 |
✅ |
✅ |
✅ |
✅ |
HostPath |
✅ |
✅ |
|
|
IBM Power Virtual Server 디스크 |
✅ |
✅ |
✅ |
✅ |
IBM Cloud® VPC 디스크 |
✅ |
✅ |
|
|
iSCSI |
✅ |
✅ |
✅ |
✅ [3] |
로컬 볼륨 |
✅ |
✅ |
|
|
LVM 스토리지 |
✅ |
✅ |
|
|
NFS |
✅ |
✅ |
✅ |
✅ |
OpenStack Manila |
|
✅ |
|
✅ |
Red Hat OpenShift Data Foundation |
✅ |
✅ |
|
✅ |
VMware vSphere |
✅ |
✅ |
|
✅ [5] |
- ReadWriteOnce(RWO) 볼륨은 여러 노드에 마운트할 수 없습니다. 시스템이 이미 실패한 노드에 할당되어 있기 때문에, 노드가 실패하면 시스템은 연결된 RWO 볼륨을 새 노드에 마운트하는 것을 허용하지 않습니다. 이로 인해 다중 연결 오류 메시지가 표시되면 동적 영구 볼륨이 연결된 경우와 같이 중요한 워크로드에서의 데이터가 손실되는 것을 방지하기 위해 종료되거나 충돌이 발생한 노드에서 Pod를 삭제해야 합니다.
- AWS EBS 기반 Pod에 재생성 배포 전략을 사용합니다.
-
원시 블록 볼륨만이 파이버 채널 및 iSCSI에 대한
ReadWriteMany
(RWX) 액세스 모드를 지원합니다. 자세한 내용은 "블록 볼륨 지원"을 참조하세요. GCP 하이퍼디스크 균형 디스크의 경우:
지원되는 액세스 모드는 다음과 같습니다.
-
ReadWriteOnce
-
ReadWriteMany
-
-
ReadWriteMany
액세스 모드가 활성화된 디스크의 경우 복제 및 스냅샷 기능이 비활성화됩니다. -
ReadWriteMany
에서 단일 하이퍼디스크 균형 디스크 볼륨을 최대 8개의 인스턴스에 연결할 수 있습니다. -
ReadWriteMany
에서 디스크 크기를 조정하려면 모든 인스턴스에서 디스크를 분리해야 합니다. - 추가적인 제한 사항 .
-
기본 vSphere 환경이 vSAN 파일 서비스를 지원하는 경우 OpenShift Container Platform에서 설치한 vSphere Container Storage Interface(CSI) Driver Operator는 RWX(ReadWriteMany) 볼륨의 프로비저닝을 지원합니다. vSAN 파일 서비스가 구성되어 있지 않고 RWX를 요청하면 볼륨이 생성되지 않고 오류가 기록됩니다. 자세한 내용은 "컨테이너 스토리지 인터페이스 사용"
"VMware vSphere CSI 드라이버 운영자"를 참조하세요.
3.3.4. 단계 링크 복사링크가 클립보드에 복사되었습니다!
볼륨은 다음 단계 중 하나에서 찾을 수 있습니다.
단계 | 설명 |
---|---|
Available | 아직 클레임에 바인딩되지 않은 여유 리소스입니다. |
Bound | 볼륨이 클레임에 바인딩됩니다. |
해제됨 | 클레임이 삭제되었지만, 리소스가 아직 클러스터에 의해 회수되지 않았습니다. |
실패 | 볼륨에서 자동 회수가 실패했습니다. |
3.3.4.1. 마지막 단계 전환 시간 링크 복사링크가 클립보드에 복사되었습니다!
LastPhaseTransitionTime
필드에는 지속적 볼륨(PV)이 다른 단계( pv.Status.Phase
)로 전환될 때마다 업데이트되는 타임스탬프가 있습니다. PV의 마지막 단계 전환 시간을 찾으려면 다음 명령을 실행하세요.
oc get pv <pv_name> -o json | jq '.status.lastPhaseTransitionTime'
$ oc get pv <pv_name> -o json | jq '.status.lastPhaseTransitionTime'
- 1
- 마지막 단계 전환을 보고 싶은 PV의 이름을 지정하세요.
3.3.4.2. 마운트 옵션 링크 복사링크가 클립보드에 복사되었습니다!
mountOptions
속성을 사용하여 PV를 마운트하는 동안 마운트 옵션을 지정할 수 있습니다.
예를 들면 다음과 같습니다.
마운트 옵션 예
- 1
- 지정된 마운트 옵션이 PV를 디스크에 마운트하는 동안 사용됩니다.
다음 PV 유형에서는 마운트 옵션을 지원합니다.
- AWS Elastic Block Store (EBS)
- AWS 탄력적 파일 스토리지(EFS)
- Azure Disk
- Azure File
- Cinder
- GCE 영구 디스크
- iSCSI
- 로컬 볼륨
- NFS
- Red Hat OpenShift Data Foundation(Ceph RBD만 해당)
- CIFS/SMB
- VMware vSphere
파이버 채널 및 HostPath PV는 마운트 옵션을 지원하지 않습니다.