8.15. 가상 머신 가져오기


8.15.1. 데이터 볼륨 가져오기에 필요한 TLS 인증서

8.15.1.1. 데이터 볼륨 가져오기 인증을 위한 TLS 인증서 추가

레지스트리 또는 HTTPS에서 데이터를 가져오려면 이러한 소스 끝점에 대한 TLS 인증서를 구성 맵에 추가해야 합니다. 이 구성 맵은 대상 데이터 볼륨의 네임스페이스에 있어야 합니다.

TLS 인증서의 상대 파일 경로를 참조하여 구성 맵을 만듭니다.

절차

  1. 올바른 네임스페이스에 있는지 확인합니다. 구성 맵은 동일한 네임스페이스에 있는 경우에만 데이터 볼륨에서 참조할 수 있습니다.

    $ oc get ns
  2. config map을 생성합니다.

    $ oc create configmap <configmap-name> --from-file=</path/to/file/ca.pem>

8.15.1.2. 예제: TLS 인증서에서 생성된 구성 맵

다음은 ca.pem TLS 인증서에서 생성한 구성 맵의 예입니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: tls-certs
data:
  ca.pem: |
    -----BEGIN CERTIFICATE-----
    ... <base64 encoded cert> ...
    -----END CERTIFICATE-----

8.15.2. 데이터 볼륨을 사용하여 가상 머신 이미지 가져오기

데이터 볼륨을 사용하여 가상 머신 이미지를 PVC(영구 볼륨 클레임)로 가져오려면 CDI(Containerized Data Importer)를 사용합니다. 영구 저장을 위해 데이터 볼륨을 가상 머신에 연결할 수 있습니다.

가상 머신 이미지는 HTTP 또는 HTTPS 끝점에서 호스팅하거나, 컨테이너 디스크에 빌드하고 컨테이너 레지스트리에 저장할 수 있습니다.

중요

디스크 이미지를 PVC로 가져오면 PVC에 요청한 전체 스토리지 용량을 사용하도록 디스크 이미지가 확장됩니다. 이 공간을 사용하기 위해 가상 머신의 디스크 파티션 및 파일 시스템을 확장해야 할 수 있습니다.

크기 조정 절차는 가상 머신에 설치된 운영 체제에 따라 다릅니다. 자세한 내용은 운영 체제 설명서를 참조하십시오.

8.15.2.1. 사전 요구 사항

8.15.2.2. CDI 지원 작업 매트릭스

이 매트릭스에는 끝점에 대한 콘텐츠 유형에 따라 지원되는 CDI 작업과 이러한 작업 중 스크래치 공간이 필요한 작업이 표시되어 있습니다.

콘텐츠 유형HTTPHTTPSHTTP 기본 인증레지스트리업로드

KubeVirt (QCOW2)

✓ QCOW2
✓ GZ*
✓ XZ*

✓ QCOW2**
✓ GZ*
✓ XZ*

✓ QCOW2
✓ GZ*
✓ XZ*

✓ QCOW2*
□ GZ
□ XZ

✓ QCOW2*
✓ GZ*
✓ XZ*

KubeVirt(RAW)

✓ RAW
✓ GZ
✓ XZ

✓ RAW
✓ GZ
✓ XZ

✓ RAW
✓ GZ
✓ XZ

✓ RAW*
□ GZ
□ XZ

✓ RAW*
✓ GZ*
✓ XZ*

✓ 지원되는 작업

□ 지원되지 않는 작업

* 스크래치 공간 필요

** 사용자 정의 인증 기관이 필요한 경우 스크래치 공간 필요

참고

이제 CDI에서 OpenShift Container Platform 클러스터 전체 프록시 구성을 사용합니다.

8.15.2.3. 데이터 볼륨 정보

Dataolume 오브젝트는 CDI(Containerized Data Importer) 프로젝트에서 제공하는 사용자 정의 리소스입니다. 데이터 볼륨은 기본 PVC(영구 볼륨 클레임)와 관련된 가져오기, 복제, 업로드 작업을 오케스트레이션합니다. 데이터 볼륨은 OpenShift Virtualization과 통합되며 PVC가 준비되기 전에 가상 머신이 시작되지 않도록 합니다.

8.15.2.4. 데이터 볼륨을 사용하여 가상 머신 이미지를 스토리지로 가져오기

데이터 볼륨을 사용하여 가상 머신 이미지를 스토리지로 가져올 수 있습니다.

가상 머신 이미지는 HTTP 또는 HTTPS 끝점에서 호스팅하거나 이미지를 컨테이너 디스크에 빌드하고 컨테이너 레지스트리에 저장할 수 있습니다.

VirtualMachine 구성 파일에서 이미지의 데이터 소스를 지정합니다. 가상 머신이 생성되면 가상 머신 이미지가 있는 데이터 볼륨을 스토리지로 가져옵니다.

사전 요구 사항

  • 가상 머신 이미지를 가져오려면 다음이 있어야 합니다.

    • RAW, ISO 또는 QCOW2 형식의 가상 머신 디스크 이미지(필요한 경우 xz 또는 gz를 사용하여 압축)
    • 데이터 소스에 액세스하는 데 필요한 인증 자격 증명과 함께 이미지가 호스팅되는 HTTP 또는 HTTPS 끝점
  • 컨테이너 디스크를 가져오려면 데이터 소스에 액세스하는 데 필요한 인증 자격 증명과 함께 컨테이너 디스크에 빌드되고 컨테이너 레지스트리에 저장된 가상 머신 이미지가 있어야 합니다.
  • 가상 머신이 자체 서명된 인증서 또는 시스템 CA 번들에서 서명되지 않은 인증서를 사용하는 서버와 통신해야 하는 경우 데이터 볼륨과 동일한 네임스페이스에 구성 맵을 생성해야 합니다.

절차

  1. 데이터 소스에 인증이 필요한 경우 데이터 소스 인증 정보를 지정하여 Secret 매니페스트를 생성하고 이를 endpoint-secret.yaml 로 저장합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: endpoint-secret 1
      labels:
        app: containerized-data-importer
    type: Opaque
    data:
      accessKeyId: "" 2
      secretKey:   "" 3
    1
    Secret 의 이름을 지정합니다.
    2
    Base64로 인코딩된 키 ID 또는 사용자 이름을 지정합니다.
    3
    Base64로 인코딩된 보안 키 또는 암호를 지정합니다.
  2. 보안 매니페스트 적용합니다.

    $ oc apply -f endpoint-secret.yaml
  3. 가져올 가상 머신 이미지의 데이터 소스를 지정하여 VirtualMachine 매니페스트를 편집하고 vm-fedora-datavolume.yaml 로 저장합니다.

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      creationTimestamp: null
      labels:
        kubevirt.io/vm: vm-fedora-datavolume
      name: vm-fedora-datavolume 1
    spec:
      dataVolumeTemplates:
      - metadata:
          creationTimestamp: null
          name: fedora-dv 2
        spec:
          storage:
            resources:
              requests:
                storage: 10Gi
            storageClassName: local
          source:
            http: 3
              url: "https://mirror.arizona.edu/fedora/linux/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2" 4
              secretRef: endpoint-secret 5
              certConfigMap: "" 6
        status: {}
      running: true
      template:
        metadata:
          creationTimestamp: null
          labels:
            kubevirt.io/vm: vm-fedora-datavolume
        spec:
          domain:
            devices:
              disks:
              - disk:
                  bus: virtio
                name: datavolumedisk1
            machine:
              type: ""
            resources:
              requests:
                memory: 1.5Gi
          terminationGracePeriodSeconds: 60
          volumes:
          - dataVolume:
              name: fedora-dv
            name: datavolumedisk1
    status: {}
    1
    가상 머신의 이름을 지정합니다.
    2
    데이터 볼륨의 이름을 지정합니다.
    3
    HTTP 또는 HTTPS 엔드포인트에 http 를 지정합니다. 레지스트리에서 가져온 컨테이너 디스크 이미지의 레지스트리를 지정합니다.
    4
    가져올 가상 머신 이미지의 소스입니다. 이 예제에서는 HTTPS 끝점에서 가상 머신 이미지를 참조합니다. 컨테이너 레지스트리 끝점은 예를 들면 url: "docker://kubevirt/fedora-cloud-container-disk-demo:latest"와 같습니다.
    5
    데이터 소스에 대한 보안을 생성한 경우 필수 항목입니다.
    6
    선택 사항: CA 인증서 구성 맵을 지정합니다.
  4. 가상 머신을 생성합니다.

    $ oc create -f vm-fedora-datavolume.yaml
    참고

    oc create 명령은 데이터 볼륨과 가상 머신을 생성합니다. CDI 컨트롤러에서 올바른 주석을 사용하여 기본 PVC를 생성하고 가져오기 프로세스가 시작됩니다. 가져오기가 완료되면 데이터 볼륨 상태가 Succeeded 로 변경됩니다. 가상 머신을 시작할 수 있습니다.

    데이터 볼륨 프로비저닝은 백그라운드에서 이루어지므로 프로세스를 모니터링할 필요가 없습니다.

검증

  1. 가져오기 Pod는 지정된 URL에서 가상 머신 이미지 또는 컨테이너 디스크를 다운로드하여 프로비저닝된 PV에 저장합니다. 다음 명령을 실행하여 가져오기 Pod의 상태를 확인합니다.

    $ oc get pods
  2. 다음 명령을 실행하여 상태가 Succeeded 될 때까지 데이터 볼륨을 모니터링합니다.

    $ oc describe dv fedora-dv 1
    1
    VirtualMachine 매니페스트에 정의된 데이터 볼륨 이름을 지정합니다.
  3. 직렬 콘솔에 액세스하여 프로비저닝이 완료되고 가상 머신이 시작되었는지 확인합니다.

    $ virtctl console vm-fedora-datavolume

8.15.2.5. 추가 리소스

8.15.3. 데이터 볼륨을 사용하여 가상 머신 이미지를 블록 스토리지로 가져오기

기존 가상 머신 이미지를 OpenShift Container Platform 클러스터로 가져올 수 있습니다. OpenShift Virtualization은 데이터 볼륨을 사용하여 데이터 가져오기와 기본 PVC(영구 볼륨 클레임) 생성을 자동화합니다.

중요

디스크 이미지를 PVC로 가져오면 PVC에 요청한 전체 스토리지 용량을 사용하도록 디스크 이미지가 확장됩니다. 이 공간을 사용하기 위해 가상 머신의 디스크 파티션 및 파일 시스템을 확장해야 할 수 있습니다.

크기 조정 절차는 가상 머신에 설치된 운영 체제에 따라 다릅니다. 자세한 내용은 운영 체제 설명서를 참조하십시오.

8.15.3.1. 사전 요구 사항

8.15.3.2. 데이터 볼륨 정보

Dataolume 오브젝트는 CDI(Containerized Data Importer) 프로젝트에서 제공하는 사용자 정의 리소스입니다. 데이터 볼륨은 기본 PVC(영구 볼륨 클레임)와 관련된 가져오기, 복제, 업로드 작업을 오케스트레이션합니다. 데이터 볼륨은 OpenShift Virtualization과 통합되며 PVC가 준비되기 전에 가상 머신이 시작되지 않도록 합니다.

8.15.3.3. 블록 영구 볼륨 정보

PV(블록 영구 볼륨)는 원시 블록 장치에서 지원하는 PV입니다. 이러한 볼륨은 파일 시스템이 없으며 오버헤드를 줄여 가상 머신의 성능을 향상시킬 수 있습니다.

원시 블록 볼륨은 volumeMode를 지정하여 프로비저닝됩니다. PV 및 PVC(영구 볼륨 클레임) 사양에서 block

8.15.3.4. 로컬 블록 영구 볼륨 생성

파일을 채우고 루프 장치로 마운트하여 노드에 로컬 블록 PV(영구 볼륨)를 생성합니다. 그런 다음 PV 매니페스트에서 이 루프 장치를 Block 볼륨으로 참조하고 가상 머신 이미지의 블록 장치로 사용할 수 있습니다.

절차

  1. 로컬 PV를 생성할 노드에 root로 로그인합니다. 이 절차에서는 예제로 node01을 사용합니다.
  2. 블록 장치로 사용할 수 있도록 파일을 생성하고 null 문자로 채웁니다. 다음 예제에서는 크기가 2Gb(20X100Mb 블록)인 파일 loop10을 생성합니다.

    $ dd if=/dev/zero of=<loop10> bs=100M count=20
  3. loop10 파일을 루프 장치로 마운트합니다.

    $ losetup </dev/loop10>d3 <loop10> 1 2
    1
    루프 장치가 마운트된 파일 경로입니다.
    2
    이전 단계에서 생성된 파일은 루프 장치로 마운트됩니다.
  4. 마운트된 루프 장치를 참조하는 PersistentVolume 매니페스트를 생성합니다.

    kind: PersistentVolume
    apiVersion: v1
    metadata:
      name: <local-block-pv10>
      annotations:
    spec:
      local:
        path: </dev/loop10> 1
      capacity:
        storage: <2Gi>
      volumeMode: Block 2
      storageClassName: local 3
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Delete
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
              - <node01> 4
    1
    노드에 있는 루프 장치의 경로입니다.
    2
    블록 PV임을 나타냅니다.
    3
    선택 사항: PV의 스토리지 클래스를 설정합니다. 생략하면 클러스터 기본값이 사용됩니다.
    4
    블록 장치가 마운트된 노드입니다.
  5. 블록 PV를 생성합니다.

    # oc create -f <local-block-pv10.yaml>1
    1
    이전 단계에서 생성한 영구 볼륨의 파일 이름입니다.

8.15.3.5. 데이터 볼륨을 사용하여 가상 머신 이미지를 블록 스토리지로 가져오기

데이터 볼륨을 사용하여 가상 머신 이미지를 블록 스토리지로 가져올 수 있습니다. 가상 머신을 생성하기 전에 VirtualMachine 매니페스트의 데이터 볼륨을 참조합니다.

사전 요구 사항

  • RAW, ISO 또는 QCOW2 형식의 가상 머신 디스크 이미지(필요한 경우 xz 또는 gz를 사용하여 압축)
  • 데이터 소스에 액세스하는 데 필요한 인증 자격 증명과 함께 이미지가 호스팅되는 HTTP 또는 HTTPS 끝점

절차

  1. 데이터 소스에 인증이 필요한 경우 데이터 소스 인증 정보를 지정하여 Secret 매니페스트를 생성하고 이를 endpoint-secret.yaml 로 저장합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: endpoint-secret 1
      labels:
        app: containerized-data-importer
    type: Opaque
    data:
      accessKeyId: "" 2
      secretKey:   "" 3
    1
    Secret 의 이름을 지정합니다.
    2
    Base64로 인코딩된 키 ID 또는 사용자 이름을 지정합니다.
    3
    Base64로 인코딩된 보안 키 또는 암호를 지정합니다.
  2. 보안 매니페스트 적용합니다.

    $ oc apply -f endpoint-secret.yaml
  3. DataVolume 매니페스트를 생성하여 가상 머신 이미지의 데이터 소스 및 storage.volumeMode 의 경우 Block 을 지정합니다.

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: DataVolume
    metadata:
      name: import-pv-datavolume 1
    spec:
      storageClassName: local 2
        source:
          http:
            url: "https://mirror.arizona.edu/fedora/linux/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2" 3
            secretRef: endpoint-secret 4
      storage:
        volumeMode: Block 5
        resources:
          requests:
            storage: 10Gi
    1
    데이터 볼륨의 이름을 지정합니다.
    2
    선택 사항: 스토리지 클래스를 설정하거나 클러스터 기본값을 수락하도록 생략합니다.
    3
    가져올 이미지의 HTTP 또는 HTTPS URL을 지정합니다.
    4
    데이터 소스에 대한 보안을 생성한 경우 필수 항목입니다.
    5
    볼륨 모드 및 액세스 모드는 알려진 스토리지 프로비저너에서 자동으로 탐지됩니다. 그렇지 않으면 Block 을 지정합니다.
  4. 데이터 볼륨을 생성하여 가상 머신 이미지를 가져옵니다.

    $ oc create -f import-pv-datavolume.yaml

가상 머신을 생성하기 전에 VirtualMachine 매니페스트에서 이 데이터 볼륨을 참조할 수 있습니다.

8.15.3.6. CDI 지원 작업 매트릭스

이 매트릭스에는 끝점에 대한 콘텐츠 유형에 따라 지원되는 CDI 작업과 이러한 작업 중 스크래치 공간이 필요한 작업이 표시되어 있습니다.

콘텐츠 유형HTTPHTTPSHTTP 기본 인증레지스트리업로드

KubeVirt (QCOW2)

✓ QCOW2
✓ GZ*
✓ XZ*

✓ QCOW2**
✓ GZ*
✓ XZ*

✓ QCOW2
✓ GZ*
✓ XZ*

✓ QCOW2*
□ GZ
□ XZ

✓ QCOW2*
✓ GZ*
✓ XZ*

KubeVirt(RAW)

✓ RAW
✓ GZ
✓ XZ

✓ RAW
✓ GZ
✓ XZ

✓ RAW
✓ GZ
✓ XZ

✓ RAW*
□ GZ
□ XZ

✓ RAW*
✓ GZ*
✓ XZ*

✓ 지원되는 작업

□ 지원되지 않는 작업

* 스크래치 공간 필요

** 사용자 정의 인증 기관이 필요한 경우 스크래치 공간 필요

참고

이제 CDI에서 OpenShift Container Platform 클러스터 전체 프록시 구성을 사용합니다.

8.15.3.7. 추가 리소스

8.15.4. 단일 Red Hat Virtualization 가상 머신 가져오기

VM 가져오기 마법사 또는 CLI를 사용하여 단일 RHV(Red Hat Virtualization) 가상 머신을 OpenShift Virtualization으로 가져올 수 있습니다.

중요

RHV VM 가져오기는 더 이상 사용되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Virtualization에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.

OpenShift Virtualization에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Virtualization 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.

이 기능은 Migration Toolkit for Virtualization으로 대체됩니다.

8.15.4.1. OpenShift Virtualization 스토리지 기능 매트릭스

다음 표에는 VM 가져오기를 지원하는 OpenShift Virtualization 스토리지 유형이 설명되어 있습니다.

표 8.4. OpenShift Virtualization 스토리지 기능 매트릭스
 RHV VM 가져오기

OpenShift Container Storage: rbd 블록 모드 볼륨

있음

OpenShift Virtualization hostpath 프로비전 프로그램

아니요

기타 다중 노드 쓰기 가능 스토리지

[1]

기타 단일 노드 쓰기 가능 스토리지

[2]

  1. PVC에서 ReadWriteMany 액세스 모드를 요청해야 합니다.
  2. PVC에서 ReadWriteOnce 액세스 모드를 요청해야 합니다.

8.15.4.2. 가상 머신 가져오기 사전 요구 사항

RHV(Red Hat Virtualization)에서 OpenShift Virtualization으로 가상 머신을 가져오려면 다음과 같은 사전 요구 사항을 충족해야 합니다.

  • 관리자 권한이 있어야 합니다.
  • 스토리지:

    • OpenShift Virtualization 로컬 및 공유 영구 스토리지 클래스에서 VM 가져오기를 지원해야 합니다.
    • 가상 디스크에 Ceph RBD 블록 모드 볼륨을 사용하고 있고 사용 가능한 스토리지 공간이 가상 디스크에 비해 너무 작으면 가져오기 프로세스 표시줄이 75%에서 20분 이상 중지되고 마이그레이션이 실패합니다. 웹 콘솔에 오류 메시지가 표시되지 않습니다. BZ#1910019
  • 네트워크:

    • RHV 네트워크와 OpenShift Virtualization 네트워크는 이름이 동일하거나 서로 매핑되어야 합니다.
    • RHV VM 네트워크 인터페이스는 e1000, rtl8139 또는 virtio여야 합니다.
  • VM 디스크:

    • 디스크 인터페이스는 sata, virtio_scsi 또는 virtio여야 합니다.
    • 디스크를 직접 LUN으로 구성하지 않아야 합니다.
    • 디스크 상태는 illegal 또는 locked가 아니어야 합니다.
    • 스토리지 유형이 image여야 합니다.
    • SCSI 예약을 비활성화해야 합니다.
    • ScsiGenericIO를 비활성화해야 합니다.
  • VM 구성:

    • VM에서 GPU 리소스를 사용하는 경우 GPU를 제공하는 노드를 구성해야 합니다.
    • VM을 vGPU 리소스용으로 구성해서는 안 됩니다.
    • VM에 illegal 상태의 디스크가 있는 스냅샷이 없어야 합니다.
    • VM을 OpenShift Container Platform으로 생성한 후 RHV에 추가해서는 안 됩니다.
    • VM을 USB 장치용으로 구성해서는 안 됩니다.
    • 워치독 모델은 diag288이 아니어야 합니다.

8.15.4.3. VM 가져오기 마법사를 사용하여 가상 머신 가져오기

VM 가져오기 마법사를 사용하여 단일 가상 머신을 가져올 수 있습니다.

절차

  1. 웹 콘솔에서 워크로드 가상 머신을 클릭합니다.
  2. 가상 머신 생성을 클릭하고 마법사로 가져오기를 선택합니다.
  3. 공급자 목록에서 RHV(Red Hat Virtualization)를 선택합니다.
  4. 새 인스턴스에 연결 또는 저장된 RHV 인스턴스를 선택합니다.

    • 새 인스턴스에 연결을 선택하는 경우 다음 필드를 채우십시오.

      • API URL: 예를 들면 https://<RHV_Manager_FQDN>/ovirt-engine/api입니다.
      • CA 인증서: Browse(찾아보기 )를 클릭하여 RHV Manager CA 인증서를 업로드하거나 CA 인증서를 필드에 붙여넣습니다.

        다음 명령을 실행하여 CA 인증서를 확인합니다.

        $ openssl s_client -connect <RHV_Manager_FQDN>:443 -showcerts < /dev/null

        CA 인증서는 출력의 두 번째 인증서입니다.

      • 사용자 이름: RHV Manager 사용자 이름(예: ocpadmin@internal)
      • 암호: RHV Manager 암호
    • 저장된 RHV 인스턴스를 선택하면 저장된 자격 증명을 사용하여 마법사가 RHV 인스턴스에 연결됩니다.
  5. 확인 및 저장을 클릭하고 연결이 완료될 때까지 기다립니다.

    참고

    연결 세부 정보는 시크릿에 저장됩니다. 잘못된 URL, 사용자 이름 또는 암호를 사용하여 공급자를 추가하는 경우 워크로드 시크릿을 클릭하고 공급자 시크릿을 삭제합니다.

  6. 클러스터와 가상 머신을 선택합니다.
  7. 다음을 클릭합니다.
  8. 검토 화면에서 설정을 검토합니다.
  9. 선택 사항: 생성 시 가상 머신 시작을 선택할 수 있습니다.
  10. 편집을 클릭하여 다음 설정을 업데이트합니다.

    • 일반 이름: VM 이름은 63자로 제한됩니다.
    • 일반 설명: VM에 대한 선택적 설명입니다.

      • 스토리지 클래스: NFS 또는 ocs-storagecluster-ceph-rbd 를 선택합니다.

        ocs-storagecluster-ceph-rbd를 선택하는 경우 디스크의 볼륨 모드블록으로 설정해야 합니다.

      • 고급 볼륨 모드: Block 을 선택합니다.
    • 고급 볼륨 모드: Block 을 선택합니다.
    • 네트워킹 네트워크: 사용 가능한 네트워크 연결 정의 오브젝트 목록에서 네트워크를 선택할 수 있습니다.
  11. 가져오기 설정을 편집한 경우 가져오기 또는 검토 및 가져오기를 클릭합니다.

    가상 머신 생성 완료 메시지와 가상 머신용으로 생성된 리소스 목록이 표시됩니다. 가상 머신은 워크로드 가상 머신에 나타납니다.

가상 머신 마법사 필드
이름매개변수설명

이름

 

이름에는 소문자(a-z), 숫자(0-9), 하이픈(-)이 최대 253자까지 포함될 수 있습니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 이름에는 대문자, 공백, 마침표(.) 또는 특수 문자가 포함되어서는 안 됩니다.

설명

 

선택적 설명 필드입니다.

운영 체제

 

템플릿에서 가상 머신에 대해 선택된 운영 체제입니다. 템플릿에서 가상 머신을 생성할 때 이 필드를 편집할 수 없습니다.

부팅 소스

URL을 통해 가져오기(PVC 생성)

HTTP 또는 HTTPS 끝점에서 사용할 수 있는 이미지에서 콘텐츠를 가져옵니다. 예제: 운영 체제 이미지를 사용하여 웹 페이지에서 URL 링크 가져오기.

기존 PVC 복제 (PVC 생성)

클러스터에서 사용 가능한 기존 영구 볼륨 클레임을 선택하고 복제합니다.

레지스트리를 통해 가져오기(PVC 생성)

클러스터에서 액세스할 수 있는 레지스트리의 부팅 가능한 운영 체제 컨테이너에서 가상 머신을 프로비저닝합니다. 예를 들면 kubevirt/cirros-registry-disk-demo입니다.

PXE (네트워크 부팅-네트워크 인터페이스 추가)

네트워크의 서버에서 운영 체제를 부팅합니다. PXE 부팅 가능 네트워크 연결 정의가 필요합니다.

영구 볼륨 클레임 프로젝트

 

PVC 복제에 사용할 프로젝트 이름입니다.

영구 볼륨 클레임 이름

 

기존 PVC를 복제하는 경우 이 가상 머신 템플릿에 적용할 PVC 이름입니다.

CD-ROM 부팅 소스로 마운트

 

운영 체제를 설치하기 위한 추가 디스크가 CD-ROM에 필요합니다. 확인란을 선택하여 디스크를 추가하고 나중에 사용자 지정합니다.

플레이버

매우 작음, 작음, 중간, 큼, 사용자 정의

해당 템플릿과 연결된 운영 체제에 따라 가상 시스템에 할당된 사전 정의된 값을 사용하여 가상 머신 템플릿의 CPU 및 메모리 양을 미리 설정합니다.

기본 템플릿을 선택하는 경우 사용자 지정 값을 사용하여 템플릿의 cpusmemsize 값을 재정의하여 사용자 지정 템플릿을 생성할 수 있습니다. 또는 워크로드 가상화 페이지의 세부 정보 탭에서 cpusmemsize 값을 수정하여 사용자 지정 템플릿을 생성할 수 있습니다.

워크로드 유형

참고

잘못된 워크로드 유형을 선택하는 경우 성능 또는 리소스 사용률 문제(예: 느린 UI)가 있을 수 있습니다.

데스크탑

데스크탑에서 사용할 가상 머신 구성입니다. 소규모에서 사용하기에 매우 적합합니다. 웹 콘솔과 함께 사용하는 것이 좋습니다.

서버

성능을 밸런싱하고 다양한 서버 워크로드와 호환됩니다.

고성능

고성능 워크로드에 최적화된 가상 머신 구성입니다.

생성 후 가상 머신 시작.

 

이 확인란은 기본적으로 선택되며 가상 머신이 생성 후 실행됩니다. 가상 머신이 생성될 때 시작하지 않도록 하려면 확인란의 선택을 해제합니다.

네트워킹 필드
이름설명

이름

네트워크 인터페이스 컨트롤러의 이름입니다.

모델

네트워크 인터페이스 컨트롤러의 모델을 나타냅니다. 지원되는 값은 e1000evirtio입니다.

네트워크

사용 가능한 네트워크 연결 정의 목록입니다.

유형

사용 가능한 바인딩 방법 목록입니다. 기본 Pod 네트워크의 경우 권장되는 유일한 바인딩 방법은 masquerade입니다. 보조 네트워크의 경우 bridge 바인딩 방법을 사용하십시오. 기본이 아닌 네트워크에서는 masquerade 방법이 지원되지 않습니다. SR-IOV 네트워크 장치를 구성하고 네임스페이스에서 해당 네트워크를 정의한 경우 SR-IOV를 선택합니다.

MAC 주소

네트워크 인터페이스 컨트롤러의 MAC 주소입니다. MAC 주소를 지정하지 않으면 주소가 자동으로 할당됩니다.

스토리지 필드
이름선택설명

소스

비어있음 (PVC 생성)

빈 디스크를 만듭니다.

URL을 통해 가져오기(PVC 생성)

URL(HTTP 또는 HTTPS 끝점)을 통해 콘텐츠를 가져옵니다.

기존 PVC 사용

클러스터에서 이미 사용 가능한 PVC를 사용합니다.

기존 PVC 복제 (PVC 생성)

클러스터에서 사용 가능한 기존 PVC를 선택하고 복제합니다.

레지스트리를 통해 가져오기(PVC 생성)

컨테이너 레지스트리를 통해 콘텐츠를 가져옵니다.

컨테이너 (임시)

클러스터에서 액세스할 수 있는 레지스트리에 있는 컨테이너에서 콘텐츠를 업로드합니다. 컨테이너 디스크는 CD-ROM 또는 임시 가상 머신과 같은 읽기 전용 파일 시스템에만 사용해야 합니다.

이름

 

디스크 이름입니다. 이름에는 소문자(a-z), 숫자(0-9), 하이픈(-), 마침표(.)가 최대 253자까지 포함될 수 있습니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 이름에는 대문자, 공백 또는 특수 문자가 포함되어서는 안 됩니다.

크기

 

디스크 크기(GiB)입니다.

유형

 

디스크의 유형입니다. 예제: 디스크 또는 CD-ROM

인터페이스

 

디스크 장치의 유형입니다. 지원되는 인터페이스는 virtIO, SATA, SCSI입니다.

스토리지 클래스

 

디스크를 만드는 데 사용되는 스토리지 클래스입니다.

고급 볼륨 모드

 

영구 볼륨에서 포맷된 파일 시스템을 사용하는지 또는 원시 블록 상태를 사용하는지를 정의합니다. 기본값은 Filesystem입니다.

고급 스토리지 설정
이름매개변수설명

볼륨 모드

파일 시스템

파일 시스템 기반 볼륨에 가상 디스크를 저장합니다.

블록

가상 디스크를 블록 볼륨에 직접 저장합니다. 기본 스토리지에서 지원하는 경우에만 Block을 사용하십시오.

액세스 모드 [1]

단일 사용자(RWO)

디스크는 단일 노드에서 읽기/쓰기로 마운트할 수 있습니다.

공유 액세스(RWX)

디스크는 여러 노드에서 읽기/쓰기로 마운트할 수 있습니다.

읽기 전용(ROX)

디스크는 많은 노드에서 읽기 전용으로 마운트할 수 있습니다.

  1. 명령줄 인터페이스를 사용하여 액세스 모드를 변경할 수 있습니다.

8.15.4.4. CLI를 사용하여 가상 머신 가져오기

SecretVirtualMachineImport CR(사용자 정의 리소스)을 생성하여 CLI로 가상 머신을 가져올 수 있습니다. Secret CR은 RHV Manager 자격 증명과 CA 인증서를 저장합니다. VirtualMachineImport CR은 VM 가져오기 프로세스의 매개변수를 정의합니다.

선택 사항: VirtualMachineImport CR과 별도의 ResourceMapping CR을 생성할 수 있습니다. ResourceMapping CR은 예를 들면 추가 RHV VM을 가져오는 경우 향상된 유연성을 제공합니다.

중요

기본 대상 스토리지 클래스는 NFS여야 합니다. Cinder에서는 RHV VM 가져오기를 지원하지 않습니다.

절차

  1. 다음 명령을 실행하여 Secret CR을 생성합니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: rhv-credentials
      namespace: default 1
    type: Opaque
    stringData:
      ovirt: |
        apiUrl: <api_endpoint> 2
        username: ocpadmin@internal
        password: 3
        caCert: |
          -----BEGIN CERTIFICATE-----
          4
          -----END CERTIFICATE-----
    EOF
    1
    선택사항입니다. 모든 CR에 다른 네임스페이스를 지정할 수 있습니다.
    2
    RHV Manager의 API 끝점(예: \"https://www.example.com:8443/ovirt-engine/api")을 지정합니다.
    3
    ocpadmin@internal의 암호를 지정합니다.
    4
    RHV Manager CA 인증서를 지정합니다. 다음 명령을 실행하여 CA 인증서를 가져올 수 있습니다.
    $ openssl s_client -connect :443 -showcerts < /dev/null
  2. 선택 사항: 다음 명령을 실행하여 VirtualMachineImport CR에서 리소스 매핑을 분리하려면 ResourceMapping CR을 생성합니다.

    $ cat <<EOF | kubectl create -f -
    apiVersion: v2v.kubevirt.io/v1alpha1
    kind: ResourceMapping
    metadata:
      name: resourcemapping_example
      namespace: default
    spec:
      ovirt:
        networkMappings:
          - source:
              name: <rhv_logical_network>/<vnic_profile> 1
            target:
              name: <target_network> 2
            type: pod
        storageMappings: 3
          - source:
              name: <rhv_storage_domain> 4
            target:
              name: <target_storage_class> 5
            volumeMode: <volume_mode> 6
    EOF
    1
    RHV 논리 네트워크 및 vNIC 프로필을 지정합니다.
    2
    OpenShift Virtualization 네트워크를 지정합니다.
    3
    스토리지 매핑이 ResourceMapping CR과 VirtualMachineImport CR에 모두 지정된 경우 VirtualMachineImport CR이 우선합니다.
    4
    RHV 스토리지 도메인을 지정합니다.
    5
    NFS 또는 ocs-storagecluster-ceph-rbd를 지정합니다.
    6
    ocs-storagecluster-ceph-rbd 스토리지 클래스를 지정한 경우 볼륨 모드를 Block으로 지정해야 합니다.
  3. 다음 명령을 실행하여 VirtualMachineImport CR을 생성합니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v2v.kubevirt.io/v1beta1
    kind: VirtualMachineImport
    metadata:
      name: vm-import
      namespace: default
    spec:
      providerCredentialsSecret:
        name: rhv-credentials
        namespace: default
    # resourceMapping: 1
    #   name: resourcemapping-example
    #   namespace: default
      targetVmName: vm_example 2
      startVm: true
      source:
        ovirt:
          vm:
            id: <source_vm_id> 3
            name: <source_vm_name> 4
          cluster:
            name: <source_cluster_name> 5
          mappings: 6
            networkMappings:
              - source:
                  name: <source_logical_network>/<vnic_profile> 7
                target:
                  name: <target_network> 8
                type: pod
            storageMappings: 9
              - source:
                  name: <source_storage_domain> 10
                target:
                  name: <target_storage_class> 11
                accessMode: <volume_access_mode> 12
            diskMappings:
              - source:
                  id: <source_vm_disk_id> 13
                target:
                  name: <target_storage_class> 14
    EOF
    1
    ResourceMapping CR을 생성하는 경우 resourceMapping 섹션의 주석을 제거하십시오.
    2
    대상 VM 이름을 지정합니다.
    3
    소스 VM ID를 지정합니다(예: 80554327-0569-496b-bdeb-fcbbf52b827b). Manager 머신의 웹 브라우저에 https://www.example.com/ovirt-engine/api/vms/를 입력하여 모든 VM을 나열하는 방식으로 VM ID를 가져올 수 있습니다. 가져올 VM과 해당 VM ID를 찾습니다. VM 이름이나 클러스터 이름을 지정할 필요가 없습니다.
    4
    소스 VM 이름을 지정하는 경우 소스 클러스터도 지정해야 합니다. 소스 VM ID는 지정하지 않도록 합니다.
    5
    소스 클러스터를 지정하는 경우 소스 VM 이름도 지정해야 합니다. 소스 VM ID는 지정하지 않도록 합니다.
    6
    ResourceMapping CR을 생성하는 경우 mappings 섹션을 주석으로 처리합니다.
    7
    소스 VM의 논리 네트워크 및 vNIC 프로필을 지정합니다.
    8
    OpenShift Virtualization 네트워크를 지정합니다.
    9
    스토리지 매핑이 ResourceMapping CR과 VirtualMachineImport CR에 모두 지정된 경우 VirtualMachineImport CR이 우선합니다.
    10
    소스 스토리지 도메인을 지정합니다.
    11
    대상 스토리지 클래스를 지정합니다.
    12
    ReadWriteOnce, ReadWriteMany 또는 ReadOnlyMany를 지정합니다. 액세스 모드가 지정되지 않은 경우 {virt}는 RHV VM의 호스트 마이그레이션 모드 설정 또는 가상 디스크 액세스 모드를 기반으로 올바른 볼륨 액세스 모드를 결정합니다.
    • RHV VM 마이그레이션 모드가 수동 및 자동 마이그레이션 허용인 경우 기본 액세스 모드는 ReadWriteMany입니다.
    • RHV 가상 디스크 액세스 모드가 ReadOnly이면 기본 액세스 모드는 ReadOnlyMany입니다.
    • 다른 모든 설정에서 기본 액세스 모드는 ReadWriteOnce입니다.
    13
    소스 VM 디스크 ID를 지정합니다(예: 8181ecc1-5db8-4193-9c92-3ddab3be7b05). Manager 머신의 웹 브라우저에 https://www.example.com/ovirt-engine/api/vms/vm23을 입력하고 VM 세부 정보를 검토하여 디스크 ID를 가져올 수 있습니다.
    14
    대상 스토리지 클래스를 지정합니다.
  4. 가상 머신 가져오기 진행률을 보고 가져오기가 성공했는지 확인합니다.

    $ oc get vmimports vm-import -n default

    가져오기가 성공했음을 나타내는 출력은 다음 예와 유사합니다.

    출력 예

    ...
    status:
      conditions:
      - lastHeartbeatTime: "2020-07-22T08:58:52Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: Validation completed successfully
        reason: ValidationCompleted
        status: "True"
        type: Valid
      - lastHeartbeatTime: "2020-07-22T08:58:52Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: 'VM specifies IO Threads: 1, VM has NUMA tune mode specified: interleave'
        reason: MappingRulesVerificationReportedWarnings
        status: "True"
        type: MappingRulesVerified
      - lastHeartbeatTime: "2020-07-22T08:58:56Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: Copying virtual machine disks
        reason: CopyingDisks
        status: "True"
        type: Processing
      dataVolumes:
      - name: fedora32-b870c429-11e0-4630-b3df-21da551a48c0
      targetVmName: fedora32

8.15.4.4.1. VM 가져오기를 위한 구성 맵 만들기

기본 vm-import-controller 매핑을 재정의하거나 매핑을 추가하려는 경우 RHV(Red Hat Virtualization) 가상 머신 운영 체제를 OpenShift Virtualization 템플릿에 매핑하는 구성 맵을 만들 수 있습니다.

기본 vm-import-controller 구성 맵에는 다음 RHV 운영 체제와 해당하는 공통 OpenShift Virtualization 템플릿이 포함되어 있습니다.

표 8.5. 운영 체제 및 템플릿 매핑
RHV VM 운영 체제OpenShift Virtualization 템플릿

rhel_6_10_plus_ppc64

rhel6.10

rhel_6_ppc64

rhel6.10

rhel_6

rhel6.10

rhel_6x64

rhel6.10

rhel_6_9_plus_ppc64

rhel6.9

rhel_7_ppc64

rhel7.7

rhel_7_s390x

rhel7.7

rhel_7x64

rhel7.7

rhel_8x64

rhel8.1

sles_11_ppc64

opensuse15.0

sles_11

opensuse15.0

sles_12_s390x

opensuse15.0

ubuntu_12_04

ubuntu18.04

ubuntu_12_10

ubuntu18.04

ubuntu_13_04

ubuntu18.04

ubuntu_13_10

ubuntu18.04

ubuntu_14_04_ppc64

ubuntu18.04

ubuntu_14_04

ubuntu18.04

ubuntu_16_04_s390x

ubuntu18.04

windows_10

win10

windows_10x64

win10

windows_2003

win10

windows_2003x64

win10

windows_2008R2x64

win2k8

windows_2008

win2k8

windows_2008x64

win2k8

windows_2012R2x64

win2k12r2

windows_2012x64

win2k12r2

windows_2016x64

win2k16

windows_2019x64

win2k19

windows_7

win10

windows_7x64

win10

windows_8

win10

windows_8x64

win10

windows_xp

win10

절차

  1. 웹 브라우저에서 http://<RHV_Manager_FQDN>/ovirt-engine/api/vms/<VM_ID>로 이동하여 RHV VM 운영 체제의 REST API 이름을 확인합니다. 운영 체제 이름은 XML 출력의 <os> 섹션에 다음 예와 같이 표시됩니다.

    ...
    <os>
    ...
    <type>rhel_8x64</type>
    </os>
  2. 사용 가능한 OpenShift Virtualization 템플릿 목록을 확인합니다.

    $ oc get templates -n openshift --show-labels | tr ',' '\n' | grep os.template.kubevirt.io | sed -r 's#os.template.kubevirt.io/(.*)=.*#\1#g' | sort -u

    출력 예

    fedora31
    fedora32
    ...
    rhel8.1
    rhel8.2
    ...

  3. RHV VM 운영 체제와 일치하는 OpenShift Virtualization 템플릿이 사용 가능한 템플릿 목록에 나타나지 않으면 OpenShift Virtualization 웹 콘솔을 사용하여 템플릿을 만듭니다.
  4. RHV VM 운영 체제를 OpenShift Virtualization 템플릿에 매핑하는 구성 맵을 만듭니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: os-configmap
      namespace: default 1
    data:
      guestos2common: |
        "Red Hat Enterprise Linux Server": "rhel"
        "CentOS Linux": "centos"
        "Fedora": "fedora"
        "Ubuntu": "ubuntu"
        "openSUSE": "opensuse"
      osinfo2common: |
        "<rhv-operating-system>": "<vm-template>" 2
    EOF
    1
    선택 사항: namespace 매개변수의 값을 변경할 수 있습니다.
    2
    다음 예제와 같이 RHV 운영 체제의 REST API 이름과 해당 VM 템플릿을 지정합니다.

    구성 맵 예

    $ cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: os-configmap
      namespace: default
    data:
      osinfo2common: |
        "other_linux": "fedora31"
    EOF

  5. 사용자 정의 구성 맵이 생성되었는지 확인합니다.

    $ oc get cm -n default os-configmap -o yaml
  6. vm-import-controller-config 구성 맵을 패치하여 새 구성 맵을 적용합니다.

    $ oc patch configmap vm-import-controller-config -n openshift-cnv --patch '{
        "data": {
            "osConfigMap.name": "os-configmap",
            "osConfigMap.namespace": "default" 1
        }
    }'
    1
    구성 맵에서 네임스페이스를 변경한 경우 업데이트하십시오.
  7. OpenShift Virtualization 웹 콘솔에 템플릿이 표시되는지 확인합니다.

    1. 사이드 메뉴에서 워크로드 가상화를 클릭합니다.
    2. 가상 머신 템플릿 탭을 클릭하고 목록에서 템플릿을 찾습니다.

8.15.4.5. 가상 머신 가져오기 문제 해결

8.15.4.5.1. 로그

VM Import Controller Pod 로그에서 오류가 있는지 확인할 수 있습니다.

절차

  1. 다음 명령을 실행하여 VM Import Controller Pod 이름을 확인합니다.

    $ oc get pods -n <namespace> | grep import 1
    1
    가져온 가상 머신의 네임스페이스를 지정합니다.

    출력 예

    vm-import-controller-f66f7d-zqkz7            1/1     Running     0          4h49m

  2. 다음 명령을 실행하여 VM Import Controller Pod 로그를 확인합니다.

    $ oc logs <vm-import-controller-f66f7d-zqkz7> -f -n <namespace> 1
    1
    VM Import Controller Pod 이름과 네임스페이스를 지정합니다.
8.15.4.5.2. 오류 메시지

다음과 같은 오류 메시지가 나타날 수 있습니다.

  • OpenShift Virtualization 스토리지 PV가 적합하지 않은 경우, VM Import Controller Pod 로그에 다음 오류 메시지가 표시되고 진행률 표시줄이 10%에서 멈춥니다.

    Failed to bind volumes: provisioning failed for PVC

    호환되는 스토리지 클래스를 사용해야 합니다. Cinder 스토리지 클래스는 지원되지 않습니다.

8.15.4.5.3. 확인된 문제
  • 가상 디스크에 Ceph RBD 블록 모드 볼륨을 사용하고 있고 사용 가능한 스토리지 공간이 가상 디스크에 비해 너무 작으면 가져오기 프로세스 표시줄이 75%에서 20분 이상 중지되고 마이그레이션이 실패합니다. 웹 콘솔에 오류 메시지가 표시되지 않습니다. BZ#1910019

8.15.5. 단일 VMware 가상 머신 또는 템플릿 가져오기

VM Import 마법사를 사용하여 VMware vSphere 6.5, 6.7 또는 7.0 VM 또는 VM 템플릿을 OpenShift Virtualization으로 가져올 수 있습니다. VM 템플릿을 가져오는 경우 OpenShift Virtualization에서 해당 템플릿을 기반으로 가상 머신을 생성합니다.

중요

VMware VM 가져오기는 더 이상 사용되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Virtualization에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.

OpenShift Virtualization에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Virtualization 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.

이 기능은 Migration Toolkit for Virtualization으로 대체됩니다.

8.15.5.1. OpenShift Virtualization 스토리지 기능 매트릭스

다음 표에는 VM 가져오기를 지원하는 OpenShift Virtualization 스토리지 유형이 설명되어 있습니다.

표 8.6. OpenShift Virtualization 스토리지 기능 매트릭스
 VMware VM 가져오기

OpenShift Container Storage: rbd 블록 모드 볼륨

OpenShift Virtualization hostpath 프로비전 프로그램

기타 다중 노드 쓰기 가능 스토리지

[1]

기타 단일 노드 쓰기 가능 스토리지

[2]

  1. PVC에서 ReadWriteMany 액세스 모드를 요청해야 합니다.
  2. PVC에서 ReadWriteOnce 액세스 모드를 요청해야 합니다.

8.15.5.2. VDDK 이미지 준비

가져오기 프로세스에서는 VMware VDDK(가상 디스크 개발 키트)를 사용하여 VMware 가상 디스크를 복사합니다.

VDDK SDK를 다운로드하여 VDDK 이미지를 생성한 후 이미지를 이미지 레지스트리에 업로드하고 HyperConverged 사용자 지정 리소스 (CR)의 spec.vddkInitImage에 추가할 수 있습니다.

VDDK 이미지에 사용할 내부 OpenShift Container Platform 이미지 레지스트리 또는 안전한 외부 이미지 레지스트리를 구성할 수 있습니다. OpenShift Virtualization 환경에서 레지스트리에 액세스할 수 있어야 합니다.

참고

VDDK 이미지를 공용 레지스트리에 저장하면 VMware 라이센스 약관을 위반할 수 있습니다.

8.15.5.2.1. 내부 이미지 레지스트리 구성

Image Registry Operator 구성을 업데이트하여 베어 메탈에 내부 OpenShift Container Platform 이미지 레지스트리를 구성할 수 있습니다.

경로를 사용하여 레지스트리를 노출하면 OpenShift Container Platform 클러스터 내에서 직접 또는 외부에서 레지스트리에 액세스할 수 있습니다.

이미지 레지스트리의 관리 상태 변경

이미지 레지스트리를 시작하려면 Image Registry Operator 구성의 managementStateRemoved에서 Managed로 변경해야 합니다.

절차

  • managementState Image Registry Operator 구성을 Removed에서 Managed로 변경합니다. 예를 들면 다음과 같습니다.

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
베어메탈 및 기타 수동 설치를 위한 레지스트리 스토리지 구성

클러스터 관리자는 설치한 후 스토리지를 사용하도록 레지스트리를 구성해야 합니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • 베어 메탈과 같이 수동으로 프로비저닝된 RHCOS(Red Hat Enterprise Linux CoreOS) 노드를 사용하는 클러스터가 있어야 합니다.
  • Red Hat OpenShift Container Storage와 같이 클러스터용 영구 스토리지 프로비저닝이 있습니다.

    중요

    OpenShift Container Platform은 복제본이 하나만 있는 경우 이미지 레지스트리 스토리지에 대한 ReadWriteOnce 액세스를 지원합니다. ReadWriteOnce 액세스에서는 레지스트리가 Recreate 롤아웃 전략을 사용해야 합니다. 두 개 이상의 복제본으로 고 가용성을 지원하는 이미지 레지스트리를 배포하려면 ReadWriteMany 액세스가 필요합니다.

  • "100Gi" 용량이 필요합니다.

절차

  1. 스토리지를 사용하도록 레지스트리를 구성하기 위해 configs.imageregistry/cluster 리소스에서 spec.storage.pvc를 변경합니다.

    참고

    공유 스토리지를 사용할 때 보안 설정을 확인하여 외부에서의 액세스를 방지합니다.

  2. 레지스트리 pod가 없는지 확인합니다.

    $ oc get pod -n openshift-image-registry -l docker-registry=default

    출력 예

    No resourses found in openshift-image-registry namespace

    참고

    출력에 레지스트리 Pod가 있는 경우 이 절차를 계속할 필요가 없습니다.

  3. 레지스트리 구성을 확인합니다.

    $ oc edit configs.imageregistry.operator.openshift.io

    출력 예

    storage:
      pvc:
        claim:

    image-registry-storage PVC의 자동 생성을 허용하도록 claim 필드를 비워 둡니다.

  4. clusteroperator 상태를 확인합니다.

    $ oc get clusteroperator image-registry

    출력 예

    NAME             VERSION                              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.7                                  True        False         False      6h50m

  5. 이미지를 빌드 및 푸시할 수 있도록 레지스트리의 관리가 설정되어 있는지 확인하십시오.

    • 다음을 실행합니다.

      $ oc edit configs.imageregistry/cluster

      다음으로 라인을 변경하십시오.

      managementState: Removed

      다음으로 변경

      managementState: Managed
클러스터에서 직접 레지스트리에 액세스

클러스터 내부에서 레지스트리에 액세스할 수 있습니다.

절차

내부 경로를 사용하여 클러스터에서 레지스트리에 액세스합니다.

  1. 노드의 이름을 가져와서 노드에 액세스합니다.

    $ oc get nodes
    $ oc debug nodes/<node_name>
  2. 노드의 ocpodman 과 같은 툴에 대한 액세스를 활성화하려면 루트 디렉터리를 /host 로 변경하십시오.

    sh-4.2# chroot /host
  3. 액세스 토큰을 사용하여 컨테이너 이미지 레지스트리에 로그인합니다.

    sh-4.2# oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443
    sh-4.2# podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000

    다음과 같은 로그인 확인 메시지가 표시되어야합니다.

    Login Succeeded!
    참고

    사용자 이름에 모든 값을 지정할 수 있으므로 토큰에는 필요한 모든 정보가 포함됩니다. 콜론이 포함된 사용자 이름을 지정하면 로그인에 실패합니다.

    이미지 레지스트리 Operator가 경로를 생성하므로 default-route-openshift-image-registry.<cluster_name>과 유사합니다.

  4. 레지스트리에 대해 podman pullpodman push 작업을 수행합니다.

    중요

    모든 이미지를 가져올 수 있지만 system:registry 역할이 추가된 경우 프로젝트의 레지스트리에만 이미지를 푸시할 수 있습니다.

    다음 예에서는 다음을 사용합니다.

    구성 요소

    <registry_ip>

    172.30.124.220

    <port>

    5000

    <project>

    openshift

    <image>

    image

    <tag>

    생략됨 (기본값 latest)

    1. 모든 이미지를 가져옵니다.

      sh-4.2# podman pull name.io/image
    2. <registry_ip>:<port>/<project>/<image> 형식으로 새 이미지에 태그를 지정합니다. OpenShift Container Platform이 레지스트리에 이미지를 올바르게 배치하고 나중에 액세스할 수 있도록 이 풀 사양에 프로젝트 이름이 표시되어야합니다.

      sh-4.2# podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
      참고

      사용자가 이미지를 작성하거나 푸시할 수 있도록 지정된 프로젝트에 대한 system:image-builder 역할이 있어야합니다. 그렇지 않으면 다음 단계의 podman push가 실패합니다. 테스트를 위해 이미지를 푸시할 새 프로젝트를 만들 수 있습니다.

    3. 새로 태그가 지정된 이미지를 레지스트리로 푸시합니다.

      sh-4.2# podman push image-registry.openshift-image-registry.svc:5000/openshift/image
수동으로 보안 레지스트리 공개

클러스터 내에서 OpenShift Container Platform 레지스트리에 로그인하지 않고 외부에서 레지스트리에 액세스할 수 있도록 레지스트리의 라우팅을 공개합니다. 이를 통해 라우팅 주소를 사용하여 클러스터 외부에서 레지스트리에 로그인하고 라우팅 호스트를 사용하여 기존 프로젝트에 이미지를 태그 지정하거나 푸시할 수 있습니다.

사전 요구 사항

  • 다음 사전 요구 사항이 자동으로 수행됩니다.

    • 레지스트리 Operator를 배포합니다.
    • Ingress Operator를 배포합니다.

절차

configs.imageregistry.operator.openshift.io 리소스에서 DefaultRoute 매개 변수를 사용하거나 사용자 지정 라우팅을 사용하여 라우팅을 공개할 수 있습니다.

DefaultRoute를 사용하여 레지스트리를 공개하려면 다음을 수행합니다.

  1. DefaultRouteTrue로 설정합니다.

    $ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
  2. podman으로 로그인합니다.

    $ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
    $ podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOST 1
    1
    --tls-verify=false는 클러스터의 기본 라우팅 인증서를 신뢰할 수없는 경우 필요합니다. Ingress Operator를 사용하여 신뢰할 수있는 사용자 지정 인증서를 기본 인증서로 설정할 수 있습니다.

사용자 지정 라우팅을 사용하여 레지스트리를 공개하려면 다음을 수행합니다.

  1. 라우팅의 TLS 키로 보안 시크릿을 만듭니다.

    $ oc create secret tls public-route-tls \
        -n openshift-image-registry \
        --cert=</path/to/tls.crt> \
        --key=</path/to/tls.key>

    이 단계는 선택 사항입니다. 보안 시크릿을 생성하지 않으면 라우팅은 Ingress Operator의 기본 TLS 구성을 사용합니다.

  2. 레지스트리 Operator에서 다음을 수행합니다.

    spec:
      routes:
        - name: public-routes
          hostname: myregistry.mycorp.organization
          secretName: public-route-tls
    ...
    참고

    레지스트리 라우팅에 대한 사용자 지정 TLS 구성을 제공하는 경우에만 secretName을 설정합니다.

8.15.5.2.2. 외부 이미지 레지스트리 구성

VDDK 이미지에 외부 이미지 레지스트리를 사용하는 경우 외부 이미지 레지스트리의 인증 기관을 OpenShift Container Platform 클러스터에 추가할 수 있습니다.

필요한 경우 Docker 자격 증명에서 풀 시크릿을 생성하여 서비스 계정에 추가할 수 있습니다.

클러스터에 인증 기관 추가

다음 절차에 따라 이미지를 내보내고 가져올 때 사용할 클러스터에 인증서 CA(인증 기관)를 추가할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야합니다.
  • 레지스트리의 공용 인증서(일반적으로 /etc/docker/certs.d/ 디렉터리에 있는 hostname/ca.crt 파일)에 액세스할 수 있어야 합니다.

절차

  1. 자체 서명 인증서를 사용하는 레지스트리의 경우 신뢰할 수 있는 인증서가 있는 openshift-config 네임스페이스에 ConfigMap을 생성합니다. 각 CA 파일에 대해 ConfigMap의 키가 hostname[..port] 형식의 레지스트리 호스트 이름인지 확인하십시오.

    $ oc create configmap registry-cas -n openshift-config \
    --from-file=myregistry.corp.com..5000=/etc/docker/certs.d/myregistry.corp.com:5000/ca.crt \
    --from-file=otherregistry.com=/etc/docker/certs.d/otherregistry.com/ca.crt
  2. 클러스터 이미지 구성을 업데이트합니다.

    $ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-cas"}}}' --type=merge
Pod에서 다른 보안 레지스트리의 이미지를 참조하도록 허용

Docker 클라이언트의 .dockercfg $HOME/.docker/config.json 파일은 이전에 보안 또는 비보안 레지스트리에 로그인한 적이 있는 경우 인증 정보를 저장하는 Docker 인증 정보 파일입니다.

OpenShift Container Platform의 내부 레지스트리가 아닌 다른 위치에서 보안 컨테이너 이미지를 가져오려면 Docker 인증 정보에서 풀 시크릿을 생성하여 서비스 계정에 추가해야 합니다.

절차

  • 보안 레지스트리의 .dockercfg 파일이 이미 있는 경우 다음을 실행하여 해당 파일에서 시크릿을 생성할 수 있습니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockercfg=<path/to/.dockercfg> \
        --type=kubernetes.io/dockercfg
  • $HOME/.docker/config.json 파일이 있는 경우 다음을 실행합니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
        --type=kubernetes.io/dockerconfigjson
  • 보안 레지스트리의 Docker 인증 정보 파일이 아직 없는 경우 다음을 실행하여 시크릿을 생성할 수 있습니다.

    $ oc create secret docker-registry <pull_secret_name> \
        --docker-server=<registry_server> \
        --docker-username=<user_name> \
        --docker-password=<password> \
        --docker-email=<email>
  • Pod의 이미지 가져오기에 시크릿을 사용하려면 서비스 계정에 이 시크릿을 추가해야 합니다. 이 예제의 서비스 계정 이름은 Pod에서 사용하는 서비스 계정 이름과 일치해야 합니다. default는 기본 서비스 계정입니다.

    $ oc secrets link default <pull_secret_name> --for=pull
8.15.5.2.3. VDDK 이미지 생성 및 사용

VMware VDDK(가상 디스크 개발 키트)를 다운로드하고 VDDK 이미지를 빌드한 다음 VDDK 이미지를 이미지 레지스트리에 푸시할 수 있습니다. 그런 다음 HyperConverged CR(사용자 정의 리소스)의 spec.vddkInitImage 필드에 VDDK 이미지를 추가합니다.

사전 요구 사항

  • OpenShift Container Platform 내부 이미지 레지스트리 또는 보안 외부 레지스트리에 액세스할 수 있어야 합니다.

절차

  1. 임시 디렉터리를 만들고 해당 디렉터리로 이동합니다.

    $ mkdir /tmp/<dir_name> && cd /tmp/<dir_name>
  2. 브라우저에서 VMware 코드로 이동하여 SDK를 클릭합니다.
  3. Compute Virtualization에서 VDDK(가상 디스크 개발 키트)를 클릭합니다.
  4. 사용 중인 VMware vSphere 버전에 해당하는 VDDK 버전(예: vSphere 7.0의 경우 VDDK 7.0)을 선택하고, 다운로드를 클릭한 다음 임시 디렉터리에 VDDK 아카이브를 저장합니다.
  5. VDDK 아카이브를 추출합니다.

    $ tar -xzf VMware-vix-disklib-<version>.x86_64.tar.gz
  6. Dockerfile을 생성합니다.

    $ cat > Dockerfile <<EOF
    FROM busybox:latest
    COPY vmware-vix-disklib-distrib /vmware-vix-disklib-distrib
    RUN mkdir -p /opt
    ENTRYPOINT ["cp", "-r", "/vmware-vix-disklib-distrib", "/opt"]
    EOF
  7. 이미지를 빌드합니다.

    $ podman build . -t <registry_route_or_server_path>/vddk:<tag> 1
    1
    이미지 레지스트리를 지정합니다.
    • 내부 OpenShift Container Platform 레지스트리의 경우 내부 레지스트리 경로를 사용합니다(예: image-registry.openshift-image-registry.svc:5000/openshift/vddk:<tag>).
    • 외부 레지스트리의 경우 서버 이름, 경로, 태그를 지정합니다(예: server.example.com:5000/vddk:<tag>).
  8. 이미지를 로컬 레지스트리로 푸시합니다.

    $ podman push <registry_route_or_server_path>/vddk:<tag>
  9. OpenShift Virtualization 환경에서 이미지에 액세스할 수 있는지 확인합니다.
  10. openshift-cnv 프로젝트에서 HyperConverged CR을 편집합니다.

    $ oc edit hco -n openshift-cnv kubevirt-hyperconverged
  11. spec 스탠자에 thevddkInitImage 매개변수를 추가합니다.

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      vddkInitImage: <registry_route_or_server_path>/vddk:<tag>

8.15.5.3. VM 가져오기 마법사를 사용하여 가상 머신 가져오기

VM 가져오기 마법사를 사용하여 단일 가상 머신을 가져올 수 있습니다.

또한 VM 템플릿을 가져올 수도 있습니다. VM 템플릿을 가져오는 경우 OpenShift Virtualization에서 해당 템플릿을 기반으로 가상 머신을 생성합니다.

사전 요구 사항

  • 관리자 권한이 있어야 합니다.
  • VMware VDDK(가상 디스크 개발 키트) 이미지는 OpenShift Virtualization 환경에서 액세스할 수 있는 이미지 레지스트리에 있어야 합니다.
  • VDDK 이미지는 HyperConverged CR(사용자 정의 리소스)의 spec.vddkInitImage 필드에 추가해야 합니다.
  • VM의 전원을 꺼야 합니다.
  • 가상 디스크가 IDE 또는 SCSI 컨트롤러에 연결되어 있어야 합니다. 가상 디스크가 SATA 컨트롤러에 연결되어 있는 경우 IDE 컨트롤러로 변경한 다음 VM을 마이그레이션할 수 있습니다.
  • OpenShift Virtualization 로컬 및 공유 영구 스토리지 클래스에서 VM 가져오기를 지원해야 합니다.
  • OpenShift Virtualization 스토리지는 가상 디스크를 수용할 수 있을 만큼 충분히 커야 합니다.

    주의

    Ceph RBD 블록 모드 볼륨을 사용하는 경우 가상 디스크를 수용할 수 있도록 스토리지가 충분히 커야 합니다. 디스크가 사용 가능한 스토리지에 비해 너무 크면 가져오기 프로세스가 실패하고 가상 디스크를 복사하는 데 사용되는 PV가 해제되지 않습니다. 오브젝트 삭제를 지원할 리소스가 충분하지 않기 때문에 다른 가상 머신을 가져오거나 스토리지를 정리할 수 없습니다. 이 상황을 해결하려면 스토리지 백엔드에 오브젝트 스토리지 장치를 추가해야 합니다.

  • OpenShift Virtualization 송신 네트워크 정책에서 다음 트래픽을 허용해야 합니다.

    대상프로토콜포트

    VMware ESXi 호스트

    TCP

    443

    VMware ESXi 호스트

    TCP

    902

    VMware vCenter

    TCP

    5840

절차

  1. 웹 콘솔에서 워크로드 가상 머신을 클릭합니다.
  2. 가상 머신 생성을 클릭하고 마법사로 가져오기를 선택합니다.
  3. 공급자 목록에서 VMware를 선택합니다.
  4. 새 인스턴스에 연결 또는 저장된 vCenter 인스턴스를 선택합니다.

    • 새 인스턴스에 연결을 선택한 경우 vCenter 호스트 이름, 사용자 이름, 암호를 입력합니다.
    • 저장된 vCenter 인스턴스를 선택하면 저장된 자격 증명을 사용하여 마법사가 vCenter 인스턴스에 연결됩니다.
  5. 확인 및 저장을 클릭하고 연결이 완료될 때까지 기다립니다.

    참고

    연결 세부 정보는 시크릿에 저장됩니다. 잘못된 호스트 이름, 사용자 이름 또는 암호를 사용하여 공급자를 추가하는 경우 워크로드 시크릿을 클릭하고 공급자 시크릿을 삭제합니다.

  6. 가상 머신 또는 템플릿을 선택합니다.
  7. 다음을 클릭합니다.
  8. 검토 화면에서 설정을 검토합니다.
  9. 편집을 클릭하여 다음 설정을 업데이트합니다.

    • 일반:

      • 설명
      • 운영 체제
      • 플레이버
      • 메모리
      • CPU
      • 워크로드 프로필
    • 네트워킹:

      • 이름
      • 모델
      • 네트워크
      • 유형
      • MAC 주소
    • 스토리지: VM 디스크의 옵션 메뉴 kebab 를 클릭하고 편집 을 선택하여 다음 필드를 업데이트합니다.

      • 이름
      • 출처: 예를 들면 디스크 가져오기 입니다.
      • 크기
      • 인터페이스
      • 스토리지 클래스: NFS 또는 ocs-storagecluster-ceph-rbd(ceph-rbd) 를 선택합니다.

        ocs-storagecluster-ceph-rbd를 선택하는 경우 디스크의 볼륨 모드블록으로 설정해야 합니다.

        기타 스토리지 클래스도 작동할 수 있지만 공식적으로 지원되지 않습니다.

      • 고급 볼륨 모드: Block 을 선택합니다.
      • 고급 액세스 모드
    • 고급 Cloud-init:

      • 양식: Hostname(호스트 이름)Authenticated SSH Keys(인증된 SSH 키 )를 입력합니다.
      • 사용자 정의 스크립트: 텍스트 필드에 cloud-init 스크립트를 입력합니다.
    • 고급 가상 하드웨어: 가져온 가상 머신에 가상 CD-ROM을 연결할 수 있습니다.
  10. 가져오기 설정을 편집한 경우 가져오기 또는 검토 및 가져오기를 클릭합니다.

    가상 머신 생성 완료 메시지와 가상 머신용으로 생성된 리소스 목록이 표시됩니다. 가상 머신은 워크로드 가상 머신에 나타납니다.

가상 머신 마법사 필드
이름매개변수설명

이름

 

이름에는 소문자(a-z), 숫자(0-9), 하이픈(-)이 최대 253자까지 포함될 수 있습니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 이름에는 대문자, 공백, 마침표(.) 또는 특수 문자가 포함되어서는 안 됩니다.

설명

 

선택적 설명 필드입니다.

운영 체제

 

템플릿에서 가상 머신에 대해 선택된 운영 체제입니다. 템플릿에서 가상 머신을 생성할 때 이 필드를 편집할 수 없습니다.

부팅 소스

URL을 통해 가져오기(PVC 생성)

HTTP 또는 HTTPS 끝점에서 사용할 수 있는 이미지에서 콘텐츠를 가져옵니다. 예제: 운영 체제 이미지를 사용하여 웹 페이지에서 URL 링크 가져오기.

기존 PVC 복제 (PVC 생성)

클러스터에서 사용 가능한 기존 영구 볼륨 클레임을 선택하고 복제합니다.

레지스트리를 통해 가져오기(PVC 생성)

클러스터에서 액세스할 수 있는 레지스트리의 부팅 가능한 운영 체제 컨테이너에서 가상 머신을 프로비저닝합니다. 예를 들면 kubevirt/cirros-registry-disk-demo입니다.

PXE (네트워크 부팅-네트워크 인터페이스 추가)

네트워크의 서버에서 운영 체제를 부팅합니다. PXE 부팅 가능 네트워크 연결 정의가 필요합니다.

영구 볼륨 클레임 프로젝트

 

PVC 복제에 사용할 프로젝트 이름입니다.

영구 볼륨 클레임 이름

 

기존 PVC를 복제하는 경우 이 가상 머신 템플릿에 적용할 PVC 이름입니다.

CD-ROM 부팅 소스로 마운트

 

운영 체제를 설치하기 위한 추가 디스크가 CD-ROM에 필요합니다. 확인란을 선택하여 디스크를 추가하고 나중에 사용자 지정합니다.

플레이버

매우 작음, 작음, 중간, 큼, 사용자 정의

해당 템플릿과 연결된 운영 체제에 따라 가상 시스템에 할당된 사전 정의된 값을 사용하여 가상 머신 템플릿의 CPU 및 메모리 양을 미리 설정합니다.

기본 템플릿을 선택하는 경우 사용자 지정 값을 사용하여 템플릿의 cpusmemsize 값을 재정의하여 사용자 지정 템플릿을 생성할 수 있습니다. 또는 워크로드 가상화 페이지의 세부 정보 탭에서 cpusmemsize 값을 수정하여 사용자 지정 템플릿을 생성할 수 있습니다.

워크로드 유형

참고

잘못된 워크로드 유형을 선택하는 경우 성능 또는 리소스 사용률 문제(예: 느린 UI)가 있을 수 있습니다.

데스크탑

데스크탑에서 사용할 가상 머신 구성입니다. 소규모에서 사용하기에 매우 적합합니다. 웹 콘솔과 함께 사용하는 것이 좋습니다.

서버

성능을 밸런싱하고 다양한 서버 워크로드와 호환됩니다.

고성능

고성능 워크로드에 최적화된 가상 머신 구성입니다.

생성 후 가상 머신 시작.

 

이 확인란은 기본적으로 선택되며 가상 머신이 생성 후 실행됩니다. 가상 머신이 생성될 때 시작하지 않도록 하려면 확인란의 선택을 해제합니다.

Cloud-init 필드
이름설명

호스트 이름

가상 머신의 특정 호스트 이름을 설정합니다.

승인된 SSH 키

가상 머신의 ~/.ssh/authorized_keys에 복사되는 사용자의 공개 키입니다.

사용자 정의 스크립트

기타 옵션을 사용자 정의 cloud-init 스크립트를 붙여넣는 필드로 교체합니다.

네트워킹 필드
이름설명

이름

네트워크 인터페이스 컨트롤러의 이름입니다.

모델

네트워크 인터페이스 컨트롤러의 모델을 나타냅니다. 지원되는 값은 e1000evirtio입니다.

네트워크

사용 가능한 네트워크 연결 정의 목록입니다.

유형

사용 가능한 바인딩 방법 목록입니다. 기본 Pod 네트워크의 경우 권장되는 유일한 바인딩 방법은 masquerade입니다. 보조 네트워크의 경우 bridge 바인딩 방법을 사용하십시오. 기본이 아닌 네트워크에서는 masquerade 방법이 지원되지 않습니다. SR-IOV 네트워크 장치를 구성하고 네임스페이스에서 해당 네트워크를 정의한 경우 SR-IOV를 선택합니다.

MAC 주소

네트워크 인터페이스 컨트롤러의 MAC 주소입니다. MAC 주소를 지정하지 않으면 주소가 자동으로 할당됩니다.

스토리지 필드
이름선택설명

소스

비어있음 (PVC 생성)

빈 디스크를 만듭니다.

URL을 통해 가져오기(PVC 생성)

URL(HTTP 또는 HTTPS 끝점)을 통해 콘텐츠를 가져옵니다.

기존 PVC 사용

클러스터에서 이미 사용 가능한 PVC를 사용합니다.

기존 PVC 복제 (PVC 생성)

클러스터에서 사용 가능한 기존 PVC를 선택하고 복제합니다.

레지스트리를 통해 가져오기(PVC 생성)

컨테이너 레지스트리를 통해 콘텐츠를 가져옵니다.

컨테이너 (임시)

클러스터에서 액세스할 수 있는 레지스트리에 있는 컨테이너에서 콘텐츠를 업로드합니다. 컨테이너 디스크는 CD-ROM 또는 임시 가상 머신과 같은 읽기 전용 파일 시스템에만 사용해야 합니다.

이름

 

디스크 이름입니다. 이름에는 소문자(a-z), 숫자(0-9), 하이픈(-), 마침표(.)가 최대 253자까지 포함될 수 있습니다. 첫 문자와 마지막 문자는 영숫자여야 합니다. 이름에는 대문자, 공백 또는 특수 문자가 포함되어서는 안 됩니다.

크기

 

디스크 크기(GiB)입니다.

유형

 

디스크의 유형입니다. 예제: 디스크 또는 CD-ROM

인터페이스

 

디스크 장치의 유형입니다. 지원되는 인터페이스는 virtIO, SATA, SCSI입니다.

스토리지 클래스

 

디스크를 만드는 데 사용되는 스토리지 클래스입니다.

고급 볼륨 모드

 

영구 볼륨에서 포맷된 파일 시스템을 사용하는지 또는 원시 블록 상태를 사용하는지를 정의합니다. 기본값은 Filesystem입니다.

고급 액세스 모드

 

영구 볼륨의 액세스 모드입니다. 지원되는 액세스 모드는 단일 사용자(RWO), 공유 액세스(RWX), 읽기 전용(ROX)입니다.

고급 스토리지 설정

다음 고급 스토리지 설정은 비어 있음, URL을 통해 가져오기, 기존 PVC 복제 디스크에 사용할 수 있습니다. 해당 매개변수는 선택 사항입니다. 이러한 매개변수를 지정하지 않으면 kubevirt-storage-class-defaults 구성 맵의 기본값이 사용됩니다.

이름매개변수설명

볼륨 모드

파일 시스템

파일 시스템 기반 볼륨에 가상 디스크를 저장합니다.

블록

가상 디스크를 블록 볼륨에 직접 저장합니다. 기본 스토리지에서 지원하는 경우에만 Block을 사용하십시오.

액세스 모드

단일 사용자(RWO)

디스크는 단일 노드에서 읽기/쓰기로 마운트할 수 있습니다.

공유 액세스(RWX)

디스크는 여러 노드에서 읽기/쓰기로 마운트할 수 있습니다.

참고

이는 가상 머신의 노드 간 실시간 마이그레이션 등 일부 기능에 필요합니다.

읽기 전용(ROX)

디스크는 많은 노드에서 읽기 전용으로 마운트할 수 있습니다.

8.15.5.3.1. 가져온 가상 머신의 NIC 이름 업데이트

OpenShift Virtualization 이름 지정 규칙을 준수하도록 VMware에서 가져온 가상 머신의 NIC 이름을 업데이트해야 합니다.

절차

  1. 가상 머신에 로그인합니다.
  2. /etc/sysconfig/network-scripts 디렉터리로 이동합니다.
  3. 네트워크 구성 파일의 이름을 변경합니다.

    $ mv vmnic0 ifcfg-eth0 1
    1
    첫 번째 네트워크 구성 파일의 이름은 ifcfg-eth0입니다. 추가 네트워크 구성 파일은 순서대로 번호가 지정됩니다(예: ifcfg-eth1, ifcfg-eth2).
  4. 네트워크 구성 파일에서 NAMEDEVICE 매개변수를 업데이트합니다.

    NAME=eth0
    DEVICE=eth0
  5. 네트워크를 재시작합니다.

    $ systemctl restart network

8.15.5.4. 가상 머신 가져오기 문제 해결

8.15.5.4.1. 로그

V2V 변환 Pod 로그에서 오류가 있는지 확인할 수 있습니다.

절차

  1. 다음 명령을 실행하여 V2V 변환 Pod 이름을 확인합니다.

    $ oc get pods -n <namespace> | grep v2v 1
    1
    가져온 가상 머신의 네임스페이스를 지정합니다.

    출력 예

    kubevirt-v2v-conversion-f66f7d-zqkz7            1/1     Running     0          4h49m

  2. 다음 명령을 실행하여 V2V 변환 Pod 로그를 확인합니다.

    $ oc logs <kubevirt-v2v-conversion-f66f7d-zqkz7> -f -n <namespace> 1
    1
    VM 변환 Pod 이름과 네임스페이스를 지정합니다.
8.15.5.4.2. 오류 메시지

다음과 같은 오류 메시지가 나타날 수 있습니다.

  • VMware VM을 가져오기 전에 종료하지 않으면 OpenShift Container Platform 콘솔에서 가져온 가상 머신에 오류 메시지 Readiness probe failed가 표시되고, V2V Conversion Pod 로그에 다음 오류 메시지가 표시됩니다.

    INFO - have error: ('virt-v2v error: internal error: invalid argument: libvirt domain ‘v2v_migration_vm_1’ is running or paused. It must be shut down in order to perform virt-v2v conversion',)"
  • 관리자가 아닌 사용자가 VM을 가져오려고 하면 OpenShift Container Platform 콘솔에 다음 오류 메시지가 표시됩니다.

    Could not load config map vmware-to-kubevirt-os in kube-public namespace
    Restricted Access: configmaps "vmware-to-kubevirt-os" is forbidden: User cannot get resource "configmaps" in API group "" in the namespace "kube-public"

    VM은 관리자만 가져올 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.