5.3. 명령줄에서 OVA(Open Virtual VolumeSnapshot) 마이그레이션 실행


CLI(명령줄 인터페이스)를 사용하여 VMware vSphere에서 소스 공급자로 생성한 OVA(Open Virtual Appliance) 파일에서 마이그레이션할 수 있습니다.

사전 요구 사항

  • UDN(사용자 정의 네트워크)을 사용하는 경우 OpenShift Virtualization에 정의된 네임스페이스 이름을 기록해 둡니다.

프로세스

  1. 소스 공급자 인증 정보에 대한 시크릿 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: ova
        createdForResourceType: providers
    type: Opaque
    stringData:
      url: <nfs_server:/nfs_path> 
    2
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    ownerReferences 섹션은 선택 사항입니다.
    2
    여기서: nfs_server 는 공유가 생성된 서버의 IP 또는 호스트 이름이고 nfs_path 는 OVA 파일이 저장된 서버의 경로입니다.
  1. 소스 공급자에 대한 공급자 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: ova
      url:  <nfs_server:/nfs_path> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    여기서: nfs_server 는 공유가 생성된 서버의 IP 또는 호스트 이름이고 nfs_path 는 OVA 파일이 저장된 서버의 경로입니다.
    2
    공급자 Secret CR의 이름을 지정합니다.
  1. NetworkMap 매니페스트를 생성하여 소스 및 대상 네트워크를 매핑합니다.

    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source:
            id: <source_network_id> 
    2
    
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace> 
    5
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 podmultus 입니다.
    2
    OVA 네트워크 UUID(Universal Unique ID)를 지정합니다.
    3
    각 추가 OpenShift Virtualization 네트워크에 대한 네트워크 연결 정의를 지정합니다.
    4
    typemultus 인 경우에만 필요합니다. OpenShift Virtualization 네트워크 연결 정의의 네임스페이스를 지정합니다.
    5
    UDN(사용자 정의 네트워크)을 사용하는 경우 해당 네임스페이스는 OpenShift Virtualization에 정의됩니다.
  1. 소스 및 대상 스토리지를 매핑하는 StorageMap 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            name:  Dummy storage for source provider <provider_name> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다.
    2
    OVA의 경우 StorageMap 은 OVA의 모든 디스크가 연결된 단일 스토리지만 대상의 스토리지 클래스에 매핑할 수 있습니다. 이러한 이유로 UI에서 "Dummy storage for source provider <provider_name>"이라고 합니다. YAML에서 따옴표 없이 위의 문구를 작성하고 <provider_name>을 공급자의 실제 이름으로 바꿉니다.
  2. 선택 사항: Plan CR에 지정된 단계에서 VM에서 사용자 정의 코드를 실행하려면 후크 매니페스트를 생성합니다.

    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/kubev2v/hook-runner
      serviceAccount:<service account> 
    1
    
      playbook: |
        LS0tCi0gbm... 
    2
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    선택사항: Red Hat OpenShift 서비스 계정. serviceAccount 매개변수를 사용하여 클러스터 리소스를 수정합니다.
    2
    base64로 인코딩된 Ansible Playbook. 플레이북을 지정하는 경우 이미지에 ansible-runner 를 포함해야 합니다.
    참고

    기본 hook-runner 이미지를 사용하거나 사용자 정의 이미지를 지정할 수 있습니다. 사용자 지정 이미지를 지정하는 경우 플레이북을 지정할 필요가 없습니다.

  1. 다음 명령을 입력하여 MTV 마이그레이션에 사용되는 전송 네트워크의 네트워크 연결 정의(NAD)를 생성합니다.

    이 정의를 사용하여 DHCP(Dynamic Host Configuration Protocol) 또는 정적에서 인터페이스의 IP 주소를 구성합니다.

    IP 주소를 구성하면 인터페이스가 구성된 게이트웨이에 도달할 수 있습니다.

    $ oc edit NetworkAttachmentDefinitions <name_of_the_NAD_to_edit>
    apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
      name: <name_of_transfer_network>
      namespace: <namespace>
      annotations:
        forklift.konveyor.io/route: <IP_address>
    Copy to Clipboard Toggle word wrap
  2. 마이그레이션을 위한 계획 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
    spec:
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    2
    
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: <namespace>
        storage: 
    5
    
          name: <storage_map> 
    6
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms: 
    7
    
        - id: <source_vm1> 
    8
    
        - name: <source_vm2>
          hooks: 
    9
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    10
    
              step: <step> 
    11
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    Plan CR의 이름을 지정합니다.
    2
    계획당 하나의 네트워크 맵과 하나의 스토리지 맵만 지정합니다.
    3
    마이그레이션할 VM이 네트워크에 할당되지 않은 경우에도 네트워크 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    4
    NetworkMap CR의 이름을 지정합니다.
    5
    마이그레이션할 VM이 디스크 이미지로 할당되지 않은 경우에도 스토리지 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    6
    StorageMap CR의 이름을 지정합니다.
    7
    id 또는 name 매개변수를 사용하여 소스 VM을 지정할 수 있습니다. UDN을 사용하는 경우 공급자의 IP 주소가 UDN 서브넷 외부에 있는지 확인합니다. IP 주소가 UDN 서브넷 내에 있으면 마이그레이션이 실패합니다.
    8
    OVA VM UUID를 지정합니다.
    9
    선택 사항: VM에 대해 최대 두 개의 후크를 지정할 수 있습니다. 각 후크는 별도의 마이그레이션 단계에서 실행되어야 합니다.
    10
    Hook CR의 이름을 지정합니다.
    11
    허용되는 값은 마이그레이션 계획이 시작되기 전에 PreHook 이거나 마이그레이션이 완료된 후 postHook 입니다.
  3. Plan CR을 실행할 마이그레이션 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    Copy to Clipboard Toggle word wrap
    참고

    컷오버 시간을 지정하는 경우 UTC 시간 오프셋과 함께 ISO 8601 형식을 사용합니다(예: 2024-04-04T01:23:45.678+09:00 ).

5.3.1. 명령줄 인터페이스에서 마이그레이션 취소

CLI(명령줄 인터페이스)를 사용하여 마이그레이션이 진행되는 동안 전체 마이그레이션 또는 특정 VM(가상 머신) 마이그레이션을 취소할 수 있습니다.

5.3.1.1. 명령줄 인터페이스에서 전체 마이그레이션 취소

CLI(명령줄 인터페이스)를 사용하여 마이그레이션이 진행되는 동안 전체 마이그레이션을 취소할 수 있습니다.

프로세스

  • Migration CR을 삭제합니다.

    $ oc delete migration <migration> -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    Migration CR의 이름을 지정합니다.

5.3.1.2. 명령줄 인터페이스에서 특정 VM 마이그레이션 취소

CLI(명령줄 인터페이스)를 사용하여 마이그레이션이 진행되는 동안 특정 VM(가상 머신) 마이그레이션을 취소할 수 있습니다.

프로세스

  1. 다음 예에 따라 특정 VM을 마이그레이션 매니페스트의 spec.cancel 블록에 추가합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <migration>
      namespace: <namespace>
    ...
    spec:
      cancel:
      - id: vm-102 
    1
    
      - id: vm-203
        name: rhel8-vm
    EOF
    Copy to Clipboard Toggle word wrap
    1
    id 키 또는 name 키를 사용하여 VM을 지정할 수 있습니다.

    id 키의 값은 RHV VM의 관리 오브젝트 참조, VMware VM 또는 VM UUID 입니다.

  2. 다음 예에 따라 Migration CR(사용자 정의 리소스)을 검색하여 나머지 VM의 진행 상황을 모니터링합니다.

    $ oc get migration/<migration> -n <namespace> -o yaml
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat