5.4. 논리 볼륨 관리자 스토리지를 사용하는 영구 스토리지


LVM(Logical Volume Manager) 스토리지는 CSI(Logical Volume Manager) 드라이버를 통해 LVM2(Logical Volume Manager)를 사용하여 제한된 리소스가 있는 클러스터에서 로컬 스토리지를 동적으로 프로비저닝합니다.

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. CLI를 사용하여 LVM 스토리지 설치

클러스터 관리자는 OpenShift CLI(oc)를 사용하여 LVM(Logical Volume Manager) 스토리지를 설치할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 및 Operator 설치 권한이 있는 사용자로 OpenShift Container Platform에 로그인했습니다.

프로세스

  1. 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-storage
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 네임스페이스를 생성합니다.

    $ oc create -f <file_name>
    Copy to Clipboard Toggle word wrap
  3. OperatorGroup CR(사용자 정의 리소스) YAML 파일을 생성합니다.

    OperatorGroup CR의 예

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-storage-operatorgroup
      namespace: openshift-storage
    spec:
      targetNamespaces:
      - openshift-storage
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 OperatorGroup CR을 생성합니다.

    $ oc create -f <file_name>
    Copy to Clipboard Toggle word wrap
  5. 서브스크립션 CR YAML 파일을 생성합니다.

    서브스크립션 CR의 예

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: lvms
      namespace: openshift-storage
    spec:
      installPlanApproval: Automatic
      name: lvms-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    Copy to Clipboard Toggle word wrap

  6. 다음 명령을 실행하여 서브스크립션 CR을 생성합니다.

    $ oc create -f <file_name>
    Copy to Clipboard Toggle word wrap

검증

  1. LVM 스토리지가 설치되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase
    Copy to Clipboard Toggle word wrap

    출력 예

    Name                         Phase
    4.13.0-202301261535          Succeeded
    Copy to Clipboard Toggle word wrap

5.4.1.3. 웹 콘솔을 사용하여 LVM 스토리지 설치

OpenShift Container Platform 웹 콘솔을 사용하여 LVM(Logical Volume Manager) 스토리지를 설치할 수 있습니다.

사전 요구 사항

  • 단일 노드 OpenShift 클러스터에 액세스할 수 있습니다.
  • cluster-admin 및 Operator 설치 권한을 사용하여 OpenShift Container Platform에 액세스할 수 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators OperatorHub를 클릭합니다.
  3. OperatorHub 페이지에서 LVM Storage 를 클릭합니다.
  4. Operator 설치 페이지에서 다음 옵션을 설정합니다.

    1. 채널을 stable-4.14업데이트합니다.
    2. 설치 모드는 클러스터의 특정 네임스페이스 입니다.
    3. 설치된 네임스페이스Operator 권장 네임스페이스 openshift-storage. openshift-storage 네임스페이스가 없는 경우 Operator 설치 중에 생성됩니다.
    4. 업데이트 승인자동 또는 수동으로 업데이트합니다.

      참고

      자동 업데이트를 선택하면 OLM(Operator Lifecycle Manager)이 개입 없이 실행 중인 LVM 스토리지 인스턴스를 자동으로 업데이트합니다.

      수동 업데이트를 선택하면 OLM에서 업데이트 요청을 생성합니다. 클러스터 관리자는 LVM 스토리지를 최신 버전으로 업데이트하기 위해 업데이트 요청을 수동으로 승인해야 합니다.

  5. 선택 사항: 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화 확인란을 선택합니다.
  6. 설치를 클릭합니다.

검증 단계

  • LVM 스토리지에 성공적인 설치를 나타내는 녹색 눈금이 표시되는지 확인합니다.

5.4.1.4. 연결이 끊긴 환경에 LVM 스토리지 설치

연결이 끊긴 환경에서 OpenShift Container Platform 4.14에 LVM(Logical Volume Manager) 스토리지를 설치할 수 있습니다. 이 절차에서 참조하는 모든 섹션은 "추가 리소스" 섹션에 연결되어 있습니다.

사전 요구 사항

  • "연결 해제된 설치 미러링 정보" 섹션을 읽습니다.
  • OpenShift Container Platform 이미지 리포지토리에 액세스할 수 있습니다.
  • 미러 레지스트리를 생성하셨습니다.

프로세스

  1. "이미지 세트 구성 생성" 절차의 단계를 따르십시오. LVM 스토리지에 대한 이미지 세트 구성을 생성하려면 다음 예제 ImageSetConfiguration 오브젝트 구성을 사용할 수 있습니다.

    LVM 스토리지의 ImageSetConfiguration 파일 예

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    archiveSize: 4 
    1
    
    storageConfig: 
    2
    
      registry:
        imageURL: example.com/mirror/oc-mirror-metadata 
    3
    
        skipTLS: false
    mirror:
      platform:
        channels:
        - name: stable-4.14 
    4
    
          type: ocp
        graph: true 
    5
    
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14 
    6
    
        packages:
        - name: lvms-operator 
    7
    
          channels:
          - name: stable 
    8
    
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest 
    9
    
      helm: {}
    Copy to Clipboard Toggle word wrap

    1
    이미지 세트 내에서 각 파일의 최대 크기(GB 단위)를 설정합니다.
    2
    이미지 세트를 저장할 위치를 지정합니다. 이 위치는 레지스트리 또는 로컬 디렉터리일 수 있습니다.
    3
    레지스트리를 사용할 때 이미지 스트림의 스토리지 URL을 지정합니다. 자세한 내용은 "이미지 스트림을 사용하는 이유"를 참조하십시오.
    4
    OpenShift Container Platform 이미지를 검색할 채널을 지정합니다.
    5
    OSUS(OpenShift Update Service) 그래프 이미지를 생성하려면 이 필드를 true 로 설정합니다. 자세한 내용은 "OpenShift 업데이트 서비스 정보"를 참조하십시오.
    6
    OpenShift Container Platform 이미지를 검색할 Operator 카탈로그를 지정합니다.
    7
    이미지 세트에 포함할 Operator 패키지를 지정합니다. 이 필드가 비어 있으면 카탈로그의 모든 패키지가 검색됩니다.
    8
    이미지 세트에 포함할 Operator 패키지의 채널을 지정합니다. 해당 채널에서 번들을 사용하지 않는 경우에도 Operator 패키지의 기본 채널을 포함해야 합니다. 다음 명령을 실행하여 기본 채널을 찾을 수 있습니다. $ oc mirror list operators --catalog=<catalog_name> --package=<package_name > .
    9
    이미지 세트에 포함할 추가 이미지를 지정합니다.
  2. " 미러 레지스트리로 설정된 이미지 미러링" 섹션의 절차를 따르십시오.
  3. "이미지 레지스트리 저장소 미러링 구성" 섹션의 절차를 따르십시오.

5.4.1.5. RHACM을 사용하여 LVM 스토리지 설치

RHACM(Red Hat Advanced Cluster Management)을 사용하여 클러스터에 LVM(Logical Volume Manager) 스토리지를 설치하려면 Policy CR(사용자 정의 리소스)을 생성해야 합니다. LVM 스토리지를 설치할 클러스터를 선택하도록 기준을 구성할 수도 있습니다.

참고

LVM 스토리지를 설치하기 위해 생성된 Policy CR은 Policy CR을 생성한 후 가져오거나 생성한 클러스터에도 적용됩니다.

사전 요구 사항

  • cluster-admin 및 Operator 설치 권한이 있는 계정을 사용하여 RHACM 클러스터에 액세스할 수 있습니다.
  • 각 클러스터에서 LVM 스토리지를 사용할 수 있는 전용 디스크가 있습니다.
  • 클러스터는 RHACM에서 관리해야 합니다.

프로세스

  1. OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
  2. 다음 명령을 실행하여 네임스페이스를 생성합니다.

    $ oc create ns <namespace>
    Copy to Clipboard Toggle word wrap
  3. Policy CR YAML 파일을 생성합니다.

    LVM 스토리지를 설치하고 구성하는 Policy CR의 예

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-install-lvms
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector: 
    1
    
        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: 
    2
    
                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-storage
            - complianceType: musthave
              objectDefinition: 
    3
    
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: openshift-storage-operatorgroup
                  namespace: openshift-storage
                spec:
                  targetNamespaces:
                  - openshift-storage
            - complianceType: musthave
              objectDefinition: 
    4
    
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: lvms
                  namespace: openshift-storage
                spec:
                  installPlanApproval: Automatic
                  name: lvms-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
            remediationAction: enforce
            severity: low
    Copy to Clipboard Toggle word wrap

    1
    LVM 스토리지를 설치하려는 클러스터에 구성된 라벨과 일치하도록 PlacementRule.spec.clusterSelectorkey 필드 및 values 필드를 설정합니다.
    2
    네임스페이스 구성입니다.
    3
    OperatorGroup CR 구성입니다.
    4
    서브스크립션 CR 구성입니다.
  4. 다음 명령을 실행하여 Policy CR을 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

    Policy CR을 생성할 때 PlacementRule CR에 구성된 선택 기준과 일치하는 클러스터에서 다음 사용자 정의 리소스가 생성됩니다.

    • 네임스페이스
    • OperatorGroup
    • 서브스크립션

5.4.2. LVMCluster 사용자 정의 리소스 정보

다음 작업을 수행하도록 LVMCluster CR(사용자 정의 리소스)을 구성할 수 있습니다.

  • PVC(영구 볼륨 클레임)를 프로비저닝하는 데 사용할 수 있는 LVM 볼륨 그룹을 생성합니다.
  • LVM 볼륨 그룹에 추가할 장치 목록을 구성합니다.
  • LVM 볼륨 그룹을 생성할 노드와 볼륨 그룹에 대한 thin 풀 구성을 선택하도록 요구 사항을 구성합니다.

LVM 스토리지를 설치한 후 LVMCluster CR(사용자 정의 리소스)을 생성해야 합니다.

LVMCluster CR YAML 파일의 예

apiVersion: lvm.topolvm.io/v1alpha1
kind: LVMCluster
metadata:
  name: my-lvmcluster
spec:
  tolerations:
  - effect: NoSchedule
    key: xyz
    operator: Equal
    value: "true"
  storage:
    deviceClasses:
    - name: vg1
      fstype: ext4 
1

      default: true
      nodeSelector: 
2

        nodeSelectorTerms:
        - matchExpressions:
          - key: mykey
            operator: In
            values:
            - ssd
      deviceSelector: 
3

        paths:
        - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
        - /dev/disk/by-path/pci-0000:88:00.0-nvme-1
        optionalPaths:
        - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
        - /dev/disk/by-path/pci-0000:90:00.0-nvme-1
      thinPoolConfig:
        name: thin-pool-1
        sizePercent: 90 
4

        overprovisionRatio: 10
Copy to Clipboard Toggle word wrap

1 2 3 4
선택적 필드

5.4.2.1. LVMCluster CR의 필드에 대한 설명

LVMCluster CR 필드는 다음 표에 설명되어 있습니다.

Expand
표 5.5. LVMCluster CR 필드
필드유형설명

spec.storage.deviceClasses

array

로컬 스토리지 장치를 LVM 볼륨 그룹에 할당하는 구성이 포함되어 있습니다.

LVM Storage는 사용자가 생성하는 각 장치 클래스에 대한 스토리지 클래스 및 볼륨 스냅샷 클래스를 생성합니다.

장치 클래스를 추가하거나 제거하면 topolvm-node Pod를 삭제하고 다시 생성한 후에만 클러스터에 반영됩니다.

deviceClasses.name

string

LVM 볼륨 그룹(VG)의 이름을 지정합니다.

deviceClasses.fstype

string

이 필드를 ext4 또는 xfs 로 설정합니다. 기본적으로 이 필드는 xfs 로 설정됩니다.

deviceClasses.default

boolean

장치 클래스가 기본값임을 나타내려면 이 필드를 true 로 설정합니다. 그렇지 않으면 false 로 설정할 수 있습니다. 단일 기본 장치 클래스만 구성할 수 있습니다.

deviceClasses.nodeSelector

object

LVM 볼륨 그룹을 만들 노드를 선택하는 구성이 포함되어 있습니다. 이 필드가 비어 있으면 스케줄 테인트가 없는 모든 노드가 고려됩니다.

control-plane 노드에서 LVM Storage는 클러스터에서 새 노드가 활성화될 때 추가 작업자 노드를 감지하고 사용합니다.

nodeSelector.nodeSelectorTerms

array

노드를 선택하는 데 사용되는 요구 사항을 구성합니다.

deviceClasses.deviceSelector

object

LVM 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다.

자세한 내용은 "볼륨 그룹에 장치 추가 정보"를 참조하십시오.

deviceSelector.paths

array

장치 경로를 지정합니다.

이 필드에 지정된 장치 경로가 없으면 LVMCluster CR이 Failed 상태로 이동합니다.

deviceSelector.optionalPaths

array

선택적 장치 경로를 지정합니다.

이 필드에 지정된 장치 경로가 없으면 LVM 스토리지에서 오류가 발생하지 않고 장치를 무시합니다.

deviceClasses.thinPoolConfig

object

LVM 볼륨 그룹에 씬 풀을 만드는 구성이 포함되어 있습니다.

thinPoolConfig.name

string

thin 풀의 이름을 지정합니다.

thinPoolConfig.sizePercent

integer

thin 풀을 생성하기 위한 LVM 볼륨 그룹의 공간 백분율을 지정합니다.

기본적으로 이 필드는 90으로 설정됩니다. 설정할 수 있는 최소값은 10이며 최대값은 90입니다.

thinPoolConfig.overprovisionRatio

integer

씬 풀에서 사용 가능한 스토리지를 기반으로 추가 스토리지를 프로비저닝할 수 있는 인수를 지정합니다.

예를 들어 이 필드가 10으로 설정된 경우 thin 풀에서 사용 가능한 스토리지 양을 최대 10배까지 프로비저닝할 수 있습니다.

오버 프로비저닝을 비활성화하려면 이 필드를 1로 설정합니다.

5.4.2.2. 볼륨 그룹에 장치 추가 정보

LVMCluster CR(사용자 정의 리소스)의 deviceSelector 필드에는 LVM 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다.

deviceSelector.paths 필드, deviceSelector.optionalPaths 필드 또는 둘 다에서 장치 경로를 지정할 수 있습니다. deviceSelector.paths 필드와 deviceSelector.optionalPaths 필드의 장치 경로를 지정하지 않으면 LVM 스토리지에서 사용하지 않는 장치를 LVM 볼륨 그룹에 추가합니다.

주의

RHCOS 내에서 재부팅 시 이러한 이름이 변경될 수 있으므로 /dev/sdX 와 같은 심볼릭 이름을 사용하여 디스크를 참조하는 것을 방지하는 것이 좋습니다. 대신 일관된 디스크 식별을 위해 /dev/disk/by-path/ 또는 /dev/disk/by-id/ 와 같은 안정적인 이름 지정 체계를 사용해야 합니다.

이 변경으로 모니터링에서 각 노드의 설치 장치에 대한 정보를 수집하는 경우 기존 자동화 워크플로를 조정해야 할 수 있습니다.

자세한 내용은 RHEL 설명서 를 참조하십시오.

LVMCluster CR에 deviceSelector 필드를 추가하지 않으면 LVM 스토리지에서 장치를 사용할 수 있을 때 새 장치를 자동으로 추가합니다.

LVM 스토리지는 장치 경로가 존재하는 경우에만 LVM 볼륨 그룹에 장치를 추가합니다.

중요

장치를 LVM 볼륨 그룹에 추가한 후에는 제거할 수 없습니다.

5.4.3. LVMCluster 사용자 정의 리소스를 생성하는 방법

OpenShift CLI(oc) 또는 OpenShift Container Platform 웹 콘솔을 사용하여 LVMCluster CR(사용자 정의 리소스)을 생성할 수 있습니다. RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM Storage를 설치한 경우 RHACM을 사용하여 LVMCluster CR을 생성할 수도 있습니다.

LVMCluster CR을 생성할 때 LVM 스토리지에서 다음 시스템 관리 CR을 생성합니다.

  • 각 장치 클래스에 대한 storageClassvolumeSnapshotClass 입니다.

    참고

    LVM 스토리지는 lvms-<device_class_name> 형식으로 스토리지 클래스 및 볼륨 스냅샷 클래스의 이름을 구성합니다. 여기서 < device_class_name >은 LVMCluster CR의 deviceClasses.name 필드의 값입니다. 예를 들어 deviceClasses.name 필드가 Cryostat1로 설정된 경우 스토리지 클래스 및 볼륨 스냅샷 클래스의 이름은 lvms- vg1 입니다.

  • LVMVolumeGroup: 이 CR은 LVM 볼륨 그룹에서 지원하는 특정 유형의 PV(영구 볼륨)입니다. 여러 노드에서 개별 볼륨 그룹을 추적합니다.
  • LVMVolumeGroupNodeStatus: 이 CR은 노드에서 볼륨 그룹의 상태를 추적합니다.

5.4.3.1. CLI를 사용하여 LVMCluster CR 생성

OpenShift CLI(oc)를 사용하여 작업자 노드에 LVMCluster CR(사용자 정의 리소스)을 생성할 수 있습니다.

중요

OpenShift Container Platform 클러스터에서 LVMCluster CR(사용자 정의 리소스)의 단일 인스턴스만 생성할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 로그인했습니다.
  • LVM 스토리지를 설치했습니다.
  • 클러스터에 작업자 노드가 설치되어 있습니다.
  • "LVMCluster 사용자 정의 리소스 정보" 섹션을 읽습니다.

프로세스

  1. LVMCluster CR(사용자 정의 리소스) YAML 파일을 생성합니다.

    LVMCluster CR YAML 파일의 예

    apiVersion: lvm.topolvm.io/v1alpha1
    kind: LVMCluster
    metadata:
      name: my-lvmcluster
      namespace: openshift-storage
    spec:
    # ...
      storage:
        deviceClasses: 
    1
    
    # ...
          nodeSelector: 
    2
    
    # ...
          deviceSelector: 
    3
    
    # ...
          thinPoolConfig: 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    로컬 스토리지 장치를 LVM 볼륨 그룹에 할당하는 구성이 포함되어 있습니다.
    2
    LVM 볼륨 그룹을 만들 노드를 선택하는 구성이 포함되어 있습니다. 이 필드가 비어 있으면 스케줄 테인트가 없는 모든 노드가 고려됩니다.
    3
    LVM 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다.
    4
    LVM 볼륨 그룹에 씬 풀을 만드는 구성이 포함되어 있습니다.
  2. 다음 명령을 실행하여 LVMCluster CR을 생성합니다.

    $ oc create -f <file_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    lvmcluster/lvmcluster created
    Copy to Clipboard Toggle word wrap

검증

  1. LVMCluster CR이 Ready 상태인지 확인합니다.

    $ oc get lvmclusters.lvm.topolvm.io -o jsonpath='{.items[*].status.state}' -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    {"deviceClassStatuses": 
    1
    
    [
      {
        "name": "vg1",
        "nodeStatus": [ 
    2
    
            {
                "devices": [ 
    3
    
                    "/dev/nvme0n1",
                    "/dev/nvme1n1",
                    "/dev/nvme2n1"
                ],
                "node": "kube-node", 
    4
    
                "status": "Ready" 
    5
    
            }
        ]
      }
    ]
    "state":"Ready"} 
    6
    Copy to Clipboard Toggle word wrap

    1
    장치 클래스의 상태입니다.
    2
    각 노드의 LVM 볼륨 그룹의 상태입니다.
    3
    LVM 볼륨 그룹을 만드는 데 사용되는 장치 목록입니다.
    4
    장치 클래스가 생성되는 노드입니다.
    5
    노드의 LVM 볼륨 그룹의 상태입니다.
    6
    LVMCluster CR의 상태.
    참고

    LVMCluster CR이 Failed 상태인 경우 status 필드에서 실패 이유를 볼 수 있습니다.

    실패 이유가 있는 status 필드의 예:

    status:
      deviceClassStatuses:
        - name: vg1
          nodeStatus:
            - node: my-node-1.example.com
              reason: no available devices found for volume group
              status: Failed
      state: Failed
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 각 장치 클래스에 대해 LVM 스토리지에서 생성한 스토리지 클래스를 보려면 다음 명령을 실행합니다.

    $ oc get storageclass
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME          PROVISIONER          RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    lvms-vg1      topolvm.io           Delete          WaitForFirstConsumer   true                   31m
    Copy to Clipboard Toggle word wrap

  3. 선택 사항: 각 장치 클래스에 대해 LVM 스토리지에서 생성한 볼륨 스냅샷 클래스를 보려면 다음 명령을 실행합니다.

    $ oc get volumesnapshotclass
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME          DRIVER               DELETIONPOLICY   AGE
    lvms-vg1      topolvm.io           Delete           24h
    Copy to Clipboard Toggle word wrap

5.4.3.2. 웹 콘솔을 사용하여 LVMCluster CR 생성

OpenShift Container Platform 웹 콘솔을 사용하여 작업자 노드에 LVMCluster CR을 생성할 수 있습니다.

중요

OpenShift Container Platform 클러스터에서 LVMCluster CR(사용자 정의 리소스)의 단일 인스턴스만 생성할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • LVM 스토리지를 설치했습니다.
  • 클러스터에 작업자 노드가 설치되어 있습니다.
  • "LVMCluster 사용자 정의 리소스 정보" 섹션을 읽습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators 설치된 Operators를 클릭합니다.
  3. openshift-storage 네임스페이스에서 LVM Storage 를 클릭합니다.
  4. LVMCluster 생성 을 클릭하고 양식 보기 또는 YAML 보기를 선택합니다.
  5. 필요한 LVMCluster CR 매개변수를 구성합니다.
  6. Create를 클릭합니다.
  7. 선택 사항: LVMCLuster CR을 편집하려면 다음 작업을 수행합니다.

    1. LVMCluster 탭을 클릭합니다.
    2. Actions 메뉴에서 Edit LVMCluster 를 선택합니다.
    3. YAML 을 클릭하고 필요한 LVMCLuster CR 매개변수를 편집합니다.
    4. 저장을 클릭합니다.

검증

  1. LVMCLuster 페이지에서 LVMCluster CR이 Ready 상태인지 확인합니다.
  2. 선택 사항: 각 장치 클래스에 대해 LVM Storage에서 생성한 사용 가능한 스토리지 클래스를 보려면 스토리지 StorageClasses 를 클릭합니다.
  3. 선택 사항: 각 장치 클래스에 대해 LVM Storage에서 생성한 사용 가능한 볼륨 스냅샷 클래스를 보려면 스토리지 VolumeSnapshotClasses 를 클릭합니다.

5.4.3.3. RHACM을 사용하여 LVMCluster CR 생성

RHACM을 사용하여 LVM(Logical Volume Manager) 스토리지를 설치한 후 LVMCluster CR(사용자 정의 리소스)을 생성해야 합니다.

사전 요구 사항

  • RHACM을 사용하여 LVM 스토리지를 설치했습니다.
  • cluster-admin 권한이 있는 계정을 사용하여 RHACM 클러스터에 액세스할 수 있습니다.

프로세스

  1. OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
  2. LVMCluster CR을 생성하는 구성으로 ConfigurationPolicy CR YAML 파일을 생성합니다.

    LVMCluster CR을 생성하는 ConfigurationPolicy CR YAML 파일의 예

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: lvms
      namespace: openshift-storage
    spec:
      object-templates:
      - complianceType: musthave
        objectDefinition:
          apiVersion: lvm.topolvm.io/v1alpha1
          kind: LVMCluster
          metadata:
            name: my-lvmcluster
            namespace: openshift-storage
          spec:
            storage:
              deviceClasses: 
    1
    
    # ...
                deviceSelector: 
    2
    
    # ...
                thinPoolConfig: 
    3
    
    # ...
                nodeSelector: 
    4
    
    # ...
      remediationAction: enforce
      severity: low
    Copy to Clipboard Toggle word wrap

    1
    로컬 스토리지 장치를 LVM 볼륨 그룹에 할당하는 구성이 포함되어 있습니다.
    2
    LVM 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다.
    3
    LVM 볼륨 그룹에 씬 풀을 만드는 구성이 포함되어 있습니다.
    4
    LVM 볼륨 그룹을 만들 노드를 선택하는 구성이 포함되어 있습니다. 이 필드가 비어 있으면 스케줄 테인트가 없는 모든 노드가 고려됩니다.
  3. 다음 명령을 실행하여 ConfigurationPolicy CR을 생성합니다.

    $ oc create -f <file_name> -n <cluster_namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    LVM 스토리지가 설치된 OpenShift Container Platform 클러스터의 네임스페이스입니다.

5.4.4. LVMCluster 사용자 정의 리소스를 삭제하는 방법

OpenShift CLI(oc) 또는 OpenShift Container Platform 웹 콘솔을 사용하여 LVMCluster CR(사용자 정의 리소스)을 삭제할 수 있습니다. RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM Storage를 설치한 경우 RHACM을 사용하여 LVMCluster CR을 삭제할 수도 있습니다.

LVMCluster CR을 삭제하면 LVM 스토리지에서 다음 CR을 삭제합니다.

  • storageClass
  • volumeSnapshotClass
  • LVMVolumeGroup
  • LVMVolumeGroupNodeStatus

5.4.4.1. CLI를 사용하여 LVMCluster CR 삭제

OpenShift CLI(oc)를 사용하여 LVMCluster CR(사용자 정의 리소스)을 삭제할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.
  • LVM 스토리지에서 프로비저닝한 PVC(영구 볼륨 클레임), 볼륨 스냅샷 및 볼륨 복제를 삭제했습니다. 이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 LVMCluster CR을 삭제합니다.

    $ oc delete lvmcluster <lvm_cluster_name> -n openshift-storage
    Copy to Clipboard Toggle word wrap

검증

  • LVMCluster CR이 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get lvmcluster -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    No resources found in openshift-storage namespace.
    Copy to Clipboard Toggle word wrap

5.4.4.2. 웹 콘솔을 사용하여 LVMCluster CR 삭제

OpenShift Container Platform 웹 콘솔을 사용하여 LVMCluster CR(사용자 정의 리소스)을 삭제할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.
  • LVM 스토리지에서 프로비저닝한 PVC(영구 볼륨 클레임), 볼륨 스냅샷 및 볼륨 복제를 삭제했습니다. 이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators 설치된 Operator 를 클릭하여 설치된 모든 Operator를 확인합니다.
  3. openshift-storage 네임스페이스에서 LVM Storage 를 클릭합니다.
  4. LVMCluster 탭을 클릭합니다.
  5. 작업 에서 LVMCluster 삭제 를 선택합니다.
  6. 삭제를 클릭합니다.

검증

  • LVMCLuster 페이지에서 LVMCluster CR이 삭제되었는지 확인합니다.

5.4.4.3. RHACM을 사용하여 LVMCluster CR 삭제

RHACM(Red Hat Advanced Cluster Management)을 사용하여 LVM(Logical Volume Manager) 스토리지를 설치한 경우 RHACM을 사용하여 LVMCluster CR(사용자 정의 리소스)을 삭제할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 RHACM 클러스터에 액세스할 수 있습니다.
  • LVM 스토리지에서 프로비저닝한 다음 리소스를 삭제했습니다.

    • PVC(영구 볼륨 클레임)
    • 볼륨 스냅샷
    • 볼륨 복제

      이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.

프로세스

  1. OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
  2. 다음 명령을 실행하여 LVMCluster CR의 ConfigurationPolicy CR을 삭제합니다.

    $ oc delete -f <file_name> -n <cluster_namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    LVM 스토리지가 설치된 OpenShift Container Platform 클러스터의 네임스페이스입니다.
  3. Policy CR YAML 파일을 생성하여 LVMCluster CR을 삭제합니다.

    LVMCluster CR을 삭제하는 정책 CR의 예

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-lvmcluster-delete
      annotations:
        policy.open-cluster-management.io/standards: NIST SP 800-53
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    spec:
      remediationAction: enforce
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-lvmcluster-removal
            spec:
              remediationAction: enforce 
    1
    
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: my-lvmcluster
                      namespace: openshift-storage 
    2
    
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-lvmcluster-delete
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-policy-lvmcluster-delete
    subjects:
      - apiGroup: policy.open-cluster-management.io
        kind: Policy
        name: policy-lvmcluster-delete
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-lvmcluster-delete
    spec:
      clusterConditions:
        - status: "True"
          type: ManagedClusterConditionAvailable
      clusterSelector: 
    3
    
        matchExpressions:
          - key: mykey
            operator: In
            values:
              - myvalue
    Copy to Clipboard Toggle word wrap

    1
    policy-templatespec.remediationActionspec.remediationAction 에 대한 이전 매개변수 값으로 재정의됩니다.
    2
    namespace 필드에는 openshift-storage 값이 있어야 합니다.
    3
    클러스터를 선택하도록 요구 사항을 구성합니다. 선택 기준과 일치하는 클러스터에서 LVM 스토리지가 제거됩니다.
  4. 다음 명령을 실행하여 Policy CR을 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap
  5. Policy CR YAML 파일을 생성하여 LVMCluster CR이 삭제되었는지 확인합니다.

    LVMCluster CR이 삭제되었는지 확인하는 정책 CR의 예

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-lvmcluster-inform
      annotations:
        policy.open-cluster-management.io/standards: NIST SP 800-53
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
    spec:
      remediationAction: inform
      disabled: false
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-lvmcluster-removal-inform
            spec:
              remediationAction: inform 
    1
    
              severity: low
              object-templates:
                - complianceType: mustnothave
                  objectDefinition:
                    kind: LVMCluster
                    apiVersion: lvm.topolvm.io/v1alpha1
                    metadata:
                      name: my-lvmcluster
                      namespace: openshift-storage 
    2
    
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-lvmcluster-check
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-policy-lvmcluster-check
    subjects:
      - apiGroup: policy.open-cluster-management.io
        kind: Policy
        name: policy-lvmcluster-inform
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-lvmcluster-check
    spec:
      clusterConditions:
        - status: "True"
          type: ManagedClusterConditionAvailable
      clusterSelector:
        matchExpressions:
          - key: mykey
            operator: In
            values:
              - myvalue
    Copy to Clipboard Toggle word wrap

    1
    policy-template spec.remediationActionspec.remediationAction 의 이전 매개변수 값으로 재정의됩니다.
    2
    namespace 필드에는 openshift-storage 값이 있어야 합니다.
  6. 다음 명령을 실행하여 Policy CR을 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 Policy CR의 상태를 확인합니다.

    $ oc get policy -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                       REMEDIATION ACTION   COMPLIANCE STATE   AGE
    policy-lvmcluster-delete   enforce              Compliant          15m
    policy-lvmcluster-inform   inform               Compliant          15m
    Copy to Clipboard Toggle word wrap

    중요

    Policy CR은 Compliant 상태에 있어야 합니다.

5.4.5. 스토리지 프로비저닝

LVMCluster CR(사용자 정의 리소스)을 사용하여 LVM 볼륨 그룹을 생성한 후 PVC(영구 볼륨 클레임)를 생성하여 스토리지를 프로비저닝할 수 있습니다.

PVC를 생성하려면 PersistentVolumeClaim 오브젝트를 생성해야 합니다.

사전 요구 사항

  • LVMCluster CR을 생성했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음과 유사한 PersistentVolumeClaim 오브젝트를 생성합니다.

    PersistentVolumeClaim 오브젝트의 예

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: lvm-block-1 
    1
    
      namespace: default
    spec:
      accessModes:
        - ReadWriteOnce
      volumeMode: Block 
    2
    
      resources:
        requests:
          storage: 10Gi 
    3
    
      storageClassName: lvms-vg1 
    4
    Copy to Clipboard Toggle word wrap

    1
    PVC의 이름을 지정합니다.
    2
    블록 PVC를 생성하려면 이 필드를 Block 으로 설정합니다. 파일 PVC를 생성하려면 이 필드를 Filesystem 으로 설정합니다.
    3
    스토리지 크기를 지정합니다. LVM(Logical Volume Manager) 스토리지는 1GiB(GB) 단위로 PVC를 프로비저닝합니다. 요청된 스토리지는 가장 가까운 GiB로 반올림됩니다. 프로비저닝할 수 있는 총 스토리지 크기는 LVM 씬 풀의 크기와 초과 프로비저닝 요인으로 제한됩니다.
    4
    storageClassName 필드의 값은 lvms-<device_class_name > 형식이어야 합니다. 여기서 < device_class_name >은 LVMCluster CR의 deviceClasses.name 필드의 값입니다. 예를 들어 deviceClasses.name 필드가 Cryostat1로 설정된 경우 storageClassName 필드를 lvms- vg1 로 설정해야 합니다.
    참고

    스토리지 클래스의 volumeBindingMode 필드는 WaitForFirstConsumer 로 설정됩니다.

  3. 다음 명령을 실행하여 PVC를 생성합니다.

    $ oc create -f <file_name> -n <application_namespace>
    Copy to Clipboard Toggle word wrap
    참고

    생성된 PVC는 사용하는 워크로드를 배포할 때까지 Pending 상태로 유지됩니다.

검증

  • PVC가 생성되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    lvm-block-1   Bound    pvc-e90169a8-fd71-4eea-93b8-817155f60e47   1Gi        RWO            lvms-vg1       5s
    Copy to Clipboard Toggle word wrap

5.4.6. 단일 노드 OpenShift 클러스터의 스토리지를 확장하는 방법

기존 노드에 새 장치를 추가하여 단일 노드 OpenShift 클러스터의 스토리지를 확장할 수 있습니다.

단일 노드 OpenShift 클러스터의 기존 노드에 새 장치를 추가하려면 LVMCluster CR(사용자 정의 리소스)의 deviceSelector 필드에 있는 새 장치에 경로를 추가해야 합니다.

중요

LVMCluster CR을 생성하는 경우에만 LVMCluster CR에 deviceSelector 필드를 추가할 수 있습니다. LVMCluster CR을 생성하는 동안 deviceSelector 필드를 추가하지 않은 경우 LVMCluster CR을 삭제하고 deviceSelector 필드가 포함된 새 LVMCluster CR을 생성해야 합니다.

LVMCluster CR에 deviceSelector 필드를 추가하지 않으면 LVM 스토리지에서 장치를 사용할 수 있을 때 새 장치를 자동으로 추가합니다.

5.4.6.1. CLI를 사용하여 단일 노드 OpenShift 클러스터의 스토리지 확장

OpenShift CLI(oc)를 사용하여 단일 노드 OpenShift 클러스터에서 기존 노드의 스토리지 용량을 확장할 수 있습니다.

사전 요구 사항

  • LVM(Logical Volume Manager) 스토리지에서 사용할 단일 노드 OpenShift 클러스터에 사용되지 않는 추가 장치가 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • LVMCluster CR(사용자 정의 리소스)을 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 LVMCluster CR을 편집합니다.

    $ oc edit <lvmcluster_file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap
  2. deviceSelector 필드에 새 장치의 경로를 추가합니다.

    LVMCluster CR의 예

    apiVersion: lvm.topolvm.io/v1alpha1
    kind: LVMCluster
    metadata:
      name: my-lvmcluster
    spec:
      storage:
        deviceClasses:
    # ...
          deviceSelector: 
    1
    
            paths: 
    2
    
            - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
            - /dev/disk/by-path/pci-0000:88:00.0-nvme-1
            optionalPaths: 
    3
    
            - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
            - /dev/disk/by-path/pci-0000:90:00.0-nvme-1
    # ...
    Copy to Clipboard Toggle word wrap

    1
    LVM(Logical Volume Manager) 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다. paths 필드, optionalPaths 필드 또는 둘 다에서 장치 경로를 지정할 수 있습니다. 경로와 optionalPaths 모두에 장치 경로를 지정하지 않으면 LVM 스토리지에서 지원되는 사용되지 않는 장치를 LVM 볼륨 그룹에 추가합니다. LVM 스토리지는 장치 경로가 존재하는 경우에만 LVM 볼륨 그룹에 장치를 추가합니다.
    2
    장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVMCluster CR이 Failed 상태로 이동합니다.
    3
    선택적 장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVM 스토리지에서 오류가 발생하지 않고 장치를 무시합니다.
    중요

    장치를 LVM 볼륨 그룹에 추가한 후에는 제거할 수 없습니다.

  3. LVMCluster CR을 저장합니다.

OpenShift Container Platform 웹 콘솔을 사용하여 단일 노드 OpenShift 클러스터에서 기존 노드의 스토리지 용량을 확장할 수 있습니다.

사전 요구 사항

  • LVM(Logical Volume Manager) 스토리지에서 사용할 단일 노드 OpenShift 클러스터에 사용되지 않는 추가 장치가 있습니다.
  • LVMCluster CR(사용자 정의 리소스)을 생성했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators 설치된 Operators를 클릭합니다.
  3. openshift-storage 네임스페이스에서 LVM Storage 를 클릭합니다.
  4. LVMCluster 탭을 클릭하여 클러스터에서 생성된 LVMCluster CR을 확인합니다.
  5. Actions 메뉴에서 Edit LVMCluster 를 선택합니다.
  6. YAML 탭을 클릭합니다.
  7. LVMCluster CR을 편집하여 deviceSelector 필드에 새 장치 경로를 추가합니다.

    LVMCluster CR의 예

    apiVersion: lvm.topolvm.io/v1alpha1
    kind: LVMCluster
    metadata:
      name: my-lvmcluster
    spec:
      storage:
        deviceClasses:
    # ...
          deviceSelector: 
    1
    
            paths: 
    2
    
            - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
            - /dev/disk/by-path/pci-0000:88:00.0-nvme-1
            optionalPaths: 
    3
    
            - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
            - /dev/disk/by-path/pci-0000:90:00.0-nvme-1
    # ...
    Copy to Clipboard Toggle word wrap

    1
    LVM(Logical Volume Manager) 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다. paths 필드, optionalPaths 필드 또는 둘 다에서 장치 경로를 지정할 수 있습니다. 경로와 optionalPaths 모두에 장치 경로를 지정하지 않으면 LVM 스토리지에서 지원되는 사용되지 않는 장치를 LVM 볼륨 그룹에 추가합니다. LVM 스토리지는 장치 경로가 존재하는 경우에만 LVM 볼륨 그룹에 장치를 추가합니다.
    2
    장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVMCluster CR이 Failed 상태로 이동합니다.
    3
    선택적 장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVM 스토리지에서 오류가 발생하지 않고 장치를 무시합니다.
    중요

    장치를 LVM 볼륨 그룹에 추가한 후에는 제거할 수 없습니다.

  8. 저장을 클릭합니다.

5.4.6.3. RHACM을 사용하여 단일 노드 OpenShift 클러스터의 스토리지 확장

RHACM을 사용하여 단일 노드 OpenShift 클러스터에서 기존 노드의 스토리지 용량을 확장할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 계정을 사용하여 RHACM 클러스터에 액세스할 수 있습니다.
  • RHACM을 사용하여 LVMCluster CR(사용자 정의 리소스)을 생성했습니다.
  • LVM(Logical Volume Manager) 스토리지에서 사용할 각 단일 노드 OpenShift 클러스터에 사용되지 않는 추가 장치가 있습니다.

프로세스

  1. OpenShift Container Platform 인증 정보를 사용하여 RHACM CLI에 로그인합니다.
  2. 다음 명령을 실행하여 RHACM을 사용하여 생성한 LVMCluster CR을 편집합니다.

    $ oc edit -f <file_name> -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    & lt;file_name& gt;을 LVMCluster CR의 이름으로 바꿉니다.
  3. LVMCluster CR에서 deviceSelector 필드의 새 장치에 경로를 추가합니다.

    LVMCluster CR의 예:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: lvms
    spec:
      object-templates:
         - complianceType: musthave
           objectDefinition:
             apiVersion: lvm.topolvm.io/v1alpha1
             kind: LVMCluster
             metadata:
               name: my-lvmcluster
               namespace: openshift-storage
             spec:
               storage:
                 deviceClasses:
    # ...
                   deviceSelector: 
    1
    
                     paths: 
    2
    
                     - /dev/disk/by-path/pci-0000:87:00.0-nvme-1
                     optionalPaths: 
    3
    
                     - /dev/disk/by-path/pci-0000:89:00.0-nvme-1
    # ...
    Copy to Clipboard Toggle word wrap

    1
    LVM(Logical Volume Manager) 볼륨 그룹에 추가할 장치의 경로를 지정하는 구성이 포함되어 있습니다. paths 필드, optionalPaths 필드 또는 둘 다에서 장치 경로를 지정할 수 있습니다. 경로와 optionalPaths 모두에 장치 경로를 지정하지 않으면 LVM 스토리지에서 사용하지 않는 장치를 LVM 볼륨 그룹에 추가합니다. LVM 스토리지는 장치 경로가 존재하는 경우에만 LVM 볼륨 그룹에 장치를 추가합니다.
    2
    장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVMCluster CR이 Failed 상태로 이동합니다.
    3
    선택적 장치 경로를 지정합니다. 이 필드에 지정된 장치 경로가 없으면 LVM 스토리지에서 오류가 발생하지 않고 장치를 무시합니다.
    중요

    장치를 LVM 볼륨 그룹에 추가한 후에는 제거할 수 없습니다.

  4. LVMCluster CR을 저장합니다.

5.4.7. 영구 볼륨 클레임 확장

클러스터 스토리지를 확장한 후 기존 PVC(영구 볼륨 클레임)를 확장할 수 있습니다.

PVC를 확장하려면 PVC의 requests.storage 필드를 업데이트해야 합니다.

사전 요구 사항

  • 동적 프로비저닝이 사용됩니다.
  • PVC와 연결된 StorageClass 오브젝트에는 allowVolumeExpansion 필드가 true 로 설정되어 있습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 spec.resources.requests.storage 필드의 값을 현재 값보다 큰 값으로 업데이트합니다.

    $ oc patch pvc <pvc_name> -n <application_namespace> -p \
    1
    
    '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}' --type=merge 
    2
    Copy to Clipboard Toggle word wrap
    1
    & lt;pvc_name >을 확장하려는 PVC 이름으로 바꿉니다.
    2
    & lt;desired_size& gt;를 새 크기로 교체하여 PVC를 확장합니다.

검증

  • 크기 조정이 완료되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pvc <pvc_name> -n <application_namespace> -o=jsonpath={.status.capacity.storage}
    Copy to Clipboard Toggle word wrap

    LVM(Logical Volume Manager) 스토리지는 확장 중에 PVC에 Resizing 조건을 추가합니다. PVC 확장 후 Resizing 조건을 삭제합니다.

5.4.8. 영구 볼륨 클레임 삭제

OpenShift CLI(oc)를 사용하여 PVC(영구 볼륨 클레임)를 삭제할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 PVC를 삭제합니다.

    $ oc delete pvc <pvc_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • PVC가 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    삭제된 PVC는 이 명령의 출력에 표시되지 않아야 합니다.

5.4.9. 볼륨 스냅샷 정보

LVM 스토리지에서 프로비저닝하는 PVC(영구 볼륨 클레임)의 스냅샷을 생성할 수 있습니다.

볼륨 스냅샷을 사용하여 다음 작업을 수행할 수 있습니다.

  • 애플리케이션 데이터를 백업합니다.

    중요

    볼륨 스냅샷은 원래 데이터와 동일한 장치에 있습니다. 볼륨 스냅샷을 백업으로 사용하려면 스냅샷을 안전한 위치로 이동해야 합니다. OADP(OpenShift API for Data Protection) 백업 및 복원 솔루션을 사용할 수 있습니다. OADP에 대한 자세한 내용은 "OADP 기능"을 참조하십시오.

  • 볼륨 스냅샷을 만든 상태로 되돌립니다.
참고

볼륨 복제의 볼륨 스냅샷을 생성할 수도 있습니다.

5.4.9.1. 볼륨 스냅샷 생성

씬 풀의 사용 가능한 용량 및 초과 프로비저닝 제한을 기반으로 볼륨 스냅샷을 생성할 수 있습니다. 볼륨 스냅샷을 생성하려면 VolumeSnapshot 오브젝트를 생성해야 합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.
  • PVC(영구 볼륨 클레임)가 Bound 상태인지 확인합니다. 이는 일관된 스냅샷에 필요합니다.
  • PVC에 대한 모든 I/O를 중지했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. VolumeSnapshot 오브젝트를 생성합니다.

    VolumeSnapshot 오브젝트의 예

    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: lvm-block-1-snap 
    1
    
    spec:
      source:
        persistentVolumeClaimName: lvm-block-1 
    2
    
      volumeSnapshotClassName: lvms-vg1 
    3
    Copy to Clipboard Toggle word wrap

    1
    볼륨 스냅샷의 이름을 지정합니다.
    2
    소스 PVC의 이름을 지정합니다. LVM 스토리지는 이 PVC의 스냅샷을 생성합니다.
    3
    이 필드를 볼륨 스냅샷 클래스의 이름으로 설정합니다.
    참고

    사용 가능한 볼륨 스냅샷 클래스 목록을 가져오려면 다음 명령을 실행합니다.

    $ oc get volumesnapshotclass
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 소스 PVC를 생성한 네임스페이스에 볼륨 스냅샷을 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

    LVM 스토리지는 볼륨 스냅샷으로 PVC의 읽기 전용 사본을 생성합니다.

검증

  • 볼륨 스냅샷이 생성되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get volumesnapshot -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME               READYTOUSE   SOURCEPVC     SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS   SNAPSHOTCONTENT                                    CREATIONTIME   AGE
    lvm-block-1-snap   true         lvms-test-1                           1Gi           lvms-vg1        snapcontent-af409f97-55fc-40cf-975f-71e44fa2ca91   19s            19s
    Copy to Clipboard Toggle word wrap

    생성한 볼륨 스냅샷의 READYTOUSE 필드 값은 true 여야 합니다.

5.4.9.2. 볼륨 스냅샷 복원

볼륨 스냅샷을 복원하려면 dataSource.name 필드가 볼륨 스냅샷 이름으로 설정된 PVC(영구 볼륨 클레임)를 생성해야 합니다.

복원된 PVC는 볼륨 스냅샷 및 소스 PVC와 독립적입니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.
  • 볼륨 스냅샷을 생성했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 볼륨 스냅샷을 복원하려면 구성으로 PersistentVolumeClaim 오브젝트를 생성합니다.

    볼륨 스냅샷을 복원하는 PersistentVolumeClaim 오브젝트의 예

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: lvm-block-1-restore
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Block
      Resources:
        Requests:
          storage: 2Gi 
    1
    
      storageClassName: lvms-vg1 
    2
    
      dataSource:
        name: lvm-block-1-snap 
    3
    
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
    Copy to Clipboard Toggle word wrap

    1
    PVC의 스토리지 크기를 지정합니다. 요청된 PVC의 스토리지 크기는 복원하려는 볼륨 스냅샷의 stoage 크기보다 크거나 같아야 합니다. 더 큰 PVC가 필요한 경우 볼륨 스냅샷을 복원한 후 PVC의 크기를 조정할 수도 있습니다.
    2
    복원하려는 볼륨 스냅샷의 소스 PVC에 있는 storageClassName 필드 값으로 이 필드를 설정합니다.
    3
    이 필드를 복원할 볼륨 스냅샷의 이름으로 설정합니다.
  3. 다음 명령을 실행하여 볼륨 스냅샷을 생성한 네임스페이스에 PVC를 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • 볼륨 스냅샷이 복원되었는지 확인하려면 복원된 PVC를 사용하여 워크로드를 생성한 다음 다음 명령을 실행합니다.

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                  STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    lvm-block-1-restore   Bound    pvc-e90169a8-fd71-4eea-93b8-817155f60e47   1Gi        RWO            lvms-vg1       5s
    Copy to Clipboard Toggle word wrap

5.4.9.3. 볼륨 스냅샷 삭제

PVC(영구 볼륨 클레임)의 볼륨 스냅샷을 삭제할 수 있습니다.

중요

PVC(영구 볼륨 클레임)를 삭제하면 LVM 스토리지가 PVC의 스냅샷이 아닌 PVC만 삭제합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.
  • 삭제할 볼륨 snpashot이 사용되지 않는지 확인했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 볼륨 스냅샷을 삭제합니다.

    $ oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • 볼륨 스냅샷이 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get volumesnapshot -n <namespace>
    Copy to Clipboard Toggle word wrap

    삭제된 볼륨 스냅샷은 이 명령의 출력에 표시되지 않아야 합니다.

5.4.10. 볼륨 복제 정보

볼륨 복제는 기존 PVC(영구 볼륨 클레임)와 중복됩니다. 볼륨 복제를 생성하여 특정 시점의 데이터를 복사할 수 있습니다.

5.4.10.1. 볼륨 복제 생성

PVC(영구 볼륨 클레임) 복제본을 생성하려면 소스 PVC를 생성한 네임스페이스에 PersistentVolumeClaim 오브젝트를 생성해야 합니다.

중요

복제된 PVC에는 쓰기 액세스 권한이 있습니다.

사전 요구 사항

  • 소스 PVC가 Bound 상태인지 확인합니다. 이는 일관된 복제에 필요합니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. PersistentVolumeClaim 오브젝트를 생성합니다.

    볼륨 복제본을 생성하는 PersistentVolumeClaim 오브젝트의 예

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: lvm-pvc-clone
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: lvms-vg1 
    1
    
      volumeMode: Filesystem 
    2
    
      dataSource:
        kind: PersistentVolumeClaim
        name: lvm-pvc 
    3
    
      resources:
        requests:
          storage: 1Gi 
    4
    Copy to Clipboard Toggle word wrap

    1
    이 필드를 소스 PVC의 storageClassName 필드 값으로 설정합니다.
    2
    이 필드를 소스 PVC의 volumeMode 필드로 설정합니다.
    3
    소스 PVC의 이름을 지정합니다.
    4
    복제된 PVC의 스토리지 크기를 지정합니다. 복제된 PVC의 스토리지 크기는 소스 PVC의 스토리지 크기보다 크거나 같아야 합니다.
  3. 다음 명령을 실행하여 소스 PVC를 생성한 네임스페이스에 PVC를 생성합니다.

    $ oc create -f <file_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • 볼륨 복제가 생성되었는지 확인하려면 복제된 PVC를 사용하여 워크로드를 생성한 다음 다음 명령을 실행합니다.

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    lvm-block-1-clone   Bound    pvc-e90169a8-fd71-4eea-93b8-817155f60e47   1Gi        RWO            lvms-vg1       5s
    Copy to Clipboard Toggle word wrap

5.4.10.2. 볼륨 복제 삭제

볼륨 복제를 삭제할 수 있습니다.

중요

PVC(영구 볼륨 클레임)를 삭제하면 LVM 스토리지가 소스 PVC(영구 볼륨 클레임)만 삭제하지만 PVC의 복제본은 삭제하지 않습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform에 액세스할 수 있습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 복제된 PVC를 삭제합니다.

    # oc delete pvc <clone_pvc_name> -n <namespace>
    Copy to Clipboard Toggle word wrap

검증

  • 볼륨 복제가 삭제되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    삭제된 볼륨 복제는 이 명령의 출력에 표시되지 않아야 합니다.

5.4.11. 단일 노드 OpenShift 클러스터에서 LVM 스토리지 업데이트

LVM 스토리지를 업데이트하여 단일 노드 OpenShift 버전과의 호환성을 보장할 수 있습니다.

사전 요구 사항

  • 단일 노드 OpenShift 클러스터를 업데이트했습니다.
  • 이전 버전의 LVM Storage를 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 LVM 스토리지를 설치하는 동안 생성한 Subscription CR(사용자 정의 리소스)을 업데이트합니다.

    $ oc patch subscription lvms-operator -n openshift-storage --type merge --patch '{"spec":{"channel":"<update_channel>"}}' 
    1
    Copy to Clipboard Toggle word wrap
    1
    & lt;update_channel >을 설치하려는 LVM 스토리지 버전으로 바꿉니다. 예를 들면 stable-4.14 입니다.
  3. 업데이트 이벤트를 보고 다음 명령을 실행하여 설치가 완료되었는지 확인합니다.

    $ oc get events -n openshift-storage
    Copy to Clipboard Toggle word wrap

    출력 예

    ...
    8m13s       Normal    RequirementsUnknown   clusterserviceversion/lvms-operator.v4.14   requirements not yet checked
    8m11s       Normal    RequirementsNotMet    clusterserviceversion/lvms-operator.v4.14   one or more requirements couldn't be found
    7m50s       Normal    AllRequirementsMet    clusterserviceversion/lvms-operator.v4.14   all requirements found, attempting install
    7m50s       Normal    InstallSucceeded      clusterserviceversion/lvms-operator.v4.14   waiting for install components to report healthy
    7m49s       Normal    InstallWaiting        clusterserviceversion/lvms-operator.v4.14   installing: waiting for deployment lvms-operator to become ready: deployment "lvms-operator" waiting for 1 outdated replica(s) to be terminated
    7m39s       Normal    InstallSucceeded      clusterserviceversion/lvms-operator.v4.14   install strategy completed with no errors
    ...
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 LVM 스토리지 버전을 확인합니다.

    $ oc get subscription lvms-operator -n openshift-storage -o jsonpath='{.status.installedCSV}'
    Copy to Clipboard Toggle word wrap

    출력 예

    lvms-operator.v4.14
    Copy to Clipboard Toggle word wrap

5.4.12. LVM 스토리지 모니터링

클러스터 모니터링을 활성화하려면 LVM 스토리지를 설치한 네임스페이스에 다음 레이블을 추가해야 합니다.

openshift.io/cluster-monitoring=true
Copy to Clipboard Toggle word wrap
중요

RHACM에서 클러스터 모니터링 활성화에 대한 자세한 내용은 Observability사용자 정의 지표 추가 를 참조하십시오.

5.4.12.1. 지표

메트릭을 확인하여 LVM 스토리지를 모니터링할 수 있습니다.

다음 표에서는 topolvm 메트릭을 설명합니다.

Expand
표 5.6. topolvm 메트릭
경고설명

topolvm_thinpool_data_percent

LVM thinpool에 사용된 데이터 공간의 백분율을 나타냅니다.

topolvm_thinpool_metadata_percent

LVM thinpool에 사용된 메타데이터 공간의 백분율을 나타냅니다.

topolvm_thinpool_size_bytes

LVM 씬 풀의 크기를 바이트 단위로 나타냅니다.

topolvm_volumegroup_available_bytes

LVM 볼륨 그룹의 사용 가능한 공간을 바이트 단위로 나타냅니다.

topolvm_volumegroup_size_bytes

LVM 볼륨 그룹의 크기를 바이트 단위로 나타냅니다.

topolvm_thinpool_overprovisioned_available

LVM 씬 풀의 사용 가능한 초과 프로비저닝 크기를 바이트 단위로 나타냅니다.

참고

지표는 10분마다 업데이트되거나 씬 풀에서 새 논리 볼륨 생성과 같은 변경이 있을 때 업데이트됩니다.

5.4.12.2. 경고

thin 풀 및 볼륨 그룹이 최대 스토리지 용량에 도달하면 추가 작업이 실패합니다. 이는 데이터 손실을 초래할 수 있습니다.

LVM 스토리지는 thin 풀 및 볼륨 그룹 사용이 특정 값을 초과하면 다음 경고를 보냅니다.

Expand
표 5.7. LVM 스토리지 경고
경고설명

VolumeGroupUsageAtThresholdNearFull

이 경고는 볼륨 그룹과 씬 풀 사용량이 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 볼륨 그룹 확장이 필요합니다.

VolumeGroupUsageAtThresholdCritical

이 경고는 볼륨 그룹과 씬 풀 사용량이 노드에서 85%를 초과하면 트리거됩니다. 이 경우 볼륨 그룹이 매우 가득 차 있습니다. 데이터 삭제 또는 볼륨 그룹 확장이 필요합니다.

ThinPoolDataUsageAtThresholdNearFull

이 경고는 볼륨 그룹의 thin pool 데이터 사용량이 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다.

ThinPoolDataUsageAtThresholdCritical

이 경고는 볼륨 그룹의 씬 풀 데이터 사용량이 노드에서 85%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다.

ThinPoolMetaDataUsageAtThresholdNearFull

이 경고는 볼륨 그룹의 씬 풀 메타데이터 사용량이 노드에서 75%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다.

ThinPoolMetaDataUsageAtThresholdCritical

이 경고는 볼륨 그룹의 씬 풀 메타데이터 사용량이 노드에서 85%를 초과하면 트리거됩니다. 데이터 삭제 또는 씬 풀 확장이 필요합니다.

5.4.13. CLI를 사용하여 LVM 스토리지 설치 제거

OpenShift CLI(oc)를 사용하여 LVM 스토리지를 설치 제거할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 oc 에 로그인했습니다.
  • LVM 스토리지에서 프로비저닝한 PVC(영구 볼륨 클레임), 볼륨 스냅샷 및 볼륨 복제를 삭제했습니다. 이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.
  • LVMCluster CR(사용자 정의 리소스)을 삭제했습니다.

프로세스

  1. 다음 명령을 실행하여 LVM Storage Operator의 currentCSV 값을 가져옵니다.

    $ oc get subscription.operators.coreos.com lvms-operator -n <namespace> -o yaml | grep currentCSV
    Copy to Clipboard Toggle word wrap

    출력 예

    currentCSV: lvms-operator.v4.15.3
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 서브스크립션을 삭제합니다.

    $ oc delete subscription.operators.coreos.com lvms-operator -n <namespace>
    Copy to Clipboard Toggle word wrap

    출력 예

    subscription.operators.coreos.com "lvms-operator" deleted
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 대상 네임스페이스에서 LVM Storage Operator의 CSV를 삭제합니다.

    $ oc delete clusterserviceversion <currentCSV> -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    & lt;currentCSV& gt;를 LVM Storage Operator의 currentCSV 값으로 바꿉니다.

    출력 예

    clusterserviceversion.operators.coreos.com "lvms-operator.v4.15.3" deleted
    Copy to Clipboard Toggle word wrap

검증

  • LVM Storage Operator가 제거되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get csv -n <namespace>
    Copy to Clipboard Toggle word wrap

    LVM Storage Operator가 성공적으로 설치 제거되면 이 명령의 출력에 표시되지 않습니다.

5.4.14. 웹 콘솔을 사용하여 LVM 스토리지 설치 제거

OpenShift Container Platform 웹 콘솔을 사용하여 LVM(Logical Volume Manager) 스토리지를 설치 제거할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 단일 노드 OpenShift 클러스터에 액세스할 수 있습니다.
  • LVM 스토리지에서 프로비저닝한 PVC(영구 볼륨 클레임), 볼륨 스냅샷 및 볼륨 복제를 삭제했습니다. 이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.
  • LVMCluster CR(사용자 정의 리소스)을 삭제했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators 설치된 Operators를 클릭합니다.
  3. openshift-storage 네임스페이스에서 LVM Storage 를 클릭합니다.
  4. 세부 정보 탭을 클릭합니다.
  5. 작업 메뉴에서 Operator 제거를 클릭합니다.
  6. 선택 사항: 메시지가 표시되면 이 operator의 모든 피연산자 인스턴스 삭제 확인란을 선택하여 LVM Storage의 피연산자 인스턴스를 삭제합니다.
  7. 제거를 클릭합니다.

5.4.15. RHACM을 사용하여 설치된 LVM 스토리지 설치 제거

RHACM을 사용하여 설치한 LVM(Logical Volume Manager) 스토리지를 설치 제거하려면 LVM 스토리지를 설치 및 구성하기 위해 생성한 RHACM 정책 CR(사용자 정의 리소스)을 삭제해야 합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 RHACM 클러스터에 액세스할 수 있습니다.
  • LVM 스토리지에서 프로비저닝한 다음 리소스를 삭제했습니다.

    • PVC(영구 볼륨 클레임)
    • 볼륨 스냅샷
    • 볼륨 복제

      이러한 리소스를 사용하는 애플리케이션도 삭제했습니다.

  • RHACM을 사용하여 생성한 LVMCluster CR을 삭제했습니다.

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.
  2. 다음 명령을 실행하여 LVM 스토리지를 설치 및 구성하기 위해 생성한 RHACM 정책 CR을 삭제합니다.

    $ oc delete -f <policy> -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    & lt;policy& gt;를 Policy CR YAML 파일의 이름으로 바꿉니다.
  3. LVM 스토리지를 설치 제거하려면 구성으로 Policy CR YAML 파일을 생성합니다.

    LVM 스토리지를 제거하는 Policy CR의 예

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-uninstall-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-uninstall-lvms
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-uninstall-lvms
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: uninstall-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: uninstall-lvms
    spec:
      disabled: false
      policy-templates:
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: uninstall-lvms
          spec:
            object-templates:
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: v1
                kind: Namespace
                metadata:
                  name: openshift-storage
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: openshift-storage-operatorgroup
                  namespace: openshift-storage
                spec:
                  targetNamespaces:
                  - openshift-storage
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: lvms-operator
                  namespace: openshift-storage
            remediationAction: enforce
            severity: low
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: policy-remove-lvms-crds
          spec:
            object-templates:
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: logicalvolumes.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmclusters.lvm.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmvolumegroupnodestatuses.lvm.topolvm.io
            - complianceType: mustnothave
              objectDefinition:
                apiVersion: apiextensions.k8s.io/v1
                kind: CustomResourceDefinition
                metadata:
                  name: lvmvolumegroups.lvm.topolvm.io
            remediationAction: enforce
            severity: high
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 Policy CR을 생성합니다.

    $ oc create -f <policy> -ns <namespace>
    Copy to Clipboard Toggle word wrap

5.4.16. must-gather를 사용하여 로그 파일 및 진단 정보 다운로드

LVM 스토리지에서 문제를 자동으로 해결할 수 없는 경우 must-gather 툴을 사용하여 로그 파일 및 진단 정보를 수집하여 귀하 또는 Red Hat 지원팀이 문제를 검토하고 솔루션을 결정할 수 있도록 합니다.

프로세스

  • LVM 스토리지 클러스터에 연결된 클라이언트에서 must-gather 명령을 실행합니다.

    $ oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.14 --dest-dir=<directory_name>
    Copy to Clipboard Toggle word wrap

5.4.17. 영구 스토리지 문제 해결

LVM(Logical Volume Manager) 스토리지를 사용하여 영구 스토리지를 구성하는 동안 문제 해결이 필요한 몇 가지 문제가 발생할 수 있습니다.

5.4.17.1. Pending 상태에 있는 PVC 조사

PVC(영구 볼륨 클레임)는 다음과 같은 이유로 Pending 상태로 고정될 수 있습니다.

  • 컴퓨팅 리소스가 충분하지 않습니다.
  • 네트워크 문제.
  • 일치하지 않는 스토리지 클래스 또는 노드 선택기입니다.
  • 사용 가능한 PV(영구 볼륨)가 없습니다.
  • PV가 있는 노드는 Not Ready 상태입니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift CLI(oc)에 로그인했습니다.

프로세스

  1. 다음 명령을 실행하여 PVC 목록을 검색합니다.

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME        STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    lvms-test   Pending                                      lvms-vg1       11s
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 PVC와 관련된 이벤트를 Pending 상태로 유지합니다.

    $ oc describe pvc <pvc_name> 
    1
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap

5.4.17.2. 누락된 스토리지 클래스에서 복구

스토리지 클래스를 찾을 수 없는 경우 LVMCluster CR(사용자 정의 리소스)을 확인하고 모든 LVM(Logical Volume Manager) 스토리지 Pod가 Running 상태인지 확인합니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift CLI(oc)에 로그인했습니다.

프로세스

  1. 다음 명령을 실행하여 LVMCluster CR이 있는지 확인합니다.

    $ oc get lvmcluster -n openshift-storage
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME            AGE
    my-lvmcluster   65m
    Copy to Clipboard Toggle word wrap

  2. LVMCluster CR이 없으면 LVMCluster CR을 생성합니다. 자세한 내용은 "Ways to create an LVMCluster custom resource"를 참조하십시오.
  3. openshift-storage 네임스페이스에서 다음 명령을 실행하여 모든 LVM 스토리지 Pod가 Running 상태에 있는지 확인합니다.

    $ oc get pods -n openshift-storage
    Copy to Clipboard Toggle word wrap

    출력 예

    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 Toggle word wrap

    이 명령의 출력에는 다음 Pod의 실행 중인 인스턴스가 포함되어야 합니다.

    • lvms-operator
    • VG-manager
    • topolvm-controller
    • topolvm-node

      topolvm-node Pod가 Init 상태에 있는 경우 LVM Storage에서 사용할 사용 가능한 디스크를 찾지 못했기 때문입니다. 이 문제를 해결하기 위해 필요한 정보를 검색하려면 다음 명령을 실행하여 Cryostat -manager Pod의 로그를 검토합니다.

      $ oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
      Copy to Clipboard Toggle word wrap

5.4.17.3. 노드 장애로 복구

PVC(영구 볼륨 클레임)는 클러스터의 노드 오류로 인해 Pending 상태가 될 수 있습니다.

실패한 노드를 식별하기 위해 topolvm-node Pod의 재시작 횟수를 검사할 수 있습니다. 재시작 횟수가 증가하면 기본 노드의 잠재적인 문제가 발생하므로 추가 조사 및 문제 해결이 필요할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift CLI(oc)에 로그인했습니다.

프로세스

  • 다음 명령을 실행하여 topolvm-node Pod 인스턴스의 재시작 횟수를 검사합니다.

    $ oc get pods -n openshift-storage
    Copy to Clipboard Toggle word wrap

    출력 예

    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
    topolvm-node-54as8                    4/4     Running   0             66m
    topolvm-node-78fft                    4/4     Running   17 (8s ago)   66m
    vg-manager-r6zdv                      1/1     Running   0             66m
    vg-manager-990ut                      1/1     Running   0             66m
    vg-manager-an118                      1/1     Running   0             66m
    Copy to Clipboard Toggle word wrap

다음 단계

  • 노드 문제를 해결한 후에도 PVC가 Pending 상태에 있는 경우 강제 정리를 수행해야 합니다. 자세한 내용은 "Performing a forced clean-up"을 참조하십시오.

5.4.17.4. 디스크 장애에서 복구

PVC(영구 볼륨 클레임)와 연결된 이벤트를 검사하는 동안 실패 메시지가 표시되면 기본 볼륨 또는 디스크에 문제가 있을 수 있습니다.

디스크 및 볼륨 프로비저닝 문제로 인해 스토리지 클래스 < storage_class_name>을 사용하여 볼륨을 프로비저닝하지 못했습니다. 일반 오류 메시지에는 특정 볼륨 실패 오류 메시지가 표시됩니다.

다음 표에서는 볼륨 실패 오류 메시지를 설명합니다.

Expand
표 5.8. 볼륨 실패 오류 메시지
오류 메시지설명

볼륨 존재를 확인하지 못했습니다

볼륨이 이미 있는지 확인하는 데 문제가 있음을 나타냅니다. 볼륨 확인 오류는 네트워크 연결 문제 또는 기타 오류로 인해 발생할 수 있습니다.

볼륨을 바인딩하지 못했습니다

사용 가능한 PV(영구 볼륨)가 PVC의 요구 사항과 일치하지 않으면 볼륨을 바인딩하지 못할 수 있습니다.

FailedMount 또는 FailedAttachVolume

이 오류는 볼륨을 노드에 마운트하려고 할 때 문제가 있음을 나타냅니다. 디스크가 실패한 경우 Pod에서 PVC 사용을 시도할 때 이 오류가 표시될 수 있습니다.

FailedUnMount

이 오류는 노드에서 볼륨을 마운트 해제하려고 할 때 문제가 있음을 나타냅니다. 디스크가 실패한 경우 Pod에서 PVC 사용을 시도할 때 이 오류가 표시될 수 있습니다.

볼륨은 이미 하나의 노드에만 연결되어 있으며 다른 노드에 연결할 수 없습니다.

이 오류는 ReadWriteMany 액세스 모드를 지원하지 않는 스토리지 솔루션에 표시될 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift CLI(oc)에 로그인했습니다.

프로세스

  1. 다음 명령을 실행하여 PVC와 관련된 이벤트를 검사합니다.

    $ oc describe pvc <pvc_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <pvc_name>을 PVC 이름으로 바꿉니다.
  2. 문제가 발생하는 호스트에 대한 직접 연결을 설정합니다.
  3. 디스크 문제를 해결합니다.

다음 단계

  • 디스크 문제를 해결한 후에도 볼륨 오류 메시지가 유지되거나 재귀되는 경우 강제 정리를 수행해야 합니다. 자세한 내용은 "Performing a forced clean-up"을 참조하십시오.

5.4.17.5. 강제 정리 수행

문제 해결 절차를 완료한 후에도 디스크 또는 노드 관련 문제가 지속되는 경우 강제 정리를 수행해야 합니다. 강제 정리는 영구 문제를 해결하고 LVM(Logical Volume Manager) 스토리지의 적절한 기능을 확인하는 데 사용됩니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift CLI(oc)에 로그인했습니다.
  • LVM 스토리지를 사용하여 생성된 모든 PVC(영구 볼륨 클레임)를 삭제했습니다.
  • LVM 스토리지를 사용하여 생성된 PVC를 사용하는 Pod를 중지했습니다.

프로세스

  1. 다음 명령을 실행하여 openshift-storage 네임스페이스로 전환합니다.

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 LogicalVolume CR(사용자 정의 리소스)이 있는지 확인합니다.

    $ oc get logicalvolume
    Copy to Clipboard Toggle word wrap
    1. LogicalVolume CR이 있는 경우 다음 명령을 실행하여 해당 CR을 삭제합니다.

      $ oc delete logicalvolume <name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;name& gt;을 LogicalVolume CR의 이름으로 바꿉니다.
    2. LogicalVolume CR을 삭제한 후 다음 명령을 실행하여 종료자를 제거합니다.

      $ oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;name& gt;을 LogicalVolume CR의 이름으로 바꿉니다.
  3. 다음 명령을 실행하여 LVMVolumeGroup CR이 있는지 확인합니다.

    $ oc get lvmvolumegroup
    Copy to Clipboard Toggle word wrap
    1. LVMVolumeGroup CR이 있는 경우 다음 명령을 실행하여 해당 CR을 삭제합니다.

      $ oc delete lvmvolumegroup <name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;name& gt;을 LVMVolumeGroup CR의 이름으로 바꿉니다.
    2. LVMVolumeGroup CR을 삭제한 후 다음 명령을 실행하여 종료자를 제거합니다.

      $ oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;name& gt;을 LVMVolumeGroup CR의 이름으로 바꿉니다.
  4. 다음 명령을 실행하여 LVMVolumeGroupNodeStatus CR을 삭제합니다.

    $ oc delete lvmvolumegroupnodestatus --all
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 LVMCluster CR을 삭제합니다.

    $ oc delete lvmcluster --all
    Copy to Clipboard Toggle word wrap
    1. LVMCluster CR을 삭제한 후 다음 명령을 실행하여 종료자를 제거합니다.

      $ oc patch lvmcluster <name> -p '{"metadata":{"finalizers":[]}}' --type=merge 
      1
      Copy to Clipboard Toggle word wrap
      1
      & lt;name& gt;을 LVMCluster CR의 이름으로 바꿉니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat