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
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:
- Zobacz opcje dostępności dla maszyn wirtualnych
- Przeglądanie obsługi usług i regionów strefy dostępności
- Migrowanie istniejących maszyn wirtualnych do stref dostępności
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:
- Użyj programu PowerShell, aby sprawdzić dostępność jednostki SKU maszyny wirtualnej.
- Użyj interfejsu wiersza polecenia platformy Azure, aby sprawdzić dostępność jednostki SKU maszyny wirtualnej.
- Przejdź do pozycji Podstawowe usługi.
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:
- Konfigurowanie usługi Azure Site Recovery dla maszyn wirtualnych
- Sprawdź stan pulpitu nawigacyjnego usługi Azure Service Health, jeśli usługa Azure Site Recovery nie została skonfigurowana
- Zapoznaj się ze sposobem działania usługi Azure Backup dla maszyn wirtualnych
- Zobacz macierz obsługi kopii zapasowych maszyn wirtualnych platformy Azure
- Określanie opcji i scenariusza przywracania maszyny wirtualnej najlepiej sprawdza się w danym środowisku
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:
- Sprawdź pulpit nawigacyjny usługi Azure Service Health pod kątem stanu usługi maszyn wirtualnych dla oczekiwanych regionów.
- Upewnij się, że na maszynach wirtualnych włączono replikację .
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.
- Przenoszenie maszyny wirtualnej do innej subskrypcji lub grupy zasobów
- Azure Resource Mover
- Przenoszenie maszyn wirtualnych platformy Azure do stref dostępności
- Przenoszenie zasobów konfiguracji konserwacji regionu
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:
- Konfigurowanie odzyskiwania po awarii w regionie pomocniczym platformy Azure dla maszyny wirtualnej platformy Azure
- Tworzenie magazynu usługi Recovery Services
- Włączanie odzyskiwania po awarii dla maszyn wirtualnych z systemem Linux
- Włączanie odzyskiwania po awarii dla maszyn wirtualnych z systemem Windows
- Przełączanie maszyn wirtualnych w tryb failover do innego regionu
- Przełączanie maszyn wirtualnych w tryb failover do regionu podstawowego
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
- Dobrze zaprojektowana struktura dla maszyn wirtualnych
- Architektura odzyskiwania po awarii z platformy Azure do platformy Azure
- Przyspieszona sieć przy użyciu odzyskiwania po awarii maszyny wirtualnej platformy Azure
- Usługa Express Route z odzyskiwaniem po awarii maszyny wirtualnej platformy Azure
- Virtual Machine Scale Sets
- Niezawodność na platformie Azure