PowerCLI를 사용하여 HCX 자동화를 통해 VMware VM 마이그레이션 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

PowerCLI를 사용하여 HCX 자동화를 통해 VMware VM 마이그레이션

작성자: Giri Nadiminty(AWS), Hassan Adekoya(AWS), Naveen Deshwal

환경: 프로덕션

소스: 온프레미스 또는 클라우드 기반 VMware vCenter 또는 SDDC

대상: AWS의 VMware Cloud

R 유형: 리호스팅

워크로드: 기타 모든 워크로드

기술: 마이그레이션, 하이브리드 클라우드

AWS 서비스: AWS의 VMware Cloud

요약

알림: 2024년 4월 30일부터 VMware Cloud AWS on은 더 이상 채널 파트너에 의해 AWS 재판매되지 않습니다. 이 서비스는 Broadcom을 통해 계속 제공될 예정입니다. 자세한 내용은 AWS 담당자에게 문의하시기 바랍니다.

이 패턴은 VMware PowerCLI 스크립트로 구동되는 VMware Hybrid Cloud Extension(HCX) 자동화를 사용하여 VMware 온프레미스 가상 머신(VM)을 AWS의 VMware Cloud로 마이그레이션하는 방법을 설명합니다. PowerCLI는 Windows에서 구축된 명령줄 도구입니다. PowerShell VMware 소프트웨어를 관리할 수 있으며 인프라 및 마이그레이션 작업을 자동화합니다.

이 패턴을 vCenter, 소프트웨어 정의 데이터 센터(SDDCs) 및 클라우드 환경의 모든 조합 간 마이그레이션에 적용할 수 있습니다. 이 패턴에 포함된 PowerCLI 스크립트는 모든 VM 구성 및 예약 작업에 마우스 클릭 대신 자동화를 사용하므로 마이그레이션 작업에 소요되는 시간을 절약하고 인적 오류의 위험을 줄이는 데 도움이 됩니다.

사전 조건 및 제한 사항

사전 조건 

  • SDDC가 있는 AWS의 VMware Cloud 계정

  • 기존 온프레미스 또는 클라우드 기반 vCenter 또는 SDDC

  • 소스 및 대상 vCenter 또는 SDDC에 필요한 권한이 있는 사용자 계정

  • 소스 및 대상 vCenter 또는 SDDC 간에 구성된 HCX Network Extension(HCX-NE)이 있는 HCX 사이트 페어링

  • 선택한 서버에 설치된 VMware PowerCLI

제한 사항

  • 소스 vCenter에서 크로스 vCenter NSX를 사용하는 경우 PowerCLI 모듈이 작동하지 않습니다. PowerCLI 대신 HCX API를 사용하는 스크립팅 방법(예: Python)을 사용하세요.

  • 마이그레이션된 VM에 새 이름이나 IP 주소가 필요한 경우 HCX API를 사용하는 스크립팅 방법(예: Python)을 사용하세요.

  • 이 패턴은 필수인 .csv 파일을 채우지 않습니다. VMware vRealize Network Insight(vRNI) 또는 다른 방법을 사용하여 파일을 채울 수 있습니다.

제품 버전

  • VMware vSphere 버전 5 이상

  • VMware HCX 버전 4.4 이상

  • VMware PowerCLI 버전 12.7 이상

아키텍처

소스 기술 스택

  • 온프레미스 또는 클라우드 기반 VMware

대상 기술 스택

  • AWS의 VMware Cloud

대상 아키텍처

HCX 자동화 및 PowerCLI를 사용하여 VM을 AWS로 마이그레이션

도구

서비스

  • AWS의 VMware Cloud는 온프레미스 VMware vSphere 기반 환경을 AWS 클라우드로 마이그레이션하고 확장할 수 있도록 AWS와 VMware가 공동으로 설계한 서비스입니다.

기타 도구

  • VMware Hybrid Cloud Extension(HCX)은 기본 플랫폼을 변경하지 않고 온프레미스 VMware 환경에서 AWS의 VMware Cloud로 워크로드를 마이그레이션하기 위한 유틸리티입니다. 참고: 이전에는 이 제품을 Hybrid Cloud Extension 및 NSX Hybrid Connect라고도 했습니다. 이 패턴은 VM 마이그레이션에 HCX를 사용합니다.

  • VMware PowerCLI는 VMware vSphere 및 vCloud 관리를 자동화하기 위한 명령줄 도구입니다. Windows에서 cmdlet을 사용하여 PowerCLI 명령을 실행할 수 있습니다. PowerShell PowerShell 이 패턴은 PowerCLI를 사용하여 마이그레이션 명령을 실행합니다.

코드

간단한 독립형 스크립트

이 단일 시스템 스크립트를 초기 테스트에 사용하여 구성 옵션이 허용되고 예상대로 작동하는지 확인하는 것이 좋습니다. 지침은 에픽 섹션을 참조하세요.

<# Manual Variables #> $HcxServer = "[enterValue]" $SrcNetworkName = "[enterValue]" $DstNetworkName = "[enterValue]" $DstComputeName = "[enterValue]" $DstDSName = "[enterValue]" $DstFolderName = "[enterValue]" $vmName = "[enterValue]" <# Environment Setup #> Connect-HCXServer -Server $HcxServer $HcxDstSite = Get-HCXSite -Destination $HcxSrcSite = Get-HCXSite -Source $SrcNetwork = Get-HCXNetwork -Name $SrcNetworkName -Type VirtualWire -Site $HcxSrcSite $DstNetwork = Get-HCXNetwork -Name $DstNetworkName -Type NsxtSegment -Site $HcxDstSite $DstCompute = Get-HCXContainer -Name $DstComputeName -Site $HcxDstSite $DstDS = Get-HCXDatastore -Name $DstDSName -Site $HcxDstSite $DstFolder = Get-HCXContainer -name $DstFolderName -Site $HcxDstSite $vm = Get-HCXVM -Name $vmName <# Migration #> $NetworkMapping = New-HCXNetworkMapping -SourceNetwork $SrcNetwork -DestinationNetwork $DstNetwork $NewMigration = New-HCXMigration -VM $vm -MigrationType vMotion -SourceSite $HcxSrcSite -DestinationSite $HcxDstSite -Folder $DstFolder -TargetComputeContainer $DstCompute -TargetDatastore $DstDS -NetworkMapping $NetworkMapping -DiskProvisionType Thin -UpgradeVMTools $True -RemoveISOs $True -ForcePowerOffVm $True -RetainMac $True -UpgradeHardware $True -RemoveSnapshots $True

모든 기능을 갖춘 .csv 기반 스크립트

테스트가 완료되면 프로덕션 환경에서 다음 스크립트를 사용할 수 있습니다. 지침은 에픽 섹션을 참조하세요.

<# Schedule #> write-host("Getting Time for Scheduling") $startTime = [DateTime]::Now.AddDays(12) $endTime = [DateTime]::Now.AddDays(15) <# Migration #> Connect-HCXServer -Server [enterValue] write-host("Getting Source Site") $HcxSrcSite = Get-HCXSite write-host("Getting Target Site") $HcxDstSite = Get-HCXSite -Destination $HCXVMS = Import-CSV .\Import_VM_list.csv ForEach ($HCXVM in $HCXVMS) { $DstFolder = Get-HCXContainer $HCXVM.DESTINATION_VM_FOLDER -Site $HcxDstSite $DstCompute = Get-HCXContainer $HCXVM.DESTINATION_COMPUTE -Site $HcxDstSite $DstDatastore = Get-HCXDatastore $HCXVM.DESTINATION_DATASTORE -Site $HcxDstSite $SrcNetwork = Get-HCXNetwork $HCXVM.SOURCE_NETWORK -Type VirtualWire -Site $HcxSrcSite $DstNetwork = Get-HCXNetwork $HCXVM.DESTINATION_NETWORK -Type NsxtSegment -Site $HcxDstSite $NetworkMapping = New-HCXNetworkMapping -SourceNetwork $SrcNetwork -DestinationNetwork $DstNetwork $NewMigration = New-HCXMigration -VM (Get-HCXVM $HCXVM.VM_NAME) -MigrationType Bulk -SourceSite $HcxSrcSite -DestinationSite $HcxDstSite -Folder $DstFolder -TargetComputeContainer $DstCompute -TargetDatastore $DstDatastore -NetworkMapping $NetworkMapping -DiskProvisionType Thin -UpgradeVMTools $True -RemoveISOs $True -ForcePowerOffVm $True -RetainMac $True -UpgradeHardware $True -RemoveSnapshots $True -ScheduleStartTime $startTime -ScheduleEndTime $endTime Start-HCXMigration -Migration $NewMigration -Confirm:$false }

에픽

작업설명필요한 기술

소스 및 대상 vCenter 및 SDDC 서버 이름을 찾습니다.

PowerCLI 스크립트에는 이 에픽에 설명된 변수가 필요합니다. 스크립트를 쉽게 사용할 수 있도록 이 정보를 미리 수집할 수 있습니다.

vSphere 콘솔의 HCX 섹션에서 인프라, 사이트 페어링을 선택합니다. 표시된 소스 및 대상 서버 이름을 기록해 둡니다.

클라우드 아키텍트

소스 및 대상 HCX 이름을 찾습니다.

vSphere 콘솔의 HCX 섹션에서 시스템, 관리를 선택합니다. 표시된 소스 및 대상 HCX 이름을 기록해 둡니다.

클라우드 아키텍트

소스 및 대상 네트워크 이름을 찾습니다.

vSphere 콘솔의 HCX 섹션에서 시스템, 네트워크 확장을 선택합니다. 소스 및 대상 네트워크 이름을 기록해 둡니다.

참고: 대신 HCX 서버에 연결한 후 PowerCLI Get-HCXNetworkGet-HCXNetwork-Destination 명령을 사용하여 소스 및 대상 네트워크 이름을 가져올 수 있습니다.

클라우드 아키텍트

vSphere 콘솔에서 추가 정보를 수집합니다.

vSphere 콘솔에서 다음 정보를 수집합니다.

  • 마이그레이션하려는 VM의 이름

  • 대상 컴퓨팅 환경(클러스터/호스트)

  • 대상 데이터 스토어

  • 대상 VM 폴더 이름

클라우드 아키텍트
작업설명필요한 기술

마이그레이션 옵션을 결정합니다.

다음을 결정합니다.

  • MigrationType - HCX 지원 마이그레이션 유형으로는 vMotion, 대량, 콜드, RAV가 있습니다. 선택은 가동 중지 시간 요구 사항, 네트워크 대역폭, 마이그레이션 기간, 워크로드 유형에 따라 달라집니다. 자세한 내용은 Migrating Workloads to VMware Cloud on AWS with Hybrid Cloud Extension (HCX) AWS 블로그 게시물을 참조하세요.

  • DiskProvisionType (Thin, Thick)

  • UpgradeVMTools ($True, $False)

  • RemoveISOs ($True, $False)

  • ForcePowerOffVm ($True, $False)

  • RetainMac ($True, $False)

  • UpgradeHardware ($True, $False)

  • RemoveSnapshots ($True, $False)

각 옵션에 대한 자세한 내용은 VMware 개발자 설명서를 참조하세요.

클라우드 아키텍트
작업설명필요한 기술

스크립트를 복사합니다.

간단한 버전의 스크립트는 단일 파일로 독립되어 있습니다. 이를 사용하여 단일 시스템의 마이그레이션을 테스트할 수 있습니다.

이 패턴의 코드 섹션에서 첫 번째 스크립트를 복사하여 VMware PowerCLI 모듈이 설치된 컴퓨터에 저장합니다. (PowerCLI를 설치하려면 VMware 설명서의 지침을 따르세요.)

클라우드 아키텍트

스크립트 변수를 설정합니다.

스크립트의 Manual Variables 섹션에서 모든 변수를 설정합니다.

클라우드 아키텍트

마이그레이션 변수를 설정합니다.

스크립트의 Migration 섹션에서 모든 New-HCXMigration 설정을 지정합니다.

클라우드 아키텍트

사이트를 지정합니다.

(선택 사항) 소스 또는 대상에 여러 사이트가 있는 경우 스크립트의 Environment Setup 섹션에서 사이트를 수동으로 지정합니다.

소스 및 대상에 단일 사이트가 있는 경우 스크립트는 자동으로 정보를 조회합니다.

클라우드 아키텍트

스크립트를 실행합니다.

PowerCLI가 설치된 서버의 관리자 PowerShell 창에서 스크립트를 실행하고 메시지가 표시되면 자격 증명을 입력합니다.

클라우드 아키텍트

스크립트를 검증합니다.

VM 마이그레이션이 시작되었는지 확인합니다.

클라우드 아키텍트
작업설명필요한 기술

.csv 파일을 생성하고 채웁니다.

컴퓨터에서 Import_VM_list.csv(이)라는 .csv 파일을 생성하고 다음 샘플 콘텐츠로 채웁니다.

VM_NAME,DESTINATION_VM_FOLDER,DESTINATION_COMPUTE,DESTINATION_DATASTORE,SOURCE_NETWORK,DESTINATION_NETWORK [enterValue],[enterValue],[enterValue],[enterValue],[enterValue],[enterValue]

.csv 파일의 각 [enterValue]을(를) 이전에 수집한 정보로 바꿉니다.

참고: VMware vRealize Network Insight(vRNI) 또는 다른 방법을 사용하여.csv 파일을 채울 수 있습니다.

클라우드 아키텍트

스크립트를 복사합니다.

모든 기능을 갖춘 버전의 스크립트는 외부 .csv 파일의 정보를 사용하여 여러 VM을 자동으로 마이그레이션합니다.

이 패턴의 코드 섹션에서 두 번째 스크립트를 복사하여 VMware PowerCLI 모듈이 설치된 컴퓨터의 .csv 파일과 동일한 폴더에 저장합니다.

클라우드 아키텍트

스크립트를 수정합니다.

스크립트를 편집하여 다음과 같이 변경합니다.

  • 7행: HCX 서버 변수(Connect-HCXServer)를 설정합니다.

  • 12행:(선택 사항) .csv 파일 이름을 다르게 설정한 경우 업데이트합니다.

  • 3~4행:(선택 사항) 일정을 설정합니다.

  • 20행:(선택 사항) Migration 섹션에서 New-HCXMigration 설정을 지정합니다.

  • 9행 및 11행:(선택 사항) 소스 또는 대상에 여러 사이트가 포함된 경우 원하는 사이트를 수동으로 지정합니다.

클라우드 아키텍트

스크립트를 실행합니다.

PowerCLI가 설치된 서버의 관리자 PowerShell 창에서 스크립트를 실행하고 메시지가 표시되면 자격 증명을 입력합니다.

클라우드 아키텍트

스크립트를 검증합니다.

VM 마이그레이션이 시작되었는지 확인합니다.

클라우드 아키텍트

문제 해결

문제Solution

스크립트가 실패하고 다음과 같은 오류 메시지가 표시됩니다.

“All source networks are not mapped to target!”

소스 vCenter에서 크로스 vCenter NSX를 사용하는 경우 PowerCLI 모듈이 작동하지 않습니다. PowerCLI 대신 HCX API를 사용하는 스크립팅 방법(예: Python)을 사용하세요. 이는 PowerCLI 스크립트의 알려진 제한 사항입니다.

스크립트가 실패하고 다음과 같은 오류 메시지가 표시됩니다. 

“Connect-HCXServer Error: Unauthorized”

입력한 보안 인증 정보가 필요한 권한을 제공하지 않습니다.

관련 리소스