5장. 명령줄에서 가상 머신 마이그레이션


명령줄에서 가상 머신을 OpenShift Virtualization으로 마이그레이션할 수 있습니다.

중요

5.1. 가상 머신 마이그레이션

MTV CR(사용자 정의 리소스)을 생성하여 CLI(명령줄)에서 VM(가상 머신)을 마이그레이션합니다.

중요

클러스터 범위 CR의 이름을 지정해야 합니다.

네임스페이스 범위 CR에 이름과 네임스페이스를 모두 지정해야 합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인해야 합니다.
  • VMware만 해당: 모든 클러스터에서 액세스할 수 있는 보안 레지스트리에 VMware VDDK(가상 디스크 개발 키트) 이미지가 있어야 합니다.

절차

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

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: openshift-mtv
    type: Opaque
    stringData:
      user: <user> 
    1
    
      password: <password> 
    2
    
      cacert: | 
    3
    
        <engine_ca_certificate>
      thumbprint: <vcenter_fingerprint> 
    4
    
    EOF
    1
    vCenter 사용자 또는 RHV Manager 사용자를 지정합니다.
    2
    사용자 암호를 지정합니다.
    3
    RHV만 해당: Manager의 CA 인증서를 지정합니다. https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA 에서 검색할 수 있습니다.
    4
    VMware만 해당: vCenter SHA-1 지문을 지정합니다.
  2. 소스 공급자에 대한 공급자 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <provider>
      namespace: openshift-mtv
    spec:
      type: <provider_type> 
    1
    
      url: <api_end_point> 
    2
    
      settings:
        vddkInitImage: <registry_route_or_server_path>/vddk:<tag> 
    3
    
      secret:
        name: <secret> 
    4
    
        namespace: openshift-mtv
    EOF
    1
    허용되는 값은 ovirtvsphere 입니다.
    2
    API 엔드포인트 URL을 지정합니다(예: vSphere의 경우 https://<vCenter_host>/sdk 또는 RHV의 경우 https://<engine_host>/ovirt-engine/api/ ).
    3
    VMware만 해당: 생성한 VDDK 이미지를 지정합니다.
    4
    공급자 Secret CR의 이름을 지정합니다.
  3. VMware만 해당: 호스트 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Host
    metadata:
      name: <vmware_host>
      namespace: openshift-mtv
    spec:
      provider:
        namespace: openshift-mtv
        name: <source_provider> 
    1
    
      id: <source_host_mor> 
    2
    
      ipAddress: <source_network_ip> 
    3
    
    EOF
    1
    VMware 공급자 CR의 이름을 지정합니다.
    2
    VMware 호스트의 관리형 오브젝트 참조(MOR)를 지정합니다.
    3
    VMware 마이그레이션 네트워크의 IP 주소를 지정합니다.
  4. 네트워크 맵 매니페스트를 생성하여 소스 및 대상 네트워크를 매핑합니다.

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: openshift-mtv
    spec:
      map:
        - destination:
            name: <pod>
            namespace: openshift-mtv
            type: pod 
    1
    
          source: 
    2
    
            id: <source_network_id> 
    3
    
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    4
    
            namespace: <network_attachment_definition_namespace> 
    5
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
    EOF
    1
    허용되는 값은 Podmultus 입니다.
    2
    id 또는 name 매개변수를 사용하여 소스 네트워크를 지정할 수 있습니다.
    3
    VMware 네트워크 MOR 또는 RHV 네트워크 UUID를 지정합니다.
    4
    각 추가 OpenShift Virtualization 네트워크에 대한 네트워크 연결 정의를 지정합니다.
    5
    OpenShift Virtualization 네트워크 연결 정의의 네임스페이스를 지정합니다.
  5. 소스 및 대상 스토리지를 매핑할 StorageMap 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: openshift-mtv
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            id: <source_datastore> 
    2
    
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode>
          source:
            id: <source_datastore>
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
    EOF
    1
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다.
    2
    VMware 데이터 스토리지 MOR 또는 RHV 스토리지 도메인 UUID를 지정합니다(예: f2737930-b567-451a-9ceb-2887f6207009 ).
  6. 선택 사항: 계획 CR에 지정된 단계에서 VM에서 사용자 정의 코드를 실행하도록 후크 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: openshift-mtv
    spec:
      image: quay.io/konveyor/hook-runner 
    1
    
      playbook: | 
    2
    
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF
    1
    기본 hook-runner 이미지를 사용하거나 사용자 정의 이미지를 지정할 수 있습니다. 사용자 정의 이미지를 지정하는 경우 플레이북을 지정할 필요가 없습니다.
    2
    선택사항: base64로 인코딩된 Ansible 플레이북입니다. Playbook을 지정하는 경우 이미지는 hook-runner 여야 합니다.
  7. 마이그레이션에 대한 계획 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: openshift-mtv
    spec:
      warm: true 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
      map:
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: openshift-mtv
        storage:
          name: <storage_map> 
    5
    
          namespace: openshift-mtv
      targetNamespace: openshift-mtv
      vms: 
    6
    
        - id: <source_vm> 
    7
    
        - name: <source_vm>
          hooks: 
    8
    
            - hook:
                namespace: openshift-mtv
                name: <hook> 
    9
    
              step: <step> 
    10
    
    EOF
    1
    Plan CR의 이름을 지정합니다.
    2
    마이그레이션이 웜인지 콜드인지 지정합니다. 마이그레이션 매니페스트에서 cutover 매개변수 값을 지정하지 않고 웜 마이그레이션 을 지정하면 사전 복사 단계만 실행됩니다.
    3
    여러 네트워크 매핑을 추가할 수 있습니다.
    4
    NetworkMap CR의 이름을 지정합니다.
    5
    StorageMap CR의 이름을 지정합니다.
    6
    id 또는 name 매개변수를 사용하여 소스 VM을 지정할 수 있습니다.
    7
    VMware VM MOR 또는 RHV VM UUID를 지정합니다.
    8
    선택 사항: VM에 후크를 최대 2개까지 지정할 수 있습니다. 각 후크는 별도의 마이그레이션 단계에서 실행되어야 합니다.
    9
    후크 CR의 이름을 지정합니다.
    10
    허용되는 값은 마이그레이션 계획이 시작되기 전에 PreHook 입니다. 마이그레이션이 완료된 후 PostHook 입니다.
  8. 계획 CR을 실행할 마이그레이션 매니페스트를 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <migration> 
    1
    
      namespace: openshift-mtv
    spec:
      plan:
        name: <plan> 
    2
    
        namespace: openshift-mtv
      cutover: <cutover_time> 
    3
    
    EOF
    1
    Migration CR의 이름을 지정합니다.
    2
    실행 중인 Plan CR의 이름을 지정합니다. Migration CR은 마이그레이션된 각 VM에 대한 VirtualMachine CR을 생성합니다.
    3
    선택 사항: UTC 시간 오프셋을 사용하여 ISO 8601 형식에 따라 구분 시간을 지정합니다(예: 2021-04-04T01:23:45.678+09:00 ).

    여러 마이그레이션 CR을 단일 계획 CR과 연결할 수 있습니다. 마이그레이션이 완료되지 않으면 Plan CR을 변경하지 않고 새 Migration CR을 생성하여 나머지 VM을 마이그레이션할 수 있습니다.

  9. Migration CR을 검색하여 마이그레이션의 진행 상황을 모니터링합니다.

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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.