10.15. NBD 전송 모드의 AIO 크기 및 버퍼 수 증가


MTV(Migration Toolkit for Virtualization)와 함께 AIO(Asynchronous Input/Output) 버퍼링을 사용할 때 마이그레이션 성능을 높이기 위해 NBD(Network Block Device) 전송 네트워크 파일 복사(NFC) 매개변수를 변경할 수 있습니다.

주의

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

웜 마이그레이션을 초기화하기 전에 AIO 설정을 비활성화합니다. 자세한 내용은 AIO 버퍼 구성 비활성화를 참조하십시오.

10.15.1. 주요 결과

  • 최상의 마이그레이션 성능은 다음 값을 사용하여 단일 ESXi 호스트에서 여러 가상 머신(VM)을 마이그레이션하여 달성되었습니다.

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

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

10.15.2. AIO 크기 및 버퍼 수 지원에 대한 주요 요구 사항

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

  • vSphere 7.0.3
  • VDDK 7.0.3

10.15.3. AIO 버퍼링 활성화 및 구성

MCP(Migration Toolkit for Virtualization)와 함께 사용할 비동기 입력/출력(AIO) 버퍼링을 활성화하고 구성할 수 있습니다.

프로세스

  1. openshift-mtv 네임스페이스의 forklift-controller Pod가 AIO 버퍼 값을 지원하는지 확인합니다. Pod 이름 접두사가 동적이므로 다음 명령을 실행하여 Pod 이름을 확인합니다.

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

    예를 들어 Pod 이름 접두사가 "forklift-controller-667f57c8f8-qllnx"인 경우 출력은 다음과 같습니다.

    forklift-controller-667f57c8f8-qllnx
  2. 다음 명령을 실행하여 Pod의 환경 변수를 확인합니다.

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

    ...
    \- name: VIRT\_V2V\_EXTRA\_ARGS
    \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP
    ...
  4. openshift-mtv 네임스페이스 에서 다음 단계를 수행하여 ForkliftController CR(사용자 정의 리소스)을 편집합니다.

    1. 다음 명령을 실행하여 편집을 위해 ForkliftController CR에 액세스합니다.

      oc edit forkliftcontroller -n openshift-mtv
    2. ForkliftController CR의 spec 섹션에 다음 행을 추가합니다.

      virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf"
      virt_v2v_extra_conf_config_map: "perf"
  5. 다음 명령을 실행하여 필요한 구성 맵 perf 를 생성합니다.

    oc -n openshift-mtv create cm perf
  6. 원하는 버퍼 구성 값을 Base64로 변환합니다. 예를 들어 16/4의 경우 다음 명령을 실행합니다.

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

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

    Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=
  7. 구성 맵 perf 에서 binaryData 섹션에 Base64 문자열을 입력합니다. 예를 들면 다음과 같습니다.

    apiVersion: v1
    kind: ConfigMap
    binaryData:
      input.conf: Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=
    metadata:
      name: perf
      namespace: openshift-mtv
  8. forklift-controller Pod를 다시 시작하여 새 구성을 적용합니다.
  9. VIRT_V2V_EXTRA_ARGS 환경 변수가 업데이트된 설정을 반영하는지 확인합니다.
  10. 마이그레이션 계획을 실행하고 마이그레이션 Pod의 로그를 확인합니다. AIO 버퍼 설정이 매개 변수, 특히 --vddk-config 값으로 전달되는지 확인합니다.

    예를 들어 다음 명령을 실행하는 경우 다음을 수행합니다.

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

    debug_level = 4 인 경우 로그에 다음과 유사한 섹션이 포함됩니다.

    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
  11. 올바른 구성 맵 값이 마이그레이션 Pod에 있는지 확인합니다. 마이그레이션 Pod에 로그인하고 다음 명령을 실행하여 이 작업을 수행합니다.

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

    출력 예는 다음과 같습니다.

    VixDiskLib.nfcAio.Session.BufSizeIn64KB=16
    vixDiskLib.nfcAio.Session.BufCount=4
  12. 선택 사항: 다음 명령을 실행하여 디버그 로그를 활성화합니다. 이 명령은 높은 로그 수준을 포함하여 구성을 Base64로 변환합니다.

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

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

10.15.4. AIO 버퍼링 비활성화

MCP(Migration Toolkit for Virtualization)를 사용하여 콜드 마이그레이션에 대한 AIO 버퍼링을 비활성화할 수 있습니다. MTV를 사용하여 웜 마이그레이션에 대해 AIO 버퍼링을 비활성화해야 합니다.

참고

다음 절차에서는 AIO 버퍼링 활성화 및 구성의 절차에 따라 AIO 버퍼링 이 활성화되고 구성되어 있다고 가정합니다.

프로세스

  1. openshift-mtv 네임스페이스 에서 다음 단계를 수행하여 ForkliftController CR(사용자 정의 리소스)을 편집합니다.

    1. 다음 명령을 실행하여 편집을 위해 ForkliftController CR에 액세스합니다.

      oc edit forkliftcontroller -n openshift-mtv
    2. ForkliftController CR의 spec 섹션에서 다음 행을 제거합니다.

      virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`"
      virt_v2v_extra_conf_config_map: "`perf`"
  2. perf 라는 구성 맵을 삭제합니다.

    oc delete cm perf -n openshift-mtv
  3. 선택 사항: forklift-controller Pod를 다시 시작하여 변경 사항이 적용되었는지 확인합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동