Przewodnik rozwiązywania problemów z maszynami wirtualnymi z systemem Linux w usłudze Azure Disk Encryption

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Ten przewodnik jest przeznaczony dla specjalistów IT, analityków zabezpieczeń informacji i administratorów chmury, których organizacje używają usługi Azure Disk Encryption. Ten artykuł ułatwia rozwiązywanie problemów związanych z szyfrowaniem dysków.

Przed wykonaniem dowolnego z poniższych kroków najpierw upewnij się, że maszyny wirtualne, które próbujesz zaszyfrować, należą do obsługiwanych rozmiarów maszyn wirtualnych i systemów operacyjnych oraz że zostały spełnione wszystkie wymagania wstępne:

Rozwiązywanie problemów z szyfrowaniem dysków systemu operacyjnego Linux

Szyfrowanie dysków systemu operacyjnego Linux musi odinstalować dysk systemu operacyjnego przed uruchomieniem go przez proces szyfrowania pełnego dysku. Jeśli nie można odinstalować dysku, komunikat o błędzie "Nie można odinstalować po ..." prawdopodobnie wystąpi.

Ten błąd może wystąpić, gdy na maszynie wirtualnej jest podejmowana próba szyfrowania dysku systemu operacyjnego ze środowiskiem zmienionym z obsługiwanego obrazu galerii magazynowej. Odchylenia od obsługiwanego obrazu mogą zakłócać możliwość odinstalowania dysku systemu operacyjnego przez rozszerzenie. Przykłady odchyleń mogą obejmować następujące elementy:

  • Niestandardowe obrazy nie są już zgodne z obsługiwanym systemem plików ani schematem partycjonowania.
  • Duże aplikacje, takie jak SAP, MongoDB, Apache Cassandra i Docker, nie są obsługiwane podczas ich instalowania i uruchamiania w systemie operacyjnym przed szyfrowaniem. Usługa Azure Disk Encryption nie może bezpiecznie zamknąć tych procesów zgodnie z wymaganiami podczas przygotowywania dysku systemu operacyjnego na potrzeby szyfrowania dysków. Jeśli nadal istnieją aktywne procesy przechowujące otwarte uchwyty plików na dysku systemu operacyjnego, nie można odinstalować dysku systemu operacyjnego, co powoduje niepowodzenie szyfrowania dysku systemu operacyjnego.
  • Niestandardowe skrypty uruchamiane w bliskiej odległości od włączonego szyfrowania lub jeśli podczas procesu szyfrowania są wprowadzane jakiekolwiek inne zmiany na maszynie wirtualnej. Ten konflikt może wystąpić, gdy szablon usługi Azure Resource Manager definiuje wiele rozszerzeń do wykonania jednocześnie lub gdy rozszerzenie niestandardowego skryptu lub inne akcje są uruchamiane jednocześnie do szyfrowania dysku. Serializowanie i izolowanie takich kroków może rozwiązać problem.
  • Zabezpieczenia Rozszerzone systemy Linux (SELinux) nie zostały wyłączone przed włączeniem szyfrowania, więc krok odinstalowywany kończy się niepowodzeniem. SeLinux można ponownie stosować po zakończeniu szyfrowania.
  • Dysk systemu operacyjnego używa schematu Menedżera woluminów logicznych (LVM). Chociaż dostępna jest ograniczona obsługa dysku danych LVM, dysk systemu operacyjnego LVM nie jest dostępny.
  • Minimalne wymagania dotyczące pamięci nie są spełnione (sugerowane jest użycie 7 GB dla szyfrowania dysków systemu operacyjnego).
  • Dyski danych są rekursywnie instalowane w katalogu /mnt/ lub nawzajem (na przykład /mnt/data1, /mnt/data2, /data3 + /data3/data4).

Aktualizowanie domyślnego jądra dla systemu Ubuntu 14.04 LTS

Obraz Ubuntu 14.04 LTS jest dostarczany z domyślną wersją jądra 4.4. Ta wersja jądra ma znany problem, w którym funkcja Out of Memory Killer nieprawidłowo kończy polecenie dd podczas procesu szyfrowania systemu operacyjnego. Ta usterka została usunięta w najnowszym jądrze systemu Linux dostrojonym na platformie Azure. Aby uniknąć tego błędu, przed włączeniem szyfrowania na obrazie zaktualizuj jądro dostrojone na platformę Azure w wersji 4.15 lub nowszej przy użyciu następujących poleceń:

sudo apt-get update
sudo apt-get install linux-azure
sudo reboot

Po ponownym uruchomieniu maszyny wirtualnej w nowym jądrze można potwierdzić nową wersję jądra przy użyciu:

uname -a

Aktualizowanie agenta maszyny wirtualnej platformy Azure i wersji rozszerzeń

Operacje usługi Azure Disk Encryption mogą zakończyć się niepowodzeniem na obrazach maszyn wirtualnych przy użyciu nieobsługiwanych wersji agenta maszyny wirtualnej platformy Azure. Przed włączeniem szyfrowania należy zaktualizować obrazy systemu Linux z wersjami starszymi niż 2.2.38. Aby uzyskać więcej informacji, zobacz Jak zaktualizować agenta systemu Linux platformy Azure na maszynie wirtualnej i minimalną obsługę wersji agentów maszyn wirtualnych na platformie Azure.

Wymagana jest poprawna wersja rozszerzenia agenta gościa Microsoft.Azure.Security.AzureDiskEncryption Lub Microsoft.Azure.Security.AzureDiskEncryptionForLinux. Wersje rozszerzeń są obsługiwane i aktualizowane automatycznie przez platformę, gdy wymagania wstępne agenta maszyny wirtualnej platformy Azure są spełnione, a obsługiwana wersja agenta maszyny wirtualnej jest używana.

Rozszerzenie Microsoft.OSTCExtensions.AzureDiskEncryptionForLinux zostało przestarzałe i nie jest już obsługiwane.

Nie można zaszyfrować dysków z systemem Linux

W niektórych przypadkach szyfrowanie dysków z systemem Linux wydaje się być zablokowane w pozycji "Uruchomiono szyfrowanie dysków systemu operacyjnego", a protokół SSH jest wyłączony. Proces szyfrowania może potrwać od 3 do 16 godzin na obrazie galerii akcji. Jeśli dodawane są dyski danych o wielu terabajtach, proces może potrwać kilka dni.

Sekwencja szyfrowania dysków systemu operacyjnego Linux tymczasowo odinstalowuje dysk systemu operacyjnego. Następnie wykonuje szyfrowanie bloku po bloku całego dysku systemu operacyjnego, zanim odinstalowuje go w stanie zaszyfrowanym. Szyfrowanie dysków z systemem Linux nie zezwala na współbieżne użycie maszyny wirtualnej, gdy szyfrowanie jest w toku. Charakterystyki wydajności maszyny wirtualnej mogą mieć znaczącą różnicę w czasie wymaganym do ukończenia szyfrowania. Te cechy obejmują rozmiar dysku i to, czy konto magazynu jest magazynem w warstwie Standardowa, czy Premium (SSD).

Podczas szyfrowania dysku systemu operacyjnego maszyna wirtualna wprowadza stan obsługi i wyłącza protokół SSH, aby zapobiec wszelkim przerwom w trwającym procesie. Aby sprawdzić stan szyfrowania, użyj polecenia Azure PowerShell Get-AzVmDiskEncryptionStatus i sprawdź pole ProgressMessage. Komunikat ProgressMessage będzie zgłaszać serię stanów, ponieważ dane i dyski systemu operacyjnego są szyfrowane:

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings :
ProgressMessage            : Transitioning

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Encryption succeeded for data volumes

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Provisioning succeeded

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : EncryptionInProgress
DataVolumesEncrypted       : EncryptionInProgress
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : OS disk encryption started

Komunikat ProgressMessage pozostanie w szyfrowaniu dysku systemu operacyjnego uruchomionym w większości procesu szyfrowania. Po zakończeniu i pomyślnym szyfrowaniu funkcja ProgressMessage zwróci:

PS > Get-AzVMDiskEncryptionStatus -ResourceGroupName "MyResourceGroup" -VMName "myVM"

OsVolumeEncrypted          : Encrypted
DataVolumesEncrypted       : NotMounted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : Encryption succeeded for all volumes

Po udostępnieniu tego komunikatu oczekuje się, że zaszyfrowany dysk systemu operacyjnego będzie gotowy do użycia, a maszyna wirtualna będzie gotowa do ponownego użycia.

Jeśli informacje o rozruchu, komunikat o postępie lub błąd zgłasza, że szyfrowanie systemu operacyjnego nie powiodło się w trakcie tego procesu, przywróć maszynę wirtualną do migawki lub kopii zapasowej wykonanej bezpośrednio przed szyfrowaniem. Przykładem komunikatu jest błąd "nie można odinstalować" opisany w tym przewodniku.

Przed ponownym wdrożeniem szyfrowania przewartościuj cechy maszyny wirtualnej i upewnij się, że wszystkie wymagania wstępne zostały spełnione.

Rozwiązywanie problemów z usługą Azure Disk Encryption za zaporą

Zobacz Szyfrowanie dysków w izolowanej sieci

Rozwiązywanie problemów ze stanem szyfrowania

Portal może wyświetlać dysk jako zaszyfrowany nawet po niezaszyfrowanym dysku na maszynie wirtualnej. Może się to zdarzyć, gdy polecenia niskiego poziomu są używane do bezpośredniego odszyfrowania dysku z poziomu maszyny wirtualnej, zamiast używania poleceń zarządzania usługą Azure Disk Encryption wyższego poziomu. Polecenia wyższego poziomu nie tylko odszyfrowywują dysk z maszyny wirtualnej, ale poza maszyną wirtualną aktualizują również ważne ustawienia szyfrowania na poziomie platformy i ustawienia rozszerzenia skojarzone z maszyną wirtualną. Jeśli nie są one wyrównane, platforma nie będzie mogła prawidłowo zgłaszać stanu szyfrowania ani aprowizować maszyny wirtualnej.

Aby wyłączyć usługę Azure Disk Encryption przy użyciu programu PowerShell, użyj polecenia Disable-AzVMDiskEncryption, a następnie polecenie Remove-AzVMDiskEncryptionExtension. Uruchomienie Remove-AzVMDiskEncryptionExtension przed wyłączeniem szyfrowania zakończy się niepowodzeniem.

Aby wyłączyć usługę Azure Disk Encryption za pomocą interfejsu wiersza polecenia, użyj polecenia az vm encryption disable.

Następne kroki

W tym dokumencie przedstawiono więcej informacji o niektórych typowych problemach w usłudze Azure Disk Encryption i sposobach rozwiązywania tych problemów. Aby uzyskać więcej informacji na temat tej usługi i jej możliwości, zobacz następujące artykuły: