5.4. 논리 볼륨 관리자 스토리지를 사용하는 영구 스토리지
LVM(Logical Volume Manager) 스토리지는 TopoLVM CSI 드라이버를 통해 LVM2를 사용하여 리소스가 제한된 클러스터에서 로컬 스토리지를 동적으로 프로비저닝합니다. LVM Storage를 사용하면 볼륨 그룹, PVC(영구 볼륨 클레임), 스냅샷 및 복제를 생성할 수 있습니다.
5.4.1. 논리 볼륨 관리자 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
LVM 스토리지를 OpenShift Container Platform 클러스터에 설치하고 워크로드용 스토리지를 동적으로 프로비저닝하도록 구성할 수 있습니다.
OpenShift Container Platform CLI(oc), OpenShift Container Platform 웹 콘솔 또는 RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM 스토리지를 설치할 수 있습니다.
다중 노드 클러스터에서 LVM 스토리지를 사용하는 경우 LVM 스토리지는 로컬 스토리지 프로비저닝만 지원합니다. 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. CLI를 사용하여 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(oc)를 사용하여 LVM Storage를 설치하여 리소스가 제한된 클러스터에서 로컬 스토리지를 동적으로 프로비저닝할 수 있습니다.
LVM Storage Operator의 기본 네임스페이스는 openshift-lvm-storage 입니다.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
cluster-admin및 Operator 설치 권한이 있는 사용자로 OpenShift Container Platform에 로그인했습니다.
프로세스
네임스페이스를 생성하기 위한 구성으로 YAML 파일을 생성합니다.
네임스페이스를 생성하기 위한 YAML 구성의 예
apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/warn: privileged name: openshift-lvm-storage다음 명령을 실행하여 네임스페이스를 생성합니다.
$ oc create -f <file_name>OperatorGroupCR YAML 파일을 생성합니다.OperatorGroupCR의 예apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-lvm-storage spec: targetNamespaces: - openshift-storage다음 명령을 실행하여
OperatorGroupCR을 생성합니다.$ oc create -f <file_name>서브스크립션CR YAML 파일을 생성합니다.서브스크립션CR의 예apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: lvms namespace: openshift-lvm-storage spec: installPlanApproval: Automatic name: lvms-operator source: redhat-operators sourceNamespace: openshift-marketplace다음 명령을 실행하여
서브스크립션CR을 생성합니다.$ oc create -f <file_name>
검증
LVM 스토리지가 설치되었는지 확인하려면 다음 명령을 실행합니다.
$ oc get csv -n openshift-lvm-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase출력 예
Name Phase 4.13.0-202301261535 Succeeded
5.4.1.3. 웹 콘솔을 사용하여 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 웹 콘솔에서 LVM 스토리지를 설치하여 리소스가 제한된 클러스터에서 로컬 스토리지를 동적으로 프로비저닝합니다.
LVM Storage Operator의 기본 네임스페이스는 openshift-lvm-storage 입니다.
사전 요구 사항
- 클러스터에 액세스할 수 있습니다.
-
cluster-admin및 Operator 설치 권한을 사용하여 OpenShift Container Platform에 액세스할 수 있습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Ecosystem
Software Catalog 를 클릭합니다. - 소프트웨어 카탈로그 페이지에서 LVM Storage 를 클릭합니다.
Operator 설치 페이지에서 다음 옵션을 설정합니다.
- Channel을 stable-4.20 으로 업데이트합니다.
- 설치 모드는 클러스터의 특정 네임스페이스 입니다.
-
설치된 네임스페이스 를 Operator 권장 네임스페이스 openshift-storage.
openshift-lvm-storage네임스페이스가 없는 경우 Operator 설치 중에 생성됩니다. 업데이트 승인을 자동 또는 수동으로 업데이트합니다.
참고자동 업데이트를 선택하면 OLM(Operator Lifecycle Manager)이 개입 없이 실행 중인 LVM 스토리지 인스턴스를 자동으로 업데이트합니다.
수동 업데이트를 선택하면 OLM에서 업데이트 요청을 생성합니다. 클러스터 관리자는 LVM 스토리지를 최신 버전으로 업데이트하기 위해 업데이트 요청을 수동으로 승인해야 합니다.
- 선택 사항: 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화 확인란을 선택합니다.
- 설치를 클릭합니다.
검증
- LVM 스토리지에 성공적인 설치를 나타내는 녹색 눈금이 표시되는지 확인합니다.
5.4.1.4. 연결이 끊긴 환경에 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터가 인터넷에 액세스할 수 없는 연결이 끊긴 환경(예: 공공 간격 네트워크, 고보안 시설 또는 보안 및 규정 준수를 위해 네트워크 분리가 필요한 규제된 산업)에 LVM 스토리지를 설치합니다.
사전 요구 사항
- "연결 해제된 설치 미러링 정보"를 읽으셨습니다.
- OpenShift Container Platform 이미지 리포지토리에 액세스할 수 있습니다.
- 미러 레지스트리를 생성했습니다(Red Hat OpenShift 용 미러 레지스트리를 사용한 미러 레지스트리 생성 단원을 참조하십시오).
프로세스
"이미지 세트 구성 생성" 절차의 단계를 따르십시오. LVM 스토리지에 대한
ImageSetConfigurationCR(사용자 정의 리소스)을 생성하려면 다음 예제ImageSetConfigurationCR 구성을 사용하면 됩니다.LVM 스토리지의
ImageSetConfigurationCR의 예kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 archiveSize: 4 storageConfig: registry: imageURL: example.com/mirror/oc-mirror-metadata skipTLS: false mirror: platform: channels: - name: stable-4.20 type: ocp graph: true operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.20 packages: - name: lvms-operator channels: - name: stable additionalImages: - name: registry.redhat.io/ubi9/ubi:latest helm: {}-
archiveSize: 이미지 세트 내에서 각 파일의 최대 크기를 GiB 단위로 설정합니다. -
storageConfig: 이미지 세트를 저장할 위치를 지정합니다. 이 위치는 레지스트리 또는 로컬 디렉터리일 수 있습니다. 기술 프리뷰 OCI 기능을 사용하지 않는 한storageConfig필드를 구성해야 합니다. -
storageConfig.registry.imageURL: 레지스트리를 사용할 때 이미지 스트림의 스토리지 URL을 지정합니다. 자세한 내용은 “이미지 스트림 사용 이유”를 참조하십시오. -
mirror.platform.name: OpenShift Container Platform 이미지를 검색할 채널을 지정합니다. -
mirror.platform.channels[].name: 이 필드를 OSSUS(OpenShift Update Service) 그래프 이미지를 생성하도록true로설정합니다. 자세한 내용은 "OpenShift 업데이트 서비스 정보"를 참조하십시오. -
mirror.operators.catalog: OpenShift Container Platform 이미지를 검색할 Operator 카탈로그를 지정합니다. -
mirror.operators.packages.name: 이미지 세트에 포함할 Operator 패키지를 지정합니다. 이 필드가 비어 있으면 카탈로그의 모든 패키지가 검색됩니다. -
mirror.operators[].packages[].channels.name: 이미지 세트에 포함할 Operator 패키지의 채널을 지정합니다. 해당 채널에서 번들을 사용하지 않는 경우에도 Operator 패키지의 기본 채널을 포함해야 합니다. 다음 명령을 실행하여 기본 채널을 찾을 수 있습니다.$ oc mirror list operators --catalog=<catalog_name> --package=<package_name>. -
mirror.additionalImages.name: 이미지 세트에 포함할 추가 이미지를 지정합니다.
-
- 미러 레지스트리로 이미지 세트 미러링 섹션의 절차를 따르십시오.
- “이미지 레지스트리 저장소 미러링 구성”의 절차를 따르십시오.
5.4.1.5. RHACM을 사용하여 LVM 스토리지 설치 링크 복사링크가 클립보드에 복사되었습니다!
RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM 스토리지를 클러스터에 설치하려면 전문 사용자 정의 리소스(CR)를 생성하고 대상 클러스터를 선택하도록 기준을 구성해야 합니다.
LVM 스토리지를 설치하기 위해 생성된 Policy CR은 Policy CR을 생성한 후 가져오거나 생성한 클러스터에도 적용됩니다.
사전 요구 사항
-
cluster-admin및 Operator 설치 권한이 있는 계정을 사용하여 RHACM 클러스터에 액세스할 수 있습니다. - 각 클러스터에서 LVM 스토리지를 사용할 수 있는 전용 디스크가 있습니다.
- 클러스터는 RHACM에서 관리해야 합니다.
프로세스
- OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
네임스페이스를 생성합니다.
$ oc create ns <namespace>PolicyCR YAML 파일을 생성합니다.LVM 스토리지를 설치하고 구성하는
PolicyCR의 예apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-install-lvms spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - key: mykey operator: In values: - myvalue --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-install-lvms placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-install-lvms subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: install-lvms --- apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: annotations: policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration policy.open-cluster-management.io/standards: NIST SP 800-53 name: install-lvms spec: disabled: false remediationAction: enforce policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: install-lvms spec: object-templates: - complianceType: musthave objectDefinition: apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/warn: privileged name: openshift-lvm-storage - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-lvm-storage spec: targetNamespaces: - openshift-lvm-storage - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: lvms namespace: openshift-lvm-storage spec: installPlanApproval: Automatic name: lvms-operator source: redhat-operators sourceNamespace: openshift-marketplace remediationAction: enforce severity: low-
spec.clusterSelector:PlacementRule.spec.clusterSelector의key필드와values필드를 LVM Storage를 설치하려는 클러스터에 구성된 라벨과 일치하도록 설정합니다. -
spec.policy-templates[0].objectDefinition[0].spec.object-templates[0].objectDefinition: 네임스페이스 구성을 지정합니다. -
spec.policy-templates[0].objectDefinition[1].spec.object-templates[1].objectDefinition:OperatorGroupCR 구성을 지정합니다. -
spec.policy-templates[0].objectDefinition.spec.object-templates[2].objectDefinition:SubscriptionCR 구성을 지정합니다.
-
다음 명령을 실행하여
PolicyCR을 생성합니다.$ oc create -f <file_name> -n <namespace>PolicyCR을 생성할 때PlacementRuleCR에 구성된 선택 기준과 일치하는 클러스터에서 다음 사용자 정의 리소스가 생성됩니다.-
네임스페이스 -
OperatorGroup 서브스크립션참고LVM Storage Operator의 기본 네임스페이스는
openshift-lvm-storage입니다.
-