Руководство по устранению неполадок с Шифрованием дисков Azure для виртуальных машин Linux

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

Это руководство предназначено для ИТ-специалистов, аналитиков в сфере информационной безопасности и администраторов облака, организации которых используют шифрование дисков Azure. Здесь также содержатся рекомендации по устранению неполадок, связанных с шифрованием дисков.

Перед выполнением описанных ниже действий убедитесь, что виртуальные машины, которые вы пытаетесь зашифровать, имеют поддерживаемые размеры и операционные системы и что выполнены все предварительные требования:

Устранение неполадок шифрования диска ОС Linux

Для шифрования диска операционной системы Linux нужно отключить диск операционной системы перед запуском процесса полного шифрования. Если это невозможно, вероятно, отобразится сообщение об ошибке.

Эта ошибка может возникнуть при попытке шифрования диска ОС на виртуальной машине, среда которой отличается от поддерживаемого образа из коллекции. Отклонения от поддерживаемого образа могут мешать предоставляемой расширением возможности отключать диск ОС. Примеры отклонений могут включать в себя следующее:

  • Настроенные образы, несоответствующие поддерживаемой файловой системе или схеме секционирования.
  • Большие приложения, такие как SAP, MongoDB, Apache Cassandra или Docker, не поддерживаются, если они устанавливаются и выполняются в ОС перед шифрованием. Служба шифрования дисков Azure не может безопасно завершить эти процессы (это необходимо сделать при подготовке диска ОС к шифрованию). Если на диске ОС останутся активные процессы, не позволяющие закрыть дескрипторы файлов, диск ОС будет невозможно отключить, что, в свою очередь, приведет к сбою шифрования этого диска.
  • Настраиваемые скрипты, выполняющиеся практически одновременно с включением шифрования или при внесении каких-либо других изменений на виртуальной машине во время процесса шифрования. Это может произойти, если шаблон Azure Resource Manager определяет несколько расширений для одновременного выполнения, или когда настраиваемое расширение скрипта или другое действие выполняются одновременно с шифрованием диска. Сериализация и изоляция таких шагов может помочь решить проблему.
  • Если модуль Security Enhanced Linux (SELinux) не был отключен перед включением шифрования, отключение диска завершается ошибкой. SELinux можно будет снова включить после завершения шифрования.
  • Диск операционной системы использует схему диспетчера логических томов. При этом доступна ограниченная поддержка диска данных диспетчера логических томов, но диск операционной системы диспетчера логических томов не поддерживается.
  • Минимальные требования к памяти не выполняются (для шифрования диска операционной системы рекомендуется 7 ГБ памяти).
  • Диски данных рекурсивно подключены в каталоге /mnt/ или любом другом (например, /mnt/data1, /mnt/data2, /data3 + /data3/data4).

Обновление ядра по умолчанию для Ubuntu 14.04 LTS

Образ Ubuntu 14.04 LTS поставляется с версией ядра 4.4 по умолчанию. В этой версии ядра существует известная проблема, в которой компонент, призванный решать проблему недостатка памяти, неправильно завершает команду dd во время процесса шифрования ОС. Эта ошибка исправлена в самой последней версии настроенного ядра Linux Azure. Чтобы избежать этой ошибки, перед включением шифрования в образе обновите настройки ядра до версии Azure 4.15 или более поздней с помощью следующих команд.

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

После перезапуска виртуальной машины в новое ядро новую версию ядра можете подтвердить с помощью следующей команды.

uname -a

Обновление версий для агента и расширений виртуальной машины Azure

Операции Шифрования дисков Azure могут завершаться сбоем на виртуальных машинах, которые основаны на образах с неподдерживаемой версией агента виртуальной машины Azure. Образы Linux с версиями агента старше 2.2.38 необходимо обновить, прежде чем включать шифрование. Дополнительные сведения см. в статье Как обновить агент Azure Linux на виртуальной машине и статье Минимальные поддерживаемые версии для агентов виртуальных машин в Azure.

Также требуется правильная версия расширения гостевого агента Microsoft.Azure.Security.AzureDiskEncryption или Microsoft.Azure.Security.AzureDiskEncryptionForLinux. Версии расширений поддерживаются и обновляются платформой автоматически, если выполняются предварительные требования для агента виртуальной машины Azure и используется поддерживаемая версия агента виртуальной машины.

Расширение Microsoft.OSTCExtensions.AzureDiskEncryptionForLinux объявлено нерекомендуемым и больше не поддерживается.

Сбой шифрования дисков Linux

В некоторых случаях шифрование диска зависает на этапе "OS disk encryption started" (Начато шифрование диска ОС) и SSH отключается. При выполнении в готовом образе из коллекции этот процесс может занять от 3 до 16 часов. Если добавляется диск данных объемом в несколько терабайт, процесс может занять несколько дней.

Последовательность шифрования диска операционной системы Linux временно отключает диск операционной системы. Затем выполняется блочное шифрование всего диска операционной системы перед его повторным подключением в зашифрованном состоянии. Шифрование дисков в Linux не позволяет использовать виртуальную машину для обычной работы, пока выполняется шифрование. Характеристики производительности виртуальной машины могут существенно повлиять на время, необходимое для завершения шифрования. К таким характеристикам относится размер диска и класс учетной записи хранения ("Стандартный" или "Премиум" (SSD)).

Во время шифрования диска ОС виртуальная машина переходит в состояние обслуживания и отключает SSH, чтобы предотвратить нарушение текущего процесса. Чтобы проверить состояние шифрования, воспользуйтесь командой Azure PowerShell Get-AzVmDiskEncryptionStatus и проверьте значение в поле ProgressMessage. ProgressMessage возвращает поочередно несколько разных состояний по мере выполнения шифрования данных и ОС:

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

На протяжении большей части процесса ProgressMessage будет сохранять значение OS disk encryption started (Шифрование диска ОС начато). Когда шифрование успешно завершится, ProgressMessage возвратит следующее:

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

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

Когда это сообщение появится, предполагается, что зашифрованный диск ОС и виртуальная машина готовы к использованию.

Если в ходе этого процесса будут получены данные загрузки, сообщение о ходе выполнения или ошибки, свидетельствующие о сбое шифрования операционной системы, следует восстановить виртуальную машину до моментального снимка или резервной копии, созданных непосредственно перед началом шифрования. Примером такого сообщения является ошибка сбоя отключения, описанная в этом руководстве.

Перед следующей попыткой повторно оцените характеристики виртуальной машины и убедитесь, что выполнены все необходимые предварительные требования.

Устранение неполадок шифрования диска Azure в связи с брандмауэром

Подробные сведения см. в статье Шифрование дисков в изолированной сети.

Устранение неполадок с состоянием шифрования

Портал может отображать диск как зашифрованный даже после того, как он был расшифрован в виртуальной машине. Это может произойти, если команды низкого уровня используются для непосредственного дешифрования диска в виртуальной машине вместо использования команд управления шифрованием дисков Azure более высокого уровня. Команды более высокого уровня не только расшифровывают диск в виртуальной машине, но и за пределами виртуальной машины обновляют важные параметры шифрования уровня платформы и параметры расширения, связанные с виртуальной машиной. Если не поддерживать их согласованность, платформа не сможет сообщить о состоянии шифрования или правильно подготовить к работе виртуальную машину.

Чтобы отключить шифрование дисков Azure с помощью PowerShell, используйте Disable-AzVMDiskEncryption, а затем Remove-AzVMDiskEncryptionExtension. Выполнение команды Remove-AzVMDiskEncryptionExtension до отключения шифрования невозможно.

Чтобы отключить шифрование дисков Azure с помощью интерфейса командной строки, используйте az vm encryption disable.

Дальнейшие действия

В этом документе вы узнали о некоторых распространенных проблемах в шифровании дисков Azure и их устранении. Дополнительные сведения об этой службе и ее возможностях см. в статьях: