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) 버퍼링을 활성화하고 구성할 수 있습니다.
프로세스
openshift-mtv네임스페이스의forklift-controllerPod가 AIO 버퍼 값을 지원하는지 확인합니다. Pod 이름 접두사가 동적이므로 다음 명령을 실행하여 Pod 이름을 확인합니다.oc get pods -n openshift-mtv | grep forklift-controller | awk '{print $1}'oc get pods -n openshift-mtv | grep forklift-controller | awk '{print $1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 Pod 이름 접두사가 "forklift-controller-667f57c8f8-qllnx"인 경우 출력은 다음과 같습니다.
forklift-controller-667f57c8f8-qllnx
forklift-controller-667f57c8f8-qllnxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod의 환경 변수를 확인합니다.
oc get pod forklift-controller-667f57c8f8-qllnx -n openshift-mtv -o yaml
oc get pod forklift-controller-667f57c8f8-qllnx -n openshift-mtv -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에서 다음 행을 확인합니다.
... \- name: VIRT\_V2V\_EXTRA\_ARGS \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP ...
... \- name: VIRT\_V2V\_EXTRA\_ARGS \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-mtv 네임스페이스에서 다음 단계를 수행하여ForkliftControllerCR(사용자 정의 리소스)을 편집합니다.다음 명령을 실행하여 편집을 위해
ForkliftControllerCR에 액세스합니다.oc edit forkliftcontroller -n openshift-mtv
oc edit forkliftcontroller -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow ForkliftControllerCR의spec섹션에 다음 행을 추가합니다.virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf" virt_v2v_extra_conf_config_map: "perf"
virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf" virt_v2v_extra_conf_config_map: "perf"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여 필요한 구성 맵
perf를 생성합니다.oc -n openshift-mtv create cm perf
oc -n openshift-mtv create cm perfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 원하는 버퍼 구성 값을 Base64로 변환합니다. 예를 들어 16/4의 경우 다음 명령을 실행합니다.
echo -e "VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nvixDiskLib.nfcAio.Session.BufCount=4" | base64
echo -e "VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nvixDiskLib.nfcAio.Session.BufCount=4" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 유사합니다.
Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=
Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 맵
perf에서binaryData섹션에 Base64 문자열을 입력합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
forklift-controllerPod를 다시 시작하여 새 구성을 적용합니다. -
VIRT_V2V_EXTRA_ARGS환경 변수가 업데이트된 설정을 반영하는지 확인합니다. 마이그레이션 계획을 실행하고 마이그레이션 Pod의 로그를 확인합니다. AIO 버퍼 설정이 매개 변수, 특히
--vddk-config값으로 전달되는지 확인합니다.예를 들어 다음 명령을 실행하는 경우 다음을 수행합니다.
exec: /usr/bin/virt-v2v … --vddk-config /mnt/extra-v2v-conf/input.conf
exec: /usr/bin/virt-v2v … --vddk-config /mnt/extra-v2v-conf/input.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow debug_level = 4인 경우 로그에 다음과 유사한 섹션이 포함됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 올바른 구성 맵 값이 마이그레이션 Pod에 있는지 확인합니다. 마이그레이션 Pod에 로그인하고 다음 명령을 실행하여 이 작업을 수행합니다.
cat /mnt/extra-v2v-conf/input.conf
cat /mnt/extra-v2v-conf/input.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예는 다음과 같습니다.
VixDiskLib.nfcAio.Session.BufSizeIn64KB=16 vixDiskLib.nfcAio.Session.BufCount=4
VixDiskLib.nfcAio.Session.BufSizeIn64KB=16 vixDiskLib.nfcAio.Session.BufCount=4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 다음 명령을 실행하여 디버그 로그를 활성화합니다. 이 명령은 높은 로그 수준을 포함하여 구성을 Base64로 변환합니다.
echo -e "`VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nVixDiskLib.nfcAio.Session.BufCount=4\nVixDiskLib.nfc.LogLevel=4`" | base64
echo -e "`VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nVixDiskLib.nfcAio.Session.BufCount=4\nVixDiskLib.nfc.LogLevel=4`" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고높은 로그 수준을 추가하면 성능이 저하되고 디버깅 목적으로만 사용됩니다.
10.15.4. AIO 버퍼링 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
MCP(Migration Toolkit for Virtualization)를 사용하여 콜드 마이그레이션에 대한 AIO 버퍼링을 비활성화할 수 있습니다. MTV를 사용하여 웜 마이그레이션에 대해 AIO 버퍼링을 비활성화해야 합니다.
다음 절차에서는 AIO 버퍼링 활성화 및 구성의 절차에 따라 AIO 버퍼링 이 활성화되고 구성되어 있다고 가정합니다.
프로세스
openshift-mtv 네임스페이스에서 다음 단계를 수행하여ForkliftControllerCR(사용자 정의 리소스)을 편집합니다.다음 명령을 실행하여 편집을 위해
ForkliftControllerCR에 액세스합니다.oc edit forkliftcontroller -n openshift-mtv
oc edit forkliftcontroller -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow ForkliftControllerCR의spec섹션에서 다음 행을 제거합니다.virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`" virt_v2v_extra_conf_config_map: "`perf`"
virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`" virt_v2v_extra_conf_config_map: "`perf`"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
perf라는 구성 맵을 삭제합니다.oc delete cm perf -n openshift-mtv
oc delete cm perf -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항:
forklift-controllerPod를 다시 시작하여 변경 사항이 적용되었는지 확인합니다.