6.3. 명령줄에서 Red Hat OpenShift Virtualization 마이그레이션 실행


Red Hat OpenShift Virtualization 공급자를 소스 공급자 또는 대상 공급자로 사용할 수 있습니다. CLI(명령줄 인터페이스)를 사용하여 OpenShift Virtualization 소스 공급자에서 마이그레이션할 수 있습니다.

참고

소스 공급자의 Red Hat OpenShift 클러스터 버전은 4.16 이상이어야 합니다.

프로세스

  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: openshift
        createdForResourceType: providers
    type: Opaque
    stringData:
      token: <token> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    ownerReferences 섹션은 선택 사항입니다.
    2
    cluster-admin 권한이 있는 서비스 계정의 토큰을 지정합니다. 토큰과 URL 이 모두 비어 있으면 로컬 OpenShift 클러스터가 사용됩니다.
    3
    사용자 암호를 지정합니다.
    4
    인증서 확인을 건너뛰려면 "true" 를 지정하고 "false" 를 지정하여 인증서를 확인합니다. 지정하지 않는 경우 기본값은 "false" 입니다. 인증서 확인을 건너뛰면 비보안 마이그레이션이 진행되므로 인증서가 필요하지 않습니다. 비보안 마이그레이션은 전송된 데이터가 안전하지 않은 연결을 통해 전송되고 잠재적으로 민감한 데이터가 노출될 수 있음을 의미합니다.
    5
    이 필드를 설정하지 않고 인증서 확인을 건너뛰면 MTV가 시스템 CA 사용을 시도합니다.
    6
    API 서버의 끝점 URL을 지정합니다.
  1. 소스 공급자에 대한 공급자 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: openshift
      url: <api_end_point> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    API 서버의 끝점 URL을 지정합니다.
    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:
            name: <network_name>
            type: pod
        - destination:
            name: <network_attachment_definition> 
    2
    
            namespace: <network_attachment_definition_namespace> 
    3
    
            type: multus
          source:
            name: <network_attachment_definition>
            namespace: <network_attachment_definition_namespace>
            type: multus
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 pod,ignored, multus 입니다.
    2
    네트워크 이름을 지정합니다. 유형이 multus 인 경우 OpenShift Virtualization 네트워크 연결 정의 이름을 사용합니다.
    3
    유형이 multus 인 경우에만 필요합니다. 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: <storage_class>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다.
  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:
        - name: <source_vm>
          namespace: <namespace>
          hooks: 
    7
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    8
    
              step: <step> 
    9
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    Plan CR의 이름을 지정합니다.
    2
    계획당 하나의 네트워크 맵과 하나의 스토리지 맵만 지정합니다.
    3
    마이그레이션할 VM이 네트워크에 할당되지 않은 경우에도 네트워크 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    4
    NetworkMap CR의 이름을 지정합니다.
    5
    마이그레이션할 VM이 디스크 이미지로 할당되지 않은 경우에도 스토리지 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    6
    StorageMap CR의 이름을 지정합니다.
    7
    선택 사항: VM에 대해 최대 두 개의 후크를 지정합니다. 각 후크는 별도의 마이그레이션 단계에서 실행되어야 합니다.
    8
    Hook CR의 이름을 지정합니다.
    9
    허용되는 값은 마이그레이션 계획이 시작되기 전에 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 ).

6.3.1. 명령줄에서 Red Hat OpenShift Virtualization 실시간 마이그레이션 실행

CLI(명령줄 인터페이스)를 사용하여 실시간 마이그레이션을 수행할 수 있습니다. 실시간 마이그레이션 절차는 Plan CR의 type 레이블 추가를 제외하고 OpenShift Virtualization 클러스터 간 다른 마이그레이션 절차와 동일합니다. 실시간 마이그레이션의 경우 type 레이블을 live 로 설정해야 합니다.

사전 요구 사항

실시간 마이그레이션을 위한 사전 요구 사항에 설명된 대로 자세한 내용은 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: openshift
        createdForResourceType: providers
    type: Opaque
    stringData:
      token: <token> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    ownerReferences 섹션은 선택 사항입니다.
    2
    cluster-admin 권한이 있는 서비스 계정의 토큰을 지정합니다. 토큰과 URL 이 모두 비어 있으면 로컬 OpenShift 클러스터가 사용됩니다.
    3
    사용자 암호를 지정합니다.
    4
    인증서 확인을 건너뛰려면 "true" 를 지정하고 "false" 를 지정하여 인증서를 확인합니다. 지정하지 않는 경우 기본값은 "false" 입니다. 인증서 확인을 건너뛰면 비보안 마이그레이션이 진행되므로 인증서가 필요하지 않습니다. 비보안 마이그레이션은 전송된 데이터가 안전하지 않은 연결을 통해 전송되고 잠재적으로 민감한 데이터가 노출될 수 있음을 의미합니다.
    5
    이 필드를 설정하지 않고 인증서 확인을 건너뛰면 MTV가 시스템 CA 사용을 시도합니다.
    6
    API 서버의 끝점 URL을 지정합니다.
  2. 소스 공급자에 대한 공급자 매니페스트를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: openshift
      url: <api_end_point> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    API 서버의 끝점 URL을 지정합니다.
    2
    공급자 Secret CR의 이름을 지정합니다.
  3. 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:
            name: <network_name>
            type: pod
        - destination:
            name: <network_attachment_definition> 
    2
    
            namespace: <network_attachment_definition_namespace> 
    3
    
            type: multus
          source:
            name: <network_attachment_definition>
            namespace: <network_attachment_definition_namespace>
            type: multus
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 pod,ignored, multus 입니다.
    2
    네트워크 이름을 지정합니다. 유형이 multus 인 경우 OpenShift Virtualization 네트워크 연결 정의 이름을 사용합니다.
    3
    유형이 multus 인 경우에만 필요합니다. OpenShift Virtualization 네트워크 연결 정의의 네임스페이스를 지정합니다.
  4. 소스 및 대상 스토리지를 매핑하는 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: <storage_class>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다.
  5. 선택 사항: 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 이미지를 사용하거나 사용자 정의 이미지를 지정할 수 있습니다. 사용자 지정 이미지를 지정하는 경우 플레이북을 지정할 필요가 없습니다.

  6. 마이그레이션을 위한 계획 매니페스트를 생성합니다.

    $ 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>
      type: live 
    7
    
      targetNamespace: <target_namespace>
      vms:
        - name: <source_vm>
          namespace: <namespace>
          hooks: 
    8
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    9
    
              step: <step> 
    10
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    Plan CR의 이름을 지정합니다.
    2
    계획당 하나의 네트워크 맵과 하나의 스토리지 맵만 지정합니다.
    3
    마이그레이션할 VM이 네트워크에 할당되지 않은 경우에도 네트워크 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    4
    NetworkMap CR의 이름을 지정합니다.
    5
    마이그레이션할 VM이 디스크 이미지로 할당되지 않은 경우에도 스토리지 매핑을 지정합니다. 이 경우 매핑이 비어 있을 수 있습니다.
    6
    StorageMap CR의 이름을 지정합니다.
    7
    live 로 설정되어야 합니다.
    8
    선택 사항: VM에 대해 최대 두 개의 후크를 지정합니다. 각 후크는 별도의 마이그레이션 단계에서 실행되어야 합니다.
    9
    Hook CR의 이름을 지정합니다.
    10
    허용되는 값은 마이그레이션 계획이 시작되기 전에 PreHook 이거나 마이그레이션이 완료된 후 postHook 입니다.
  7. 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>
    EOF
    Copy to Clipboard Toggle word wrap
    참고

    컷오버 필드는 실시간 마이그레이션에는 관련이 없으므로 이 절차의 마이그레이션 CR에는 포함되지 않습니다.

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

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

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

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

프로세스

  • Migration CR을 삭제합니다.

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

6.3.2.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

© 2026 Red Hat
맨 위로 이동