Niezawodność maszyn wirtualnych

Ten artykuł zawiera konkretne zalecenia dotyczące niezawodności maszyn wirtualnych, a także szczegółowe informacje na temat regionalnej odporności maszyny wirtualnej ze strefami dostępności i odzyskiwaniem po awarii między regionami i ciągłością działania.

Aby zapoznać się z omówieniem niezawodności architektury na platformie Azure, zobacz Niezawodność platformy Azure.

Zalecenia dotyczące niezawodności

Ta sekcja zawiera zalecenia dotyczące uzyskiwania odporności i dostępności. Każde zalecenie należy do jednej z dwóch kategorii:

  • Elementy kondycji obejmują obszary, takie jak elementy konfiguracji i właściwa funkcja głównych składników tworzących obciążenie platformy Azure, takie jak ustawienia konfiguracji zasobów platformy Azure, zależności od innych usług itd.

  • Elementy ryzyka obejmują obszary, takie jak wymagania dotyczące dostępności i odzyskiwania, testowanie, monitorowanie, wdrażanie i inne elementy, które, jeśli nie zostały rozwiązane, zwiększają szanse na problemy w środowisku.

Macierz priorytetów zaleceń dotyczących niezawodności

Każde zalecenie jest oznaczone zgodnie z następującą macierzą priorytetów:

Obraz Priorytet opis
Maksimum Wymagana jest natychmiastowa poprawka.
Średnia Poprawka w ciągu 3–6 miesięcy.
Minimum Należy przejrzeć.

Podsumowanie zaleceń dotyczących niezawodności

Kategoria Priorytet Zalecenie
Wysoka dostępność Uruchamianie obciążeń produkcyjnych na co najmniej dwóch maszynach wirtualnych przy użyciu usługi Azure Virtual Machine Scale Sets Flex
Wdrażanie maszyn wirtualnych w różnych strefach dostępności lub używanie zestawów skalowania maszyn wirtualnych Flex ze strefami
Migrowanie maszyn wirtualnych przy użyciu zestawów dostępności do zestawów skalowania maszyn wirtualnych Flex
Używanie dysków zarządzanych dla dysków maszyn wirtualnych
Odzyskiwanie po awarii Replikowanie maszyn wirtualnych przy użyciu usługi Azure Site Recovery
Tworzenie kopii zapasowych danych na maszynach wirtualnych za pomocą usługi Azure Backup
Wydajność Hostowanie danych aplikacji i bazy danych na dysku danych
Produkcyjne maszyny wirtualne powinny używać dysków SSD
Włączanie przyspieszonej sieci (AccelNet)
Po włączeniu usługi AccelNet należy ręcznie zaktualizować dysk karty sieciowej systemu GuestOS
Zarządzanie VM-9: Obserwowanie maszyn wirtualnych w stanie Zatrzymano
Używanie konfiguracji konserwacji dla maszyny wirtualnej
Bezpieczeństwo Maszyny wirtualne nie powinny mieć bezpośrednio skojarzonego publicznego adresu IP
Wirtualne interfejsy sieciowe mają skojarzona sieciowa grupa zabezpieczeń
Przekazywanie IP powinno być włączone tylko dla wirtualnych urządzeń sieciowych
Dostęp sieciowy do dysku maszyny wirtualnej powinien być ustawiony na wartość "Wyłącz dostęp publiczny i włącz dostęp prywatny"
Domyślnie włącz szyfrowanie dysków i dane magazynowane
Sieć Serwery DNS klienta należy skonfigurować na poziomie sieci wirtualnej
Storage Dyski udostępnione powinny być włączone tylko na serwerach klastrowanych
Zgodność z przepisami Upewnij się, że maszyny wirtualne są zgodne z zasadami platformy Azure
Monitorowanie Włączanie Szczegółowe informacje maszyny wirtualnej
Konfigurowanie ustawień diagnostycznych dla wszystkich zasobów platformy Azure

Wysoka dostępność

Uruchamianie obciążeń produkcyjnych na co najmniej dwóch maszynach wirtualnych przy użyciu zestawów skalowania maszyn wirtualnych Flex

Aby zabezpieczyć obciążenia aplikacji przed przestojami ze względu na tymczasową niedostępność dysku lub maszyny wirtualnej, zaleca się uruchamianie obciążeń produkcyjnych na co najmniej dwóch maszynach wirtualnych przy użyciu zestawów skalowania maszyn wirtualnych Flex.

Do uruchamiania obciążeń produkcyjnych można użyć:

  • Zestawy skalowania maszyn wirtualnych platformy Azure umożliwiają tworzenie grupy maszyn wirtualnych o zrównoważonym obciążeniu i zarządzanie nimi. Liczba wystąpień maszyn wirtualnych może automatycznie zwiększać się lub zmniejszać w reakcji na zapotrzebowanie lub według zdefiniowanego harmonogramu.

  • Strefy dostępności. Aby uzyskać więcej informacji na temat stref dostępności i maszyn wirtualnych, zobacz Obsługa stref dostępności.

// Azure Resource Graph Query
// Find all VMs that are not associated with a VMSS Flex instance
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(properties.virtualMachineScaleSet.id)
| project recommendationId="vm-1", name, id, tags

Wdrażanie maszyn wirtualnych w różnych strefach dostępności lub używanie zestawów skalowania maszyn wirtualnych Flex ze strefami*

Podczas tworzenia maszyn wirtualnych użyj stref dostępności, aby chronić aplikacje i dane przed mało prawdopodobną awarią centrum danych. Aby uzyskać więcej informacji na temat stref dostępności dla maszyn wirtualnych, zobacz Obsługa stref dostępności w tym dokumencie.

Aby uzyskać informacje na temat włączania obsługi stref dostępności podczas tworzenia maszyny wirtualnej, zobacz Tworzenie obsługi stref dostępności.

Aby uzyskać informacje na temat migrowania istniejących maszyn wirtualnych do obsługi stref dostępności, zobacz Migrowanie do obsługi stref dostępności.

// Azure Resource Graph Query
// Find all VMs that are not assigned to a Zone
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(zones)
| project recommendationId="vm-2", name, id, tags, param1="No Zone"

Migrowanie maszyn wirtualnych przy użyciu zestawów dostępności do zestawów skalowania maszyn wirtualnych Flex

Modernizuj obciążenia, migrując je z maszyn wirtualnych do usługi Virtual Machine Scale Sets Flex.

Usługa Virtual Machine Scale Sets Flex umożliwia wdrażanie maszyn wirtualnych na jeden z dwóch sposobów:

  • Między strefami
  • W tej samej strefie, ale w domenach błędów (FD) i automatycznie aktualizuj domeny (UD).

W aplikacji N-warstwowej zaleca się umieszczenie każdej warstwy aplikacji we własnych zestawach skalowania maszyn wirtualnych Flex.

// Azure Resource Graph Query
// Find all VMs using Availability Sets
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.availabilitySet)
| project recommendationId = "vm-3", name, id, tags, param1=strcat("availabilitySet: ",properties.availabilitySet.id)

Używanie dysków zarządzanych dla dysków maszyn wirtualnych*

Aby zapewnić lepszą niezawodność maszyn wirtualnych w zestawie dostępności, użyj dysków zarządzanych. Dyski zarządzane są wystarczająco odizolowane od siebie, aby uniknąć pojedynczych punktów awarii. Ponadto dyski zarządzane nie podlegają limitom liczby operacji we/wy na sekundę wirtualnych dysków twardych utworzonych na koncie magazynu.

// Azure Resource Graph Query
// Find all VMs that are not using Managed Disks
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnull(properties.storageProfile.osDisk.managedDisk)
| project recommendationId = "vm-5", name, id, tags

Odzyskiwanie po awarii

Replikowanie maszyn wirtualnych przy użyciu usługi Azure Site Recovery

Podczas replikowania maszyn wirtualnych platformy Azure przy użyciu usługi Site Recovery wszystkie dyski maszyn wirtualnych są stale replikowane do regionu docelowego asynchronicznie. Punkty odzyskiwania są tworzone co kilka minut, co daje cel punktu odzyskiwania (RPO) w kolejności minut. Możesz przeprowadzić próbne odzyskiwanie po awarii tyle razy, ile chcesz, bez wpływu na aplikację produkcyjną lub trwającą replikację.

Aby dowiedzieć się, jak uruchomić próbne odzyskiwanie po awarii, zobacz Run a test failover (Uruchamianie testu pracy w trybie failover).

// Azure Resource Graph Query
// Find all VMs that do NOT have replication with ASR enabled
// Run query to see results.
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, id, tags
| join kind=leftouter (
    recoveryservicesresources
    | where type =~ 'Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems'
    | where properties.providerSpecificDetails.dataSourceInfo.datasourceType =~ 'AzureVm'
    | project id=properties.providerSpecificDetails.dataSourceInfo.resourceId
    | extend name=strcat_array(array_slice(split(id, '/'), 8, -1), '/')
) on name
| where isnull(id1)
| project-away id1
| project-away name1
| project recommendationId = "vm-4", name, id, tags
| order by id asc

Tworzenie kopii zapasowych danych na maszynach wirtualnych za pomocą usługi Azure Backup

Usługa Azure Backup udostępnia proste, bezpieczne i ekonomiczne rozwiązania do wykonywania kopii zapasowych danych i odzyskiwania ich z chmury platformy Microsoft Azure. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Backup.

// Azure Resource Graph Query
// Find all VMs that do NOT have Backup enabled
// Run query to see results.
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, id, tags
| join kind=leftouter (
    recoveryservicesresources
    | where type =~ 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems'
    | where properties.dataSourceInfo.datasourceType =~ 'Microsoft.Compute/virtualMachines'
    | project idBackupEnabled=properties.sourceResourceId
    | extend name=strcat_array(array_slice(split(idBackupEnabled, '/'), 8, -1), '/')
) on name
| where isnull(idBackupEnabled)
| project-away idBackupEnabled
| project-away name1
| project recommendationId = "vm-7", name, id, tags
| order by id asc

Wydajność

Hostowanie danych aplikacji i bazy danych na dysku danych

Dysk danych to dysk zarządzany dołączony do maszyny wirtualnej. Użyj dysku danych do przechowywania danych aplikacji lub innych danych, które należy zachować. Dyski danych są rejestrowane jako dyski SCSI i są oznaczone literą, którą wybierzesz. Hostowanie danych na dysku danych ułatwia tworzenie kopii zapasowych lub przywracanie danych. Możesz również przeprowadzić migrację dysku bez konieczności przenoszenia całej maszyny wirtualnej i systemu operacyjnego. Ponadto możesz wybrać inną jednostkę SKU dysku z innym typem, rozmiarem i wydajnością spełniającą wymagania. Aby uzyskać więcej informacji na temat dysków danych, zobacz Dyski danych.

// Azure Resource Graph Query
// Find all VMs that only have OS Disk
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where array_length(properties.storageProfile.dataDisks) < 1
| project recommendationId = "vm-6", name, id, tags

Produkcyjne maszyny wirtualne powinny używać dysków SSD

Dyski SSD w warstwie Premium oferują obsługę dysków o wysokiej wydajności i małych opóźnieniach dla aplikacji intensywnie korzystających z operacji we/wy i obciążeń produkcyjnych. Dyski SSD w warstwie Standardowa to ekonomiczna opcja magazynu zoptymalizowana pod kątem obciążeń wymagających spójnej wydajności na niższych poziomach operacji we/wy na sekundę.

Zaleca się:

  • Używaj dysków HDD w warstwie Standardowa na potrzeby scenariuszy tworzenia i testowania oraz mniej krytycznych obciążeń przy najniższych kosztach.
  • Używaj dysków SSD w warstwie Premium zamiast dysków HDD w warstwie Standardowa z maszynami wirtualnymi obsługującymi warstwę Premium. W przypadku dowolnej maszyny wirtualnej pojedynczego wystąpienia korzystającej z magazynu w warstwie Premium dla wszystkich dysków systemu operacyjnego i dysków danych platforma Azure gwarantuje łączność maszyny wirtualnej co najmniej 99,9%.

Jeśli chcesz uaktualnić dysk HDD w warstwie Standardowa do dysków SSD w warstwie Premium, rozważ następujące problemy:

  • Uaktualnienie wymaga ponownego uruchomienia maszyny wirtualnej, a ukończenie tego procesu trwa od 3 do 5 minut.
  • Jeśli maszyny wirtualne są maszynami wirtualnymi produkcyjnymi o krytycznym znaczeniu, oceń lepszą dostępność pod względem kosztów dysków w warstwie Premium.

Aby uzyskać więcej informacji na temat dysków zarządzanych i typów dysków platformy Azure, zobacz Typy dysków zarządzanych platformy Azure.

// Azure Resource Graph Query
// Find all disks with StandardHDD sku attached to VMs
Resources
| where type =~ 'Microsoft.Compute/disks'
| where sku.name == 'Standard_LRS' and sku.tier == 'Standard'
| where managedBy != ""
| project recommendationId = "vm-8", name, id, tags, param1=strcat("managedBy: ", managedBy)

Włączanie przyspieszonej sieci (AccelNet)

AccelNet umożliwia wirtualizację we/wy pojedynczego katalogu głównego (SR-IOV) do maszyny wirtualnej, co znacznie poprawia wydajność sieci. Ta ścieżka o wysokiej wydajności pomija hosta na ścieżce danych, co zmniejsza opóźnienie, zakłócenia i użycie procesora w przypadku najbardziej wymagających obciążeń sieciowych na obsługiwanych typach maszyn wirtualnych.

Aby uzyskać więcej informacji na temat przyspieszonej sieci, zobacz Przyspieszona sieć

// Azure Resource Graph Query
// Find all VM NICs that do not have Accelerated Networking enabled
resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| mv-expand nic = properties.networkProfile.networkInterfaces
| project name, id, tags, lowerCaseNicId = tolower(nic.id), vmSize = tostring(properties.hardwareProfile.vmSize)
| join kind = inner (
    resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where properties.enableAcceleratedNetworking == false
    | project nicName = split(id, "/")[8], lowerCaseNicId = tolower(id)
    )
    on lowerCaseNicId
| summarize nicNames = make_set(nicName) by name, id, tostring(tags), vmSize
| extend param1 = strcat("NicName: ", strcat_array(nicNames, ", ")), param2 = strcat("VMSize: ", vmSize)
| project recommendationId = "vm-10", name, id, tags, param1, param2
| order by id asc

Po włączeniu usługi AccelNet należy ręcznie zaktualizować sterownik karty sieciowej systemu GuestOS

Po włączeniu usługi AccelNet domyślny interfejs sieci wirtualnej platformy Azure w systemie GuestOS jest zastępowany dla interfejsu Mellanox. W związku z tym sterownik karty sieciowej systemu GuestOS jest dostarczany przez firmę Mellanox, dostawcę innej firmy. Mimo że obrazy witryny Marketplace obsługiwane przez firmę Microsoft są oferowane z najnowszą wersją sterowników Mellanox, po wdrożeniu maszyny wirtualnej należy ręcznie zaktualizować sterownik karty sieciowej systemu GuestOS co sześć miesięcy.

// cannot-be-validated-with-arg

Zarządzanie

Przeglądanie maszyn wirtualnych w stanie zatrzymania

Wystąpienia maszyn wirtualnych przechodzą przez różne stany, w tym aprowizowanie i stany zasilania. Jeśli maszyna wirtualna jest w stanie zatrzymanym, maszyna wirtualna może napotkać problem lub nie jest już konieczna i może zostać usunięta, aby zmniejszyć koszty.

// Azure Resource Graph Query
// Find all VMs that are NOT running
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.extended.instanceView.powerState.displayStatus != 'VM running'
| project recommendationId = "vm-9", name, id, tags

Używanie konfiguracji konserwacji dla maszyny wirtualnej

Aby upewnić się, że aktualizacje/przerwy maszyn wirtualnych są wykonywane w zaplanowanym przedziale czasu, użyj ustawień konfiguracji konserwacji, aby zaplanować aktualizacje i zarządzać nimi. Aby uzyskać więcej informacji na temat zarządzania aktualizacjami maszyn wirtualnych przy użyciu konfiguracji konserwacji, zobacz Zarządzanie aktualizacjami maszyn wirtualnych przy użyciu konfiguracji konserwacji.

// Azure Resource Graph Query
// Find VMS that do not have maintenance configuration assigned
Resources
| extend resourceId = tolower(id)
| project name, location, type, id, tags, resourceId, properties
| where type =~ 'Microsoft.Compute/virtualMachines'
| join kind=leftouter (
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| project planName = name, type, maintenanceProps = properties
| extend resourceId = tostring(maintenanceProps.resourceId)
) on resourceId
| where isnull(maintenanceProps)
| project recommendationId = "vm-22",name, id, tags
| order by id asc

Zabezpieczenia

Maszyny wirtualne nie powinny mieć bezpośrednio skojarzonego publicznego adresu IP

Jeśli maszyna wirtualna wymaga wychodzącej łączności z Internetem, zaleca się użycie bramy translatora adresów sieciowych lub usługi Azure Firewall. Brama translatora adresów sieciowych lub usługa Azure Firewall pomaga zwiększyć bezpieczeństwo i odporność usługi, ponieważ obie usługi mają wyższe porty dostępności i źródłowego tłumaczenia adresów sieciowych (SNAT). W przypadku przychodzącej łączności z Internetem zaleca się użycie rozwiązania do równoważenia obciążenia, takiego jak usługa Azure Load Balancer i usługa Application Gateway.

// Azure Resource Graph Query
// Find all VMs with PublicIPs directly associated with them
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where isnotnull(properties.ipConfigurations)
    | mv-expand ipconfig=properties.ipConfigurations
    | extend publicIp = tostring(ipconfig.properties.publicIPAddress.id)
    | where publicIp != ""
    | project name, nicId = tostring(id), publicIp
) on nicId
| project recommendationId = "vm-12", name, id, tags
| order by id asc

Interfejsy sieciowe maszyn wirtualnych mają skojarzona sieciowa grupa zabezpieczeń*

Zaleca się skojarzenie sieciowej grupy zabezpieczeń z podsiecią lub interfejsem sieciowym, ale nie obu tych grup. Ponieważ reguły w sieciowej grupie zabezpieczeń skojarzonej z podsiecią mogą powodować konflikt z regułami w sieciowej grupie zabezpieczeń skojarzonej z interfejsem sieciowym, mogą wystąpić nieoczekiwane problemy z komunikacją, które wymagają rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Ruch wewnątrz podsieci.

// Azure Resource Graph Query
// Provides a list of virtual machines and associated NICs that do have an NSG associated to them and also an NSG associated to the subnet.
Resources
| where type =~ 'Microsoft.Network/networkInterfaces'
| where isnotnull(properties.networkSecurityGroup)
| mv-expand ipConfigurations = properties.ipConfigurations, nsg = properties.networkSecurityGroup
| project nicId = tostring(id), subnetId = tostring(ipConfigurations.properties.subnet.id), nsgName=split(nsg.id, '/')[8]
| parse kind=regex subnetId with '/virtualNetworks/' virtualNetwork '/subnets/' subnet
    | join kind=inner (
        Resources
        | where type =~ 'Microsoft.Network/NetworkSecurityGroups' and isnotnull(properties.subnets)
        | project name, resourceGroup, subnet=properties.subnets
        | mv-expand subnet
        | project subnetId=tostring(subnet.id)
    ) on subnetId
    | project nicId
| join kind=leftouter (
    Resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | where isnotnull(properties.networkProfile.networkInterfaces)
    | mv-expand nic=properties.networkProfile.networkInterfaces
    | project vmName = name, vmId = id, tags, nicId = nic.id, nicName=split(nic.id, '/')[8]
    | extend nicId = tostring(nicId)
) on nicId
| project recommendationId = "vm-13", name=vmName, id = vmId, tags, param1 = strcat("nic-name=", nicName)

Przekazywanie ip powinno być włączone tylko dla wirtualnych urządzeń sieciowych

Przekazywanie adresów IP umożliwia interfejsowi sieciowemu maszyny wirtualnej:

  • Odbierz ruch sieciowy, który nie jest przeznaczony dla jednego z adresów IP przypisanych do dowolnej konfiguracji adresu IP przypisanej do interfejsu sieciowego.

  • Wysyłaj ruch sieciowy z innym źródłowym adresem IP niż przypisany do jednej z konfiguracji adresów IP interfejsu sieciowego.

Dla każdego interfejsu sieciowego dołączonego do maszyny wirtualnej odbierającego ruch musi być włączony dla każdego interfejsu sieciowego, który ma być przekazywany. Maszyna wirtualna może przekazywać ruch niezależnie od tego, czy ma wiele interfejsów sieciowych, czy jeden interfejs sieciowy. Chociaż przekazywanie adresów IP jest ustawieniem platformy Azure, maszyna wirtualna musi również uruchomić aplikację, która może przekazywać ruch, taki jak zapora, optymalizacja sieci WAN i aplikacje równoważenia obciążenia.

Aby dowiedzieć się, jak włączyć lub wyłączyć przekazywanie adresów IP, zobacz Włączanie lub wyłączanie przekazywania adresów IP.

// Azure Resource Graph Query
// Find all VM NICs that have IPForwarding enabled. This feature is usually only required for Network Virtual Appliances
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | where properties.enableIPForwarding == true
    | project nicId = tostring(id)
) on nicId
| project recommendationId = "vm-14", name, id, tags
| order by id asc

Dostęp sieciowy do dysku maszyny wirtualnej powinien być ustawiony na wartość "Wyłącz dostęp publiczny i włącz dostęp prywatny"

Zaleca się ustawienie dostępu do sieci dysku maszyny wirtualnej na wartość "Wyłącz dostęp publiczny i włącz dostęp prywatny" i utwórz prywatny punkt końcowy. Aby dowiedzieć się, jak utworzyć prywatny punkt końcowy, zobacz Tworzenie prywatnego punktu końcowego.

// Azure Resource Graph Query
// Find all Disks with "Enable public access from all networks" enabled
resources
| where type =~ 'Microsoft.Compute/disks'
| where properties.publicNetworkAccess == "Enabled"
| project id, name, tags, lowerCaseDiskId = tolower(id)
| join kind = leftouter (
    resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | project osDiskVmName = name, lowerCaseOsDiskId = tolower(properties.storageProfile.osDisk.managedDisk.id)
    | join kind = fullouter (
        resources
        | where type =~ 'Microsoft.Compute/virtualMachines'
        | mv-expand dataDisks = properties.storageProfile.dataDisks
        | project dataDiskVmName = name, lowerCaseDataDiskId = tolower(dataDisks.managedDisk.id)
        )
        on $left.lowerCaseOsDiskId == $right.lowerCaseDataDiskId
    | project lowerCaseDiskId = coalesce(lowerCaseOsDiskId, lowerCaseDataDiskId), vmName = coalesce(osDiskVmName, dataDiskVmName)
    )
    on lowerCaseDiskId
| summarize vmNames = make_set(vmName) by name, id, tostring(tags)
| extend param1 = iif(isempty(vmNames[0]), "VMName: n/a", strcat("VMName: ", strcat_array(vmNames, ", ")))
| project recommendationId = "vm-17", name, id, tags, param1
| order by id asc

Domyślnie włącz szyfrowanie dysków i dane magazynowane

Istnieje kilka typów szyfrowania dostępnych dla dysków zarządzanych, w tym usługi Azure Disk Encryption (ADE), szyfrowania po stronie serwera (SSE) i szyfrowania na hoście.

  • Usługa Azure Disk Encryption pomaga chronić dane zgodnie z wymaganiami organizacji w zakresie zabezpieczeń i zgodności.
  • Szyfrowanie po stronie serwera usługi Azure Disk Storage (nazywane również szyfrowaniem magazynowym lub szyfrowaniem usługi Azure Storage) automatycznie szyfruje dane przechowywane na dyskach zarządzanych platformy Azure (system operacyjny i dyski danych) podczas utrwalania w klastrach magazynu.
  • Szyfrowanie na hoście gwarantuje, że dane przechowywane na hoście maszyny wirtualnej hostujące maszynę wirtualną są szyfrowane w stanie spoczynku i przepływy szyfrowane w klastrach magazynu.
  • Szyfrowanie dysków poufnych wiąże klucze szyfrowania dysku z modułem TPM maszyny wirtualnej i sprawia, że chroniona zawartość dysku jest dostępna tylko dla maszyny wirtualnej.

Aby uzyskać więcej informacji na temat opcji szyfrowania dysków zarządzanych, zobacz Omówienie opcji szyfrowania dysków zarządzanych.

// under-development

Sieć

Serwery DNS należy skonfigurować na poziomie sieci wirtualnej

Skonfiguruj serwer DNS w sieci wirtualnej, aby uniknąć niespójności rozpoznawania nazw w środowisku. Aby uzyskać więcej informacji na temat rozpoznawania nazw dla zasobów w sieciach wirtualnych platformy Azure, zobacz Rozpoznawanie nazw dla maszyn wirtualnych i usług w chmurze.

// Azure Resource Graph Query
// Find all VM NICs that have DNS Server settings configured in any of the NICs
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where isnotnull(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| project name, id, tags, nicId = nic.id
| extend nicId = tostring(nicId)
| join kind=inner (
    Resources
    | where type =~ 'Microsoft.Network/networkInterfaces'
    | project name, id, dnsServers = properties.dnsSettings.dnsServers
    | extend hasDns = array_length(dnsServers) >= 1
    | where hasDns != 0
    | project name, nicId = tostring(id)
) on nicId
| project recommendationId = "vm-15", name, id, tags
| order by id asc

Storage

Dyski udostępnione powinny być włączone tylko na serwerach klastrowanych

Dyski udostępnione platformy Azure to funkcja dysków zarządzanych platformy Azure, która umożliwia jednoczesne dołączanie dysku zarządzanego do wielu maszyn wirtualnych. Po dołączeniu dysku zarządzanego do wielu maszyn wirtualnych można wdrożyć nowe lub zmigrować istniejące klastrowane aplikacje na platformę Azure. Dyski udostępnione powinny być używane tylko w takich sytuacjach, gdy dysk jest przypisany do więcej niż jednego elementu członkowskiego maszyny wirtualnej klastra.

Aby dowiedzieć się więcej na temat włączania dysków udostępnionych dla dysków zarządzanych, zobacz Włączanie dysku udostępnionego.

// Azure Resource Graph Query
// Find all Disks configured to be Shared. This is not an indication of an issue, but if a disk with this configuration is assigned to two or more VMs without a proper disk control mechanism (like a WSFC) it can lead to data loss
resources
| where type =~ 'Microsoft.Compute/disks'
| where isnotnull(properties.maxShares)
| project id, name, tags, lowerCaseDiskId = tolower(id), diskState = tostring(properties.diskState)
| join kind = leftouter (
    resources
    | where type =~ 'Microsoft.Compute/virtualMachines'
    | project osDiskVmName = name, lowerCaseOsDiskId = tolower(properties.storageProfile.osDisk.managedDisk.id)
    | join kind = fullouter (
        resources
        | where type =~ 'Microsoft.Compute/virtualMachines'
        | mv-expand dataDisks = properties.storageProfile.dataDisks
        | project dataDiskVmName = name, lowerCaseDataDiskId = tolower(dataDisks.managedDisk.id)
        )
        on $left.lowerCaseOsDiskId == $right.lowerCaseDataDiskId
    | project lowerCaseDiskId = coalesce(lowerCaseOsDiskId, lowerCaseDataDiskId), vmName = coalesce(osDiskVmName, dataDiskVmName)
    )
    on lowerCaseDiskId
| summarize vmNames = make_set(vmName) by name, id, tostring(tags), diskState
| extend param1 = strcat("DiskState: ", diskState), param2 = iif(isempty(vmNames[0]), "VMName: n/a", strcat("VMName: ", strcat_array(vmNames, ", ")))
| project recommendationId = "vm-16", name, id, tags, param1, param2
| order by id asc

Zgodność z przepisami

Upewnij się, że maszyny wirtualne są zgodne z zasadami platformy Azure

Ważne jest, aby zapewnić bezpieczeństwo maszyny wirtualnej dla uruchomionych aplikacji. Zabezpieczanie maszyn wirtualnych może obejmować co najmniej jedną usługę i funkcje platformy Azure, które obejmują bezpieczny dostęp do maszyn wirtualnych i bezpieczny magazyn danych. Aby uzyskać więcej informacji na temat zabezpieczania maszyn wirtualnych i aplikacji, zobacz Artykuł Azure Policy Regulatory Compliance controls for Azure Virtual Machines (Mechanizmy kontroli zgodności z przepisami usługi Azure Policy dla maszyn wirtualnych platformy Azure).

// Azure Resource Graph Query
// Find all VMs in "NonCompliant" state with Azure Policies
PolicyResources
| where type =~ "Microsoft.PolicyInsights/policyStates" and properties.resourceType =~ "Microsoft.Compute/virtualMachines" and properties.complianceState =~ "NonCompliant"
| project
    policyAssignmentName = properties.policyAssignmentName,
    policyDefinitionName = properties.policyDefinitionName,
    lowerCasePolicyDefinitionIdOfPolicyState = tolower(properties.policyDefinitionId),
    lowerCaseVmIdOfPolicyState = tolower(properties.resourceId)
| join kind = leftouter (
    PolicyResources
    | where type =~ "Microsoft.Authorization/policyDefinitions"
    | project lowerCasePolicyDefinitionId = tolower(id), policyDefinitionDisplayName = properties.displayName
    )
    on $left.lowerCasePolicyDefinitionIdOfPolicyState == $right.lowerCasePolicyDefinitionId
| project policyAssignmentName, policyDefinitionName, policyDefinitionDisplayName, lowerCaseVmIdOfPolicyState
| join kind = leftouter (
    Resources
    | where type =~ "Microsoft.Compute/virtualMachines"
    | project vmName = name, vmId = id, vmTags = tags, lowerCaseVmId = tolower(id)
    )
    on $left.lowerCaseVmIdOfPolicyState == $right.lowerCaseVmId
| extend
    param1 = strcat("AssignmentName: ", policyAssignmentName),
    param2 = strcat("DefinitionName: ", policyDefinitionDisplayName),  // Align to Azure portal's term.
    param3 = strcat("DefinitionID: ", policyDefinitionName)            // Align to Azure portal's term.
| project recommendationId = "vm-18", name = vmName, id = vmId, tags = vmTags, param1, param2, param3

Monitorowanie

Włączanie Szczegółowe informacje maszyny wirtualnej

Włącz Szczegółowe informacje maszyny wirtualnej, aby uzyskać lepszy wgląd w kondycję i wydajność maszyny wirtualnej. Maszyna wirtualna Szczegółowe informacje zawiera informacje na temat wydajności i kondycji maszyn wirtualnych oraz zestawów skalowania maszyn wirtualnych przez monitorowanie uruchomionych procesów i zależności od innych zasobów. Szczegółowe informacje maszyn wirtualnych mogą pomóc zapewnić przewidywalną wydajność i dostępność ważnych aplikacji, identyfikując wąskie gardła wydajności i problemy z siecią. Szczegółowe informacje może również pomóc w zrozumieniu, czy problem jest związany z innymi zależnościami.

// Azure Resource Graph Query
// Check for VMs without Azure Monitoring Agent extension installed, missing Data Collection Rule or Data Collection Rule without performance enabled.
Resources
| where type == 'microsoft.compute/virtualmachines'
| project idVm = tolower(id), name, tags
| join kind=leftouter (
    InsightsResources
    | where type =~ "Microsoft.Insights/dataCollectionRuleAssociations" and id has "Microsoft.Compute/virtualMachines"
    | project idDcr = tolower(properties.dataCollectionRuleId), idVmDcr = tolower(substring(id, 0, indexof(id, "/providers/Microsoft.Insights/dataCollectionRuleAssociations/"))))
on $left.idVm == $right.idVmDcr
| join kind=leftouter (
    Resources
    | where type =~ "Microsoft.Insights/dataCollectionRules"
    | extend
        isPerformanceEnabled = iif(properties.dataSources.performanceCounters contains "Microsoft-InsightsMetrics" and properties.dataFlows contains "Microsoft-InsightsMetrics", true, false),
        isMapEnabled = iif(properties.dataSources.extensions contains "Microsoft-ServiceMap" and properties.dataSources.extensions contains "DependencyAgent" and properties.dataFlows contains "Microsoft-ServiceMap", true, false)//,
    | where isPerformanceEnabled or isMapEnabled
    | project dcrName = name, isPerformanceEnabled, isMapEnabled, idDcr = tolower(id))
on $left.idDcr == $right.idDcr
| join kind=leftouter (
    Resources
        | where type == 'microsoft.compute/virtualmachines/extensions' and (name contains 'AzureMonitorWindowsAgent' or name contains 'AzureMonitorLinuxAgent')
        | extend idVmExtension = tolower(substring(id, 0, indexof(id, '/extensions'))), extensionName = name)
on $left.idVm == $right.idVmExtension
| where isPerformanceEnabled != 1 or (extensionName != 'AzureMonitorWindowsAgent' and extensionName != 'AzureMonitorLinuxAgent')
| project recommendationId = "vm-20", name, id = idVm, tags, param1 = strcat('MonitoringExtension:', extensionName), param2 = strcat('DataCollectionRuleId:', idDcr), param3 = strcat('isPerformanceEnabled:', isPerformanceEnabled)

Konfigurowanie ustawień diagnostycznych dla wszystkich zasobów platformy Azure

Metryki platformy są wysyłane automatycznie do metryk usługi Azure Monitor domyślnie i bez konfiguracji. Dzienniki platformy zawierają szczegółowe informacje diagnostyczne i inspekcji dla zasobów platformy Azure oraz platformy Azure, od których zależą, i są jednym z następujących typów:

  • Dzienniki zasobów, które nie są zbierane, dopóki nie zostaną przekierowane do miejsca docelowego.
  • Dzienniki aktywności, które istnieją samodzielnie, ale mogą być kierowane do innych lokalizacji.

Każdy zasób platformy Azure wymaga własnego ustawienia diagnostycznego, które definiuje następujące kryteria:

  • Sources Typ danych metryk i dzienników do wysłania do miejsc docelowych zdefiniowanych w ustawieniu. Dostępne typy różnią się w zależności od typu zasobu.
  • Miejsca docelowe: co najmniej jedno miejsce docelowe do wysłania.

Jedno ustawienie diagnostyczne może definiować nie więcej niż jedno z miejsc docelowych. Jeśli chcesz wysłać dane do więcej niż jednego z określonego typu docelowego (na przykład dwóch różnych obszarów roboczych usługi Log Analytics), utwórz wiele ustawień. Każdy zasób może mieć maksymalnie pięć ustawień diagnostycznych.

Aby uzyskać więcej informacji, zobacz Ustawienia diagnostyczne w usłudze Azure Monitor.

// Azure Resource Graph Query
// Find all Virtual Machines without diagnostic settings enabled/with diagnostic settings enabled but not configured both performance counters and event logs/syslogs.
resources
| where type =~ "microsoft.compute/virtualmachines"
| project name, id, tags, lowerCaseVmId = tolower(id)
| join kind = leftouter (
    resources
    | where type =~ "Microsoft.Compute/virtualMachines/extensions" and properties.publisher =~ "Microsoft.Azure.Diagnostics"
    | project
        lowerCaseVmIdOfExtension = tolower(substring(id, 0, indexof(id, "/extensions/"))),
        extensionType = properties.type,
        provisioningState = properties.provisioningState,
        storageAccount = properties.settings.StorageAccount,
        // Windows
        wadPerfCounters = properties.settings.WadCfg.DiagnosticMonitorConfiguration.PerformanceCounters.PerformanceCounterConfiguration,
        wadEventLogs = properties.settings.WadCfg.DiagnosticMonitorConfiguration.WindowsEventLog,
        // Linux
        ladPerfCounters = properties.settings.ladCfg.diagnosticMonitorConfiguration.performanceCounters.performanceCounterConfiguration,
        ladSyslog = properties.settings.ladCfg.diagnosticMonitorConfiguration.syslogEvents
    | extend
        // Windows
        isWadPerfCountersConfigured = iif(array_length(wadPerfCounters) > 0, true, false),
        isWadEventLogsConfigured = iif(isnotnull(wadEventLogs) and array_length(wadEventLogs.DataSource) > 0, true, false),
        // Linux
        isLadPerfCountersConfigured = iif(array_length(ladPerfCounters) > 0, true, false),
        isLadSyslogConfigured = isnotnull(ladSyslog)
    | project
        lowerCaseVmIdOfExtension,
        extensionType,
        provisioningState,
        storageAccount,
        isPerfCountersConfigured = case(extensionType =~ "IaaSDiagnostics", isWadPerfCountersConfigured, extensionType =~ "LinuxDiagnostic", isLadPerfCountersConfigured, false),
        isEventLogsConfigured = case(extensionType =~ "IaaSDiagnostics", isWadEventLogsConfigured, extensionType =~ "LinuxDiagnostic", isLadSyslogConfigured, false)
    )
    on $left.lowerCaseVmId == $right.lowerCaseVmIdOfExtension
| where isempty(lowerCaseVmIdOfExtension) or provisioningState !~ "Succeeded" or not(isPerfCountersConfigured and isEventLogsConfigured)
| extend
    param1 = strcat("DiagnosticSetting: ", iif(isnotnull(extensionType), strcat("Enabled, partially configured (", extensionType, ")"), "Not enabled")),
    param2 = strcat("ProvisioningState: ", iif(isnotnull(provisioningState), provisioningState, "n/a")),
    param3 = strcat("storageAccount: ", iif(isnotnull(storageAccount), storageAccount, "n/a")),
    param4 = strcat("PerformanceCounters: ", case(isnull(isPerfCountersConfigured), "n/a", isPerfCountersConfigured, "Configured", "Not configured")),
    param5 = strcat("EventLogs/Syslogs: ", case(isnull(isEventLogsConfigured), "n/a", isEventLogsConfigured, "Configured", "Not configured"))
| project recommendationId = "vm-21", name, id, tags, param1, param2, param3, param4, param5

Obsługa strefy dostępności

Strefy dostępności platformy Azure to co najmniej trzy fizycznie oddzielne grupy centrów danych w każdym regionie świadczenia usługi Azure. Centra danych w każdej strefie są wyposażone w niezależną infrastrukturę zasilania, chłodzenia i sieci. W przypadku awarii strefy lokalnej strefy strefy dostępności są zaprojektowane tak, aby w przypadku wystąpienia problemu z jedną strefą usługi regionalne, pojemność i wysoka dostępność są obsługiwane przez pozostałe dwie strefy.

Awarie mogą wahać się od awarii oprogramowania i sprzętu po zdarzenia, takie jak trzęsienia ziemi, powodzie i pożary. Tolerancja awarii jest osiągana z nadmiarowością i logiczną izolacją usług platformy Azure. Aby uzyskać bardziej szczegółowe informacje na temat stref dostępności na platformie Azure, zobacz Regiony i strefy dostępności.

Usługi z obsługą stref dostępności platformy Azure zostały zaprojektowane w celu zapewnienia odpowiedniego poziomu niezawodności i elastyczności. Można je skonfigurować na dwa sposoby. Mogą być strefowo nadmiarowe, z automatyczną replikacją między strefami lub strefami, z wystąpieniami przypiętymi do określonej strefy. Możesz również połączyć te podejścia. Aby uzyskać więcej informacji na temat architektury strefowej i strefowo nadmiarowej, zobacz Rekomendacje na potrzeby korzystania ze stref dostępności i regionów.

Maszyny wirtualne obsługują strefy dostępności z trzema strefami dostępności na obsługiwany region platformy Azure, a także strefowo nadmiarowymi i strefowymi. Aby uzyskać więcej informacji, zobacz obsługa stref dostępności. Klient jest odpowiedzialny za konfigurowanie i migrowanie maszyn wirtualnych pod kątem dostępności.

Aby dowiedzieć się więcej na temat opcji gotowości strefy dostępności, zobacz:

Wymagania wstępne

  • Jednostki SKU maszyny wirtualnej muszą być dostępne w różnych strefach w danym regionie. Aby sprawdzić, które regiony obsługują strefy dostępności, zobacz listę obsługiwanych regionów.

  • Jednostki SKU maszyny wirtualnej muszą być dostępne w różnych strefach w Twoim regionie. Aby sprawdzić dostępność jednostki SKU maszyny wirtualnej, użyj jednej z następujących metod:

Ulepszenia umowy SLA

Ponieważ strefy dostępności są fizycznie oddzielone i zapewniają różne źródła zasilania, sieć i chłodzenie, umowy SLA (umowy dotyczące poziomu usług) zwiększają się. Aby uzyskać więcej informacji, zobacz Virtual Machines — umowa SLA.

Tworzenie zasobu z włączonymi strefami dostępności

Rozpocznij od utworzenia maszyny wirtualnej z włączoną strefą dostępności z poniższych opcji wdrażania:

Obsługa trybu failover strefowego

Maszyny wirtualne można skonfigurować tak, aby przełączyły się w tryb failover do innej strefy przy użyciu usługi Site Recovery. Aby uzyskać więcej informacji, zobacz Site Recovery.

Odporność na uszkodzenia

Maszyny wirtualne mogą przejść w tryb failover na inny serwer w klastrze, a system operacyjny maszyny wirtualnej zostanie uruchomiony ponownie na nowym serwerze. Należy zapoznać się z procesem przechodzenia w tryb failover na potrzeby odzyskiwania po awarii, zbierania maszyn wirtualnych w planowaniu odzyskiwania i uruchamiania próbnego odzyskiwania po awarii, aby zapewnić pomyślne rozwiązanie odporności na uszkodzenia.

Aby uzyskać więcej informacji, zobacz procesy odzyskiwania lokacji.

Środowisko strefowe w dół

Podczas awarii całej strefy należy oczekiwać krótkiego obniżenia wydajności, dopóki usługa maszyny wirtualnej nie zrównoważy bazowej pojemności, aby dostosować się do stref w dobrej kondycji. Samonaprawianie nie zależy od przywrócenia strefy; Oczekuje się, że stan samonaprawiania usługi zarządzanej przez firmę Microsoft rekompensuje utratę strefy przy użyciu pojemności z innych stref.

Należy również przygotować się na możliwość wystąpienia awarii całego regionu. Jeśli w całym regionie wystąpią przerwy w działaniu usługi, lokalnie nadmiarowe kopie danych będą tymczasowo niedostępne. Jeśli włączono replikację geograficzną, trzy inne kopie obiektów blob i tabel usługi Azure Storage są przechowywane w innym regionie. W przypadku całkowitej awarii regionalnej lub awarii, w której nie można odzyskać regionu podstawowego, platforma Azure ponownie mapuje wszystkie wpisy DNS do regionu replikowanego geograficznie.

Przygotowywanie i odzyskiwanie w strefie awarii

Poniżej przedstawiono wskazówki dotyczące maszyn wirtualnych platformy Azure podczas przerw w działaniu usługi w całym regionie, w którym wdrożono aplikację maszyny wirtualnej platformy Azure:

Projekt o małych opóźnieniach

Opcje między regionami (region pomocniczy), Subskrypcja między subskrypcjami (wersja zapoznawcza) i Między strefami (wersja zapoznawcza) są dostępne podczas projektowania rozwiązania maszyny wirtualnej o małych opóźnieniach. Aby uzyskać więcej informacji na temat tych opcji, zobacz obsługiwane metody przywracania.

Ważne

Rezygnacja z wdrożenia z obsługą stref pozwala zrezygnować z ochrony przed izolacją bazowych błędów. Korzystanie z jednostek SKU, które nie obsługują stref dostępności ani rezygnacji z konfiguracji strefy dostępności wymusza poleganie na zasobach, które nie przestrzegają umieszczania i oddzielania stref (w tym podstawowych zależności tych zasobów). Nie należy oczekiwać, że te zasoby przetrwają scenariusze w dół strefy. Rozwiązania korzystające z takich zasobów powinny definiować strategię odzyskiwania po awarii i konfigurować odzyskiwanie rozwiązania w innym regionie.

Sejf technik wdrażania

Jeśli zdecydujesz się na izolację stref dostępności, należy użyć bezpiecznych technik wdrażania dla kodu aplikacji i uaktualnień aplikacji. Oprócz konfigurowania usługi Azure Site Recovery i implementowania jednej z następujących technik bezpiecznego wdrażania maszyn wirtualnych:

Ponieważ firma Microsoft okresowo wykonuje aktualizacje planowanej konserwacji, mogą występować rzadkie wystąpienia, gdy te aktualizacje wymagają ponownego uruchomienia maszyny wirtualnej w celu zastosowania wymaganych aktualizacji do podstawowej infrastruktury. Aby dowiedzieć się więcej, zobacz zagadnienia dotyczące dostępności podczas zaplanowanej konserwacji.

Przed uaktualnieniem następnego zestawu węzłów w innej strefie należy wykonać następujące zadania:

Migrowanie do obsługi strefy dostępności

Aby dowiedzieć się, jak przeprowadzić migrację maszyny wirtualnej do obsługi stref dostępności, zobacz Migrowanie maszyn wirtualnych i zestawów skalowania maszyn wirtualnych do obsługi stref dostępności.

Odzyskiwanie po awarii między regionami i ciągłość działania

Odzyskiwanie po awarii dotyczy odzyskiwania po wystąpieniu zdarzeń o dużym wpływie, takich jak klęski żywiołowe lub nieudane wdrożenia, które powodują przestoje i utratę danych. Niezależnie od przyczyny najlepszym rozwiązaniem dla awarii jest dobrze zdefiniowany i przetestowany plan odzyskiwania po awarii oraz projekt aplikacji, który aktywnie obsługuje odzyskiwanie po awarii. Zanim zaczniesz myśleć o tworzeniu planu odzyskiwania po awarii, zobacz Rekomendacje na potrzeby projektowania strategii odzyskiwania po awarii.

Jeśli chodzi o odzyskiwanie po awarii, firma Microsoft korzysta z modelu wspólnej odpowiedzialności. W modelu wspólnej odpowiedzialności firma Microsoft zapewnia dostępność infrastruktury bazowej i usług platformy. Jednocześnie wiele usług platformy Azure nie replikuje automatycznie danych ani nie wraca z regionu, w którym wystąpił błąd, aby przeprowadzić replikację krzyżową do innego regionu z włączoną obsługą. W przypadku tych usług ponosisz odpowiedzialność za skonfigurowanie planu odzyskiwania po awarii, który działa dla obciążenia. Większość usług uruchamianych na platformie Azure jako usługa (PaaS) oferuje funkcje i wskazówki dotyczące obsługi odzyskiwania po awarii. Funkcje specyficzne dla usługi umożliwiają szybkie odzyskiwanie w celu ułatwienia opracowania planu odzyskiwania po awarii.

Przywracanie między regionami umożliwia przywracanie maszyn wirtualnych platformy Azure za pośrednictwem sparowanych regionów. Po przywróceniu między regionami można przywrócić wszystkie maszyny wirtualne platformy Azure dla wybranego punktu odzyskiwania, jeśli kopia zapasowa jest wykonywana w regionie pomocniczym. Aby uzyskać więcej informacji na temat przywracania między regionami, zapoznaj się z wpisem wiersza tabeli Między regionami w naszych opcjach przywracania.

Odzyskiwanie po awarii w lokalizacji geograficznej obejmującej wiele regionów

W przypadku zakłóceń usługi w całym regionie firma Microsoft pracuje pilnie, aby przywrócić usługę maszyny wirtualnej. Jednak nadal musisz polegać na innych strategiach tworzenia kopii zapasowych specyficznych dla aplikacji, aby osiągnąć najwyższy poziom dostępności. Aby uzyskać więcej informacji, zobacz sekcję Strategie danych na potrzeby odzyskiwania po awarii.

Wykrywanie, powiadamianie i zarządzanie awariami

Sprzęt lub infrastruktura fizyczna maszyny wirtualnej może nieoczekiwanie zakończyć się niepowodzeniem. Nieoczekiwane błędy mogą obejmować awarie sieci lokalnej, awarie dysku lokalnego lub inne awarie na poziomie stojaka. Po wykryciu platforma Azure automatycznie migruje (leczy) maszynę wirtualną do maszyny fizycznej w dobrej kondycji w tym samym centrum danych. Podczas wykonywania procedury naprawiania maszyny wirtualne doświadczają przestoju (ponownego rozruchu), a w niektórych przypadkach dochodzi do utraty dysku tymczasowego. Dołączone dyski systemu operacyjnego i danych są zawsze zachowywane.

Aby uzyskać bardziej szczegółowe informacje na temat przerw w działaniu usługi maszyny wirtualnej, zobacz Wskazówki dotyczące odzyskiwania po awarii.

Konfigurowanie odzyskiwania po awarii i wykrywania awarii

Podczas konfigurowania odzyskiwania po awarii dla maszyn wirtualnych zapoznaj się z tym, co zapewnia usługa Azure Site Recovery. Włącz odzyskiwanie po awarii dla maszyn wirtualnych przy użyciu poniższych metod:

Odzyskiwanie po awarii w lokalizacji geograficznej z jednym regionem

Dzięki konfiguracji odzyskiwania po awarii maszyny wirtualne platformy Azure są stale replikowane do innego regionu docelowego. Jeśli wystąpi awaria, możesz przejąć maszyny wirtualne w tryb failover do regionu pomocniczego i uzyskać do nich dostęp z tego miejsca.

Podczas replikowania maszyn wirtualnych platformy Azure przy użyciu usługi Site Recovery wszystkie dyski maszyn wirtualnych są stale replikowane do regionu docelowego asynchronicznie. Punkty odzyskiwania są tworzone co kilka minut, co daje cel punktu odzyskiwania (RPO) w ciągu kilku minut. Możesz przeprowadzić próbne odzyskiwanie po awarii tyle razy, ile chcesz, bez wpływu na aplikację produkcyjną lub trwającą replikację. Aby uzyskać więcej informacji, zobacz Uruchamianie próbnego odzyskiwania po awarii na platformie Azure.

Aby uzyskać więcej informacji, zobacz Składniki architektury i parowanie regionów maszyn wirtualnych platformy Azure.

Wydajność i proaktywna odporność odzyskiwania po awarii

Firma Microsoft i jej klienci działają w ramach modelu wspólnej odpowiedzialności. Wspólna odpowiedzialność oznacza, że w przypadku odzyskiwania po awarii z obsługą klienta (usług odpowiedzialnych za klienta) należy rozwiązać problem z odzyskiwaniem po awarii dla każdej wdrożonej i kontrolującej usługę. Aby zagwarantować, że odzyskiwanie jest aktywne, zawsze należy wstępnie wdrożyć pomocnicze, ponieważ nie ma gwarancji, że pojemność w czasie wpływu na osoby, które nie zostały wstępnie rozmieszczone.

W przypadku wdrażania maszyn wirtualnych można użyć trybu elastycznej aranżacji w zestawach skalowania maszyn wirtualnych. Wszystkie rozmiary maszyn wirtualnych mogą być używane w trybie elastycznej aranżacji. Elastyczny tryb orkiestracji oferuje również gwarancje wysokiej dostępności (do 1000 maszyn wirtualnych) przez rozłożenie maszyn wirtualnych w domenach błędów w regionie lub w strefie dostępności.

Następne kroki