Udostępnij za pośrednictwem


Migrowanie maszyn wirtualnych VMware do maszyn wirtualnych platformy Azure z włączonym szyfrowaniem po stronie serwera i kluczami zarządzanymi przez klienta

W tym artykule opisano sposób migrowania maszyn wirtualnych VMware do maszyn wirtualnych platformy Azure z dyskami zaszyfrowanymi przy użyciu szyfrowania po stronie serwera (SSE) przy użyciu kluczy zarządzanych przez klienta (CMK), przy użyciu migracji i modernizacji (replikacja bez agenta).

Środowisko portalu migracji i modernizacji umożliwia migrowanie maszyn wirtualnych VMware na platformę Azure przy użyciu replikacji bez agenta. Środowisko portalu obsługuje des/CMK. Przed rozpoczęciem replikacji należy utworzyć des i należy podać go podczas uruchamiania replikacji. Nie można go podać w czasie migracji. W tym artykule dowiesz się, jak utworzyć i wdrożyć szablon usługi Azure Resource Manager w celu replikowania maszyny wirtualnej VMware i skonfigurować zreplikowane dyski na platformie Azure do używania funkcji SSE z kluczem cmK.

Przykłady w tym artykule używają programu Azure PowerShell do wykonywania zadań wymaganych do utworzenia i wdrożenia szablonu usługi Resource Manager.

Dowiedz się więcej o szyfrowaniu po stronie serwera (SSE) przy użyciu kluczy zarządzanych przez klienta (CMK) dla dysków zarządzanych.

Wymagania wstępne

Przygotowanie do replikacji

Po zakończeniu odnajdywania maszyn wirtualnych wiersz Odnalezione serwery na kafelku Migracja i modernizacja będzie zawierać liczbę maszyn wirtualnych VMware odnalezionych przez urządzenie.

Przed rozpoczęciem replikacji maszyn wirtualnych należy przygotować infrastrukturę replikacji.

  1. Utwórz wystąpienie usługi Service Bus w regionie docelowym. Usługa Service Bus jest używana przez lokalne urządzenie usługi Azure Migrate do komunikowania się z usługą Migracja i modernizacja w celu koordynowania replikacji i migracji.
  2. Utwórz konto magazynu na potrzeby transferu dzienników operacji z replikacji.
  3. Utwórz konto magazynu, do którego urządzenie usługi Azure Migrate przekazuje dane replikacji.
  4. Utwórz magazyn Key Vault i skonfiguruj usługę Key Vault, aby zarządzać tokenami sygnatur dostępu współdzielonego na potrzeby dostępu do obiektów blob na kontach magazynu utworzonych w kroku 3 i 4.
  5. Wygeneruj token sygnatury dostępu współdzielonego dla usługi Service Bus utworzonej w kroku 1 i utwórz wpis tajny dla tokenu w usłudze Key Vault utworzonego w poprzednim kroku.
  6. Utwórz zasady dostępu usługi Key Vault, aby zapewnić lokalne urządzenie usługi Azure Migrate (przy użyciu aplikacji usługi AAD urządzenia) oraz dostęp do usługi Migracja i modernizacja usługi Key Vault.
  7. Utwórz zasady replikacji i skonfiguruj usługę Migracja i modernizacja ze szczegółami infrastruktury replikacji utworzonej w poprzednim kroku.

Infrastruktura replikacji musi zostać utworzona w docelowym regionie świadczenia usługi Azure na potrzeby migracji i w docelowej subskrypcji platformy Azure, do której są migrowane maszyny wirtualne.

Środowisko portalu migracji i modernizacji upraszcza przygotowanie infrastruktury replikacji, automatycznie wykonując tę czynności podczas replikacji maszyny wirtualnej po raz pierwszy w projekcie. W tym artykule założono, że masz już zreplikowane co najmniej jedną maszynę wirtualną przy użyciu środowiska portalu i że infrastruktura replikacji została już utworzona. Przyjrzymy się sposobom odnajdywania szczegółów istniejącej infrastruktury replikacji i używania tych szczegółów jako danych wejściowych do szablonu usługi Resource Manager, który będzie używany do konfigurowania replikacji za pomocą klucza zarządzanego przez klienta.

Identyfikowanie składników infrastruktury replikacji

  1. W witrynie Azure Portal przejdź do strony grupy zasobów i wybierz grupę zasobów, w której utworzono projekt usługi Azure Migrate.
  2. Wybierz pozycję Wdrożenia z menu po lewej stronie i wyszukaj nazwę wdrożenia, zaczynając od ciągu "Microsoft.MigrateV2.VMwareV2EnableMigrate". Zostanie wyświetlona lista szablonów usługi Resource Manager utworzonych przez środowisko portalu w celu skonfigurowania replikacji dla maszyn wirtualnych w tym projekcie. Pobierzemy jeden z takich szablonów i użyjemy go jako podstawy, aby przygotować szablon do replikacji za pomocą klucza zarządzanego przez klienta.
  3. Aby pobrać szablon, wybierz dowolne wdrożenie zgodne ze wzorcem ciągu w poprzednim kroku > wybierz pozycję Szablon z menu po lewej stronie Kliknij pozycję Pobierz z górnego menu>. Zapisz plik template.json lokalnie. Ten plik szablonu zostanie edytowany w ostatnim kroku.

Tworzenie zestawu szyfrowania dysków

Obiekt zestawu szyfrowania dysku mapuje Dyski zarządzane na usługę Key Vault, która zawiera klucz cmK do użycia w usłudze SSE. Aby replikować maszyny wirtualne za pomocą klucza zarządzanego przez klienta, należy utworzyć zestaw szyfrowania dysku i przekazać go jako dane wejściowe do operacji replikacji.

Postępuj zgodnie z przykładem w tym miejscu, aby utworzyć zestaw szyfrowania dysków przy użyciu programu Azure PowerShell. Upewnij się, że zestaw szyfrowania dysków został utworzony w docelowej subskrypcji, do której są migrowane maszyny wirtualne, oraz w docelowym regionie platformy Azure na potrzeby migracji.

Zestaw szyfrowania dysków można skonfigurować do szyfrowania dysków zarządzanych przy użyciu klucza zarządzanego przez klienta lub podwójnego szyfrowania zarówno za pomocą klucza zarządzanego przez klienta, jak i klucza platformy. Aby użyć opcji podwójnego szyfrowania magazynowanego, skonfiguruj zestaw szyfrowania dysków zgodnie z opisem w tym miejscu.

W poniższym przykładzie zestaw szyfrowania dysków jest skonfigurowany do używania klucza zarządzanego przez klienta.

$Location = "southcentralus"                           #Target Azure region for migration 
$TargetResourceGroupName = "ContosoMigrationTarget"
$KeyVaultName = "ContosoCMKKV"
$KeyName = "ContosoCMKKey"
$KeyDestination = "Software"
$DiskEncryptionSetName = "ContosoCMKDES"

$KeyVault = New-AzKeyVault -Name $KeyVaultName -ResourceGroupName $TargetResourceGroupName -Location $Location -EnableSoftDelete -EnablePurgeProtection

$Key = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KeyName -Destination $KeyDestination

$desConfig = New-AzDiskEncryptionSetConfig -Location $Location -SourceVaultId $KeyVault.ResourceId -KeyUrl $Key.Key.Kid -IdentityType SystemAssigned

$des = New-AzDiskEncryptionSet -Name $DiskEncryptionSetName -ResourceGroupName $TargetResourceGroupName -InputObject $desConfig

Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get

New-AzRoleAssignment -ResourceName $KeyVaultName -ResourceGroupName $TargetResourceGroupName -ResourceType "Microsoft.KeyVault/vaults" -ObjectId $des.Identity.PrincipalId -RoleDefinitionName "Reader"

Uzyskiwanie szczegółowych informacji o maszynie wirtualnej VMware do migracji

W tym kroku użyjesz programu Azure PowerShell, aby uzyskać szczegółowe informacje o maszynie wirtualnej, która musi zostać zmigrowana. Te szczegóły będą używane do konstruowania szablonu usługi Resource Manager na potrzeby replikacji. W szczególności te dwie właściwości są następujące:

  • Identyfikator zasobu maszyny dla odnalezionych maszyn wirtualnych.
  • Lista dysków dla maszyny wirtualnej i ich identyfikatorów dysków.

$ProjectResourceGroup = "ContosoVMwareCMK"   #Resource group that the Azure Migrate Project is created in
$ProjectName = "ContosoVMwareCMK"            #Name of the Azure Migrate Project

$solution = Get-AzResource -ResourceGroupName $ProjectResourceGroup -ResourceType Microsoft.Migrate/MigrateProjects/solutions -ExpandProperties -ResourceName $ProjectName | where Name -eq "Servers-Discovery-ServerDis
covery"

# Displays one entry for each appliance in the project mapping the appliance to the VMware sites discovered through the appliance.
$solution.Properties.details.extendedDetails.applianceNameToSiteIdMapV2 | ConvertFrom-Json | select ApplianceName, SiteId
ApplianceName  SiteId
-------------  ------
VMwareApplianc /subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite

Skopiuj wartość ciągu SiteId odpowiadającego urządzeniu usługi Azure Migrate odnalezionego przez maszynę wirtualną. W powyższym przykładzie identyfikator SiteId to "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite"


#Replace value with SiteId from the previous step
$SiteId = "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite"
$SiteName = Get-AzResource -ResourceId $SiteId -ExpandProperties | Select-Object -ExpandProperty Name
$DiscoveredMachines = Get-AzResource -ResourceGroupName $ProjectResourceGroup -ResourceType Microsoft.OffAzure/VMwareSites/machines  -ExpandProperties -ResourceName $SiteName

#Get machine details
PS /home/bharathram> $MachineName = "FPL-W19-09"     #Replace string with VMware VM name of the machine to migrate
PS /home/bharathram> $machine = $Discoveredmachines | where {$_.Properties.displayName -eq $MachineName}
PS /home/bharathram> $machine.count   #Validate that only 1 VM was found matching this name.

Skopiuj wartości ResourceId, name i disk uuid dla maszyny, które mają zostać zmigrowane.

PS > $machine.Name
10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210
PS > $machine.ResourceId
/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210

PS > $machine.Properties.disks | select uuid, label, name, maxSizeInBytes

uuid                                 label       name    maxSizeInBytes
----                                 -----       ----    --------------
6000C291-5106-2aac-7a74-4f33c3ddb78c Hard disk 1 scsi0:0    42949672960
6000C293-39a1-bd70-7b24-735f0eeb79c4 Hard disk 2 scsi0:1    53687091200
6000C29e-cbee-4d79-39c7-d00dd0208aa9 Hard disk 3 scsi0:2    53687091200

Tworzenie szablonu usługi Resource Manager na potrzeby replikacji

  • Otwórz plik szablonu usługi Resource Manager pobrany w kroku Identyfikowanie składników infrastruktury replikacji w wybranym edytorze.
  • Usuń wszystkie definicje zasobów z szablonu z wyjątkiem zasobów typu "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems"
  • Jeśli istnieje wiele definicji zasobów powyższego typu, usuń wszystkie, ale jedno. Usuń wszystkie definicje właściwości dependsOn z definicji zasobu.
  • Na końcu tego kroku powinien znajdować się plik, który wygląda podobnie do poniższego przykładu i ma ten sam zestaw właściwości.
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems",
            "apiVersion": "2018-01-10",
            "name": "ContosoMigration7371rsvault/VMware104e4replicationfabric/VMware104e4replicationcontainer/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_500937f3-805e-9414-11b1-f22923456e08",
            "properties": {
                "policyId": "/Subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.RecoveryServices/vaults/ContosoMigration7371rsvault/replicationPolicies/migrateVMware104e4sitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_500937f3-805e-9414-11b1-f22923456e08",
                    "targetResourceGroupId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/PayrollRG",
                    "targetNetworkId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/PayrollRG/providers/Microsoft.Network/virtualNetworks/PayrollNW",
                    "targetSubnetName": "PayrollSubnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C295-dafe-a0eb-906e-d47cb5b05a1d",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                            "logStorageAccountSasSecretName": "migratelsa1432469187-cacheSas",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "snapshotRunAsAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                    "targetVmName": "PayrollWeb04"
                }
            }
        }
    ]
}
  • Edytuj właściwość name w definicji zasobu. Zastąp ciąg, który następuje po ostatnim ciągu "/" we właściwości name wartością $machine. Name( z poprzedniego kroku).
  • Zmień wartość właściwości properties.providerSpecificDetails.vmwareMachineId wartością $machine. ResourceId( z poprzedniego kroku).
  • Ustaw wartości dla targetResourceGroupId, targetNetworkId, targetSubnetName na identyfikator docelowej grupy zasobów, docelowy identyfikator zasobu sieci wirtualnej i docelową nazwę podsieci odpowiednio.
  • Ustaw wartość licenseType na wartość "WindowsServer", aby zastosować Korzyść użycia hybrydowego platformy Azure dla tej maszyny wirtualnej. Jeśli ta maszyna wirtualna nie kwalifikuje się do Korzyść użycia hybrydowego platformy Azure, ustaw wartość licenseType na Wartość NoLicenseType.
  • Zmień wartość właściwości targetVmName na żądaną nazwę maszyny wirtualnej platformy Azure dla migrowanej maszyny wirtualnej.
  • Opcjonalnie dodaj właściwość o nazwie targetVmSize poniżej właściwości targetVmName . Ustaw wartość właściwości targetVmSize na żądany rozmiar maszyny wirtualnej platformy Azure dla zmigrowanej maszyny wirtualnej.
  • Właściwość disksToInclude jest listą danych wejściowych dysku na potrzeby replikacji z każdym elementem listy reprezentującym jeden dysk lokalny. Utwórz dowolną liczbę elementów listy jako liczbę dysków na lokalnej maszynie wirtualnej. Zastąp właściwość diskId w elemencie listy identyfikatorem uuid dysków zidentyfikowanych w poprzednim kroku. Ustaw wartość isOSDisk na wartość "true" dla dysku systemu operacyjnego maszyny wirtualnej i "false" dla wszystkich innych dysków. Pozostaw właściwości logStorageAccountId i logStorageAccountSasSecretName bez zmian. Ustaw wartość diskType na typ dysku zarządzanego platformy Azure (Standard_LRS, Premium_LRS, StandardSSD_LRS) do użycia dla dysku. W przypadku dysków, które muszą być szyfrowane za pomocą klucza cmK, dodaj właściwość o nazwie diskEncryptionSetId i ustaw wartość na identyfikator zasobu utworzonego zestawu szyfrowania dysku ($des. Identyfikator) w kroku Tworzenie zestawu szyfrowania dysków
  • Zapisz edytowany plik szablonu. W powyższym przykładzie edytowany plik szablonu wygląda następująco:
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems",
            "apiVersion": "2018-01-10",
            "name": "ContosoVMwareCMK00ddrsvault/VMwareApplianca8bareplicationfabric/VMwareApplianca8bareplicationcontainer/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210",
            "properties": {
                "policyId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.RecoveryServices/vaults/ContosoVMwareCMK00ddrsvault/replicationPolicies/migrateVMwareApplianca8basitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210",
                    "targetResourceGroupId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoMigrationTarget",
                    "targetNetworkId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/cmkRTest/providers/Microsoft.Network/virtualNetworks/cmkvm1_vnet",
                    "targetSubnetName": "cmkvm1_subnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C291-5106-2aac-7a74-4f33c3ddb78c",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C293-39a1-bd70-7b24-735f0eeb79c4",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C29e-cbee-4d79-39c7-d00dd0208aa9",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "snapshotRunAsAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                    "performAutoResync": "true",
                    "targetVmName": "FPL-W19-09"
                }
            }
        }
    ]
}

Konfigurowanie replikacji

Teraz możesz wdrożyć edytowany szablon usługi Resource Manager w grupie zasobów projektu w celu skonfigurowania replikacji maszyny wirtualnej. Dowiedz się, jak wdrażać zasób przy użyciu szablonów usługi Azure Resource Manager i programu Azure PowerShell

New-AzResourceGroupDeployment -ResourceGroupName $ProjectResourceGroup -TemplateFile "C:\Users\Administrator\Downloads\template.json"
DeploymentName          : template
ResourceGroupName       : ContosoVMwareCMK
ProvisioningState       : Succeeded
Timestamp               : 3/11/2020 8:52:00 PM
Mode                    : Incremental
TemplateLink            :
Parameters              :
Outputs                 :
DeploymentDebugLogLevel :

Następne kroki

Monitorowanie stanu replikacji za pomocą środowiska portalu i przeprowadzanie migracji testowych.