11.5. OpenStack 소스 공급자에서 마이그레이션


CLI(명령줄 인터페이스)를 사용하여 OpenStack 소스 공급자에서 마이그레이션할 수 있습니다.

프로세스

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

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: openstack
      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:
    2
    
            id: <source_network_id>
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 podmultus 입니다.
    2
    id 또는 name 매개변수를 사용하여 소스 네트워크를 지정할 수 있습니다. id 는 OpenStack 네트워크 UUID를 지정합니다.
    3
    각 추가 OpenShift Virtualization 네트워크에 대한 네트워크 연결 정의를 지정합니다.
    4
    typemultus 인 경우에만 필요합니다. 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:
            id: <source_volume_type> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    Copy to Clipboard Toggle word wrap
    1
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다.
    2
    OpenStack volume_type UUID를 지정합니다. 예를 들면 f2737930-b567-451a-9ceb-2887f6207009 입니다.
  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을 지정할 수 있습니다.
    8
    OpenStack 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 ).

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

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

전체 마이그레이션 취소

  • Migration CR을 삭제합니다.

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

특정 VM 마이그레이션 취소

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

    두 개의 VM 마이그레이션을 취소하는 YAML의 예

    $ 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