15.14. NBD 전송 모드에 대한 비동기 I/O(AIO) 크기 및 버퍼 수 증가


이 문서에서는 MTV(Migration Toolkit for Virtualization) 제품을 사용할 때 마이그레이션 성능을 높이기 위해 NBD 전송 root 매개변수를 변경하는 방법에 대해 설명합니다.

주의

AIO 버퍼링을 사용하는 것은 콜드 마이그레이션 사용 사례에만 적합합니다.

15.14.1. 주요 결과

  • 최상의 마이그레이션 성능은 다음과 같은 단일 ESXi 호스트에서 여러 VM 10을 사용하여 마이그레이션하여 달성되었습니다.

    • VixDiskLib.nfcAio.Session.BufSizeIn64KB=16
    • vixDiskLib.nfcAio.Session.BufCount=4
  • AIO 버퍼(Asynchronous Buffer Counts) 설정을 사용할 때 다음과 같은 개선 사항이 기록되었습니다.

    • 마이그레이션 시간이 31.1% 로 단축되었으며 0:24:32 에서 0:16:54 로 변경되었습니다.
    • 읽기 속도가 347.83MB/s 에서 504.93MB/s 로 증가했습니다.
  • 단일 VM과 함께 AIO 버퍼 설정을 사용할 때 상당한 개선이 관찰되지 않았습니다.
  • 여러 호스트의 여러 VM과 함께 AIO 버퍼 설정을 사용할 때 상당한 개선이 관찰되지 않았습니다.

15.14.2. AIO 버퍼 구성 활성화

AIO 값에 대한 컨트롤러 Pod 지원 검증

  • openshift-mtv 네임스페이스의 forklift-controller Pod가 AIO 버퍼 값을 지원하는지 확인합니다.

    Pod 이름 접두사가 동적이므로 다음 명령을 실행하여 먼저 Pod 이름을 확인합니다.

    oc get pods -n openshift-mtv | grep forklift-controller | awk '{print $1}'

    예제 출력은 다음과 같습니다.

    forklift-controller-667f57c8f8-qllnx
    참고

    예: forklift-controller-667f57c8f8-qllnx의 Pod 이름 접두사입니다.

  • 다음을 실행하여 Pod의 환경 변수를 확인합니다.

    oc get pod forklift-controller-667f57c8f8-qllnx -n openshift-mtv -o yaml
  • 출력에서 다음 행을 확인합니다.

    ...
    \- name: VIRT\_V2V\_EXTRA\_ARGS
    \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP
    ...

ForkliftController 구성 편집

  • openshift-mtv 네임스페이스 에서 다음 명령을 실행하여 AIO 버퍼 값을 포함하도록 ForkliftController 오브젝트를 편집합니다.

    oc edit forkliftcontroller -n openshift-mtv

    spec 섹션에 다음을 추가합니다.

    virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf"
    virt_v2v_extra_conf_config_map: "perf"

perf라는 ConfigMap 생성

  • 다음 명령을 사용하여 필요한 ConfigMap을 생성합니다.

    oc -n openshift-mtv create cm perf

ConfigMap 콘텐츠 준비

  • 원하는 버퍼 구성 값을 Base64로 변환합니다. 예를 들어 16/4의 경우:

    echo -e "VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nvixDiskLib.nfcAio.Session.BufCount=4" | base64

    출력은 다음과 유사합니다.

    Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=

ConfigMap 편집

  • 다음과 같이 binaryData 섹션에서 Base64 문자열로 perf ConfigMap을 업데이트합니다.

    apiVersion: v1
    kind: ConfigMap
    binaryData:
      input.conf: Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=
    metadata:
      name: perf
      namespace: openshift-mtv

Forklift Controller Pod 다시 시작

  • forklift-controller Pod를 다시 시작하여 새 구성을 적용합니다.
  • VIRT_V2V_EXTRA_ARGS 환경 변수가 업데이트된 설정을 반영하는지 확인합니다.

마이그레이션 로그 확인

  • 마이그레이션 계획을 실행하고 마이그레이션 Pod의 로그를 확인합니다. AIO 버퍼 설정이 매개 변수, 특히 --vddk-config 값으로 전달되는지 확인합니다.

    예를 들면 다음과 같습니다.

    exec: /usr/bin/virt-v2v … --vddk-config /mnt/extra-v2v-conf/input.conf

    샘플 로그 발췌:

    Buffer size calc for 16 value:
    (16 * 64 * 1024 = 1048576)
    nbdkit: vddk[1]: debug: [NFC VERBOSE] NfcAio_OpenSession:
    Opening an AIO session.
    nbdkit: vddk[1]: debug: [NFC INFO] NfcAioInitSession:
    Disabling
    read-ahead buffer since the AIO buffer size of 1048576 is >=
    the read-ahead buffer size of 65536. Explicitly setting flag
    '`NFC_AIO_SESSION_NO_NET_READ_AHEAD`'
    nbdkit: vddk[1]: debug: [NFC VERBOSE] NfcAioInitSession: AIO Buffer Size is 1048576
    nbdkit: vddk[1]: debug: [NFC VERBOSE] NfcAioInitSession: AIO Buffer
    Count is 4
    참고

    위의 로그는 debug_level = 4를 사용하는 경우입니다.

마이그레이션 Pod에 콘텐츠로 ConfigMap 값 검사

  • 마이그레이션 Pod에 로그인하고 다음 명령을 사용하여 버퍼 설정을 확인합니다.

    cat /mnt/extra-v2v-conf/input.conf

    예제 출력은 다음과 같습니다.

    VixDiskLib.nfcAio.Session.BufSizeIn64KB=16
    vixDiskLib.nfcAio.Session.BufCount=4

디버깅 활성화 (선택 사항)

  • 디버그 로그를 활성화하려면 높은 로그 수준을 포함하여 구성을 Base64로 변환합니다.

    echo -e
    "`VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nVixDiskLib.nfcAio.Session.BufCount=4\nVixDiskLib.nfc.LogLevel=4`"
    | base64
    참고

    높은 로그 수준을 추가하면 성능이 저하되고 디버깅 목적으로만 사용됩니다.

15.14.3. AIO 버퍼 구성 비활성화

AIO 버퍼 구성을 비활성화하려면 다음 단계를 완료합니다.

  • ForkliftController Object: ForkliftController 오브젝트의 spec 섹션에서 이전에 추가된 행을 제거합니다.

    oc edit forkliftcontroller -n openshift-mtv
  • 다음 행을 제거합니다.

    virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`"
    virt_v2v_extra_conf_config_map: "`perf`"
  • ConfigMap을 삭제합니다. 이전에 생성한 perf ConfigMap을 제거합니다.

    oc delete cm perf -n openshift-mtv
  • Forklift Controller Pod를 다시 시작합니다(선택 사항).

필요한 경우 forklift-controller Pod를 다시 시작하여 변경 사항이 적용되었는지 확인합니다.

15.14.4. AIO 버퍼(Asynchronous Buffer Counts) 지원의 주요 요구 사항

VDDK 및 vSphere 버전

지원은 다음 버전을 사용하여 수행되는 테스트를 기반으로 합니다.

  • vSphere : 7.0.3
  • VDDK : 7.0.3
  • 다른 VDDK 및 vSphere 버전의 경우 공식 VMware 문서에서 AIO 버퍼 지원을 확인하십시오.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동