검색

10.2. 실시간 마이그레이션 구성

download PDF

마이그레이션 프로세스가 클러스터를 압도하지 않도록 실시간 마이그레이션 설정을 구성할 수 있습니다.

실시간 마이그레이션 정책을 구성하여 VM(가상 머신) 그룹에 다른 마이그레이션 구성을 적용할 수 있습니다.

10.2.1. 실시간 마이그레이션 설정

다음 실시간 마이그레이션 설정을 구성할 수 있습니다.

10.2.1.1. 실시간 마이그레이션 제한 및 타임아웃 구성

openshift-cnv 네임스페이스에 있는 HyperConverged CR(사용자 정의 리소스)을 업데이트하여 클러스터의 실시간 마이그레이션 제한 및 타임아웃을 구성합니다.

프로세스

  • HyperConverged CR을 편집하고 필요한 실시간 마이그레이션 매개변수를 추가합니다.

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv

    설정 파일 예

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      liveMigrationConfig:
        bandwidthPerMigration: 64Mi 1
        completionTimeoutPerGiB: 800 2
        parallelMigrationsPerCluster: 5 3
        parallelOutboundMigrationsPerNode: 2 4
        progressTimeout: 150 5

    1
    각 마이그레이션의 대역폭 제한입니다. 여기서 값은 초당 바이트 수입니다. 예를 들어, 2048Mi 값은 2048MiB/s를 의미합니다. 기본값: 0, 이는 무제한입니다.
    2
    이 시점에 메모리 GiB당 초 단위로 마이그레이션이 완료되지 않으면 마이그레이션이 취소됩니다. 예를 들어 메모리가 6GiB인 VM은 4800초 내에 마이그레이션이 완료되지 않으면 시간 초과됩니다. Migration MethodBlockMigration인 경우 마이그레이션 디스크의 크기가 계산에 포함됩니다.
    3
    클러스터에서 병렬로 실행되고 있는 마이그레이션의 수입니다. 기본값: 5.
    4
    노드당 최대 아웃바운드 마이그레이션의 수입니다. 기본값: 2.
    5
    이 시간(초) 내에 메모리 복사를 진행하지 못하면 마이그레이션이 취소됩니다. 기본값: 150.
참고

해당 키/값 쌍을 삭제하고 파일을 저장하여 spec.liveMigrationConfig 필드의 기본값을 복원할 수 있습니다. 예를 들어 progressTimeout: <value>를 삭제하여 기본 progressTimeout: 150을 복원합니다.

10.2.2. 실시간 마이그레이션 정책

실시간 마이그레이션 정책을 생성하여 VM 또는 프로젝트 레이블로 정의된 VM 그룹에 다른 마이그레이션 구성을 적용할 수 있습니다.

작은 정보

웹 콘솔 을 사용하여 실시간 마이그레이션 정책을 생성할 수 있습니다.

10.2.2.1. 명령줄을 사용하여 실시간 마이그레이션 정책 생성

명령줄을 사용하여 실시간 마이그레이션 정책을 생성할 수 있습니다. kubevirt는 라벨 조합을 사용하여 선택한 VM(가상 머신)에 실시간 마이그레이션 정책을 적용합니다.

  • VM 레이블(예: 크기,os 또는 gpu)
  • 우선순위,대역폭 또는 hpc-workload와 같은 프로젝트 라벨

정책이 특정 VM 그룹에 적용되려면 VM 그룹의 모든 레이블이 정책 레이블과 일치해야 합니다.

참고

VM에 여러 실시간 마이그레이션 정책이 적용되는 경우 일치하는 라벨이 가장 많은 정책이 우선합니다.

여러 정책이 이 기준을 충족하는 경우 정책은 일치하는 레이블 키의 알파벳 순서에 따라 정렬되며 해당 순서의 첫 번째 정책이 우선합니다.

프로세스

  1. 실시간 마이그레이션 정책을 적용할 VM 오브젝트를 편집하고 해당 VM 레이블을 추가합니다.

    1. 리소스의 YAML 구성을 엽니다.

      $ oc edit vm <vm_name>
    2. 구성의 .spec.template.metadata.labels 섹션에서 필요한 레이블 값을 조정합니다. 예를 들어 VM을 마이그레이션 정책의 목적으로 프로덕션 VM으로 표시하려면 kubevirt.io/environment: production 행을 추가합니다.

      apiVersion: migrations.kubevirt.io/v1alpha1
      kind: VirtualMachine
      metadata:
        name: <vm_name>
        namespace: default
        labels:
          app: my-app
          environment: production
      spec:
        template:
          metadata:
            labels:
              kubevirt.io/domain: <vm_name>
              kubevirt.io/size: large
              kubevirt.io/environment: production
      # ...
    3. 구성을 저장하고 종료합니다.
  2. 해당 라벨을 사용하여 MigrationPolicy 오브젝트를 구성합니다. 다음 예제에서는 production 로 레이블이 지정된 모든 VM에 적용되는 정책을 구성합니다.

    apiVersion: migrations.kubevirt.io/v1alpha1
    kind: MigrationPolicy
    metadata:
      name: <migration_policy>
    spec:
      selectors:
        namespaceSelector: 1
          hpc-workloads: "True"
          xyz-workloads-type: ""
        virtualMachineInstanceSelector: 2
          kubevirt.io/environment: "production"
    1
    프로젝트 레이블을 지정합니다.
    2
    VM 레이블을 지정합니다.
  3. 다음 명령을 실행하여 마이그레이션 정책을 생성합니다.

    $ oc create migrationpolicy -f <migration_policy>.yaml

10.2.3. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.