Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Шифрование дисков Azure для виртуальных машин и масштабируемых наборов виртуальных машин будет прекращено 15 сентября 2028 г. Новые клиенты должны использовать шифрование на узле для всех новых виртуальных машин. Существующие клиенты должны планировать перенос текущих виртуальных машин с поддержкой ADE в шифрование на узле до даты выхода на пенсию, чтобы избежать нарушения работы службы. См. статью "Миграция из шифрования дисков Azure в шифрование на узле".
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
Эта статья представляет собой пошаговый процесс для выполнения управления логическими томами (LVM) и RAID на зашифрованных устройствах. Процесс применяется к следующим средам:
- Дистрибутивы Linux
- RHEL 7.6+
- Ubuntu 18.04+
- SUSE 12+
- Однопроходное расширение шифрования дисков Azure
- Расширение шифрования дисков Azure с двойным проходом
Сценарии
Процедуры, описанные в этой статье, поддерживают следующие сценарии:
- Настройте LVM поверх зашифрованных устройств (LVM-on-crypt)
- Настройка RAID на основе зашифрованных устройств (RAID-on-crypt)
После шифрования базового устройства или устройств можно создать структуры LVM или RAID поверх этого зашифрованного слоя.
Физические тома (PV) создаются поверх зашифрованного слоя. Физические тома используются для создания группы томов. Вы создаете тома и добавляете необходимые записи в /etc/fstab.
Аналогичным образом устройство RAID создается на вершине зашифрованного слоя на дисках. Файловая система создается поверх устройства RAID и добавляется в /etc/fstab как обычное устройство.
Соображения
Рекомендуется использовать lvM-on-crypt. RAID — это параметр, когда не удается использовать LVM из-за определенных ограничений приложения или среды.
Вы будете использовать параметр EncryptFormatAll . Дополнительные сведения об этом параметре см. в разделе "Использование функции EncryptFormatAll" для дисков данных на виртуальных машинах Linux.
Хотя этот метод можно использовать при шифровании ОС, мы просто шифруем диски данных здесь.
В процедурах предполагается, что вы уже изучили предварительные требования в сценариях шифрования дисков Azure на виртуальных машинах Linux и в кратком руководстве. Создание и шифрование виртуальной машины Linux с помощью Azure CLI.
Двухпроходная версия шифрования дисков Azure устаревает и больше не должна использоваться для новых операций шифрования.
Общие действия
При использовании конфигураций "on-crypt" используйте процесс, описанный в следующих процедурах.
Замечание
В этой статье используются переменные. Замените соответствующие значения.
Развертывание виртуальной машины
Следующие команды являются необязательными, но мы рекомендуем применить их к только что развернутой виртуальной машине.
PowerShell.
New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose
Azure CLI:
az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table
Подключение дисков к виртуальной машине
Повторите следующие команды для $N количества новых дисков, которые требуется подключить к виртуальной машине.
PowerShell.
$storageType = 'Standard_LRS'
$dataDiskName = ${VMNAME} + '_datadisk0'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $LOCATION -CreateOption Empty -DiskSizeGB 5
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName ${RGNAME}
$vm = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 0
Update-AzVM -VM ${VM} -ResourceGroupName ${RGNAME}
Azure CLI:
az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table
Убедитесь, что диски подключены к виртуальной машине
PowerShell.
$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB
Azure CLI:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
Портал:
ОС:
lsblk
Настройка шифрования дисков
Эта конфигурация выполняется на уровне операционной системы. Соответствующие диски настроены для традиционного шифрования с помощью шифрования дисков Azure:
- Файловые системы создаются на вершине дисков.
- Для подключения файловой системы создаются временные точки подключения.
- Файловые системы описаны в /etc/fstab, чтобы подключаться во время загрузки.
Проверьте букву устройства, назначенную новым дискам. В этом примере мы используем четыре диска данных.
lsblk
Создание файловой системы на вершине каждого диска
Эта команда циклично создаёт файловую систему ext4 на каждом диске, определённом в секции "in" цикла "for".
for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash
Найдите универсальный уникальный идентификатор (UUID) созданных файловых систем, создайте временную папку, добавьте соответствующие записи в /etc/fstab и подключите все файловые системы.
Эта команда также выполняет итерацию по каждому диску, указанному в части "in" цикла "for".
for disk in c d e f; do diskuuid="$(blkid -s UUID -o value /dev/sd${disk})"; \
mkdir /tempdata${disk}; \
echo "UUID=${diskuuid} /tempdata${disk} ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done
Убедитесь, что диски подключены правильно
lsblk
Кроме того, убедитесь, что диски настроены:
cat /etc/fstab
Шифрование дисков данных
PowerShell с помощью ключа шифрования ключей (KEK):
$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;
Использование Azure CLI с помощью KEK:
az vm encryption enable \
--resource-group ${RGNAME} \
--name ${VMNAME} \
--disk-encryption-keyvault ${KEYVAULTNAME} \
--key-encryption-key ${KEYNAME} \
--key-encryption-keyvault ${KEYVAULTNAME} \
--volume-type "DATA" \
--encrypt-format-all \
-o table
Проверка состояния шифрования
Перейдите к следующему шагу, только если все диски шифруются.
PowerShell.
Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
Портал:
Уровень ОС:
lsblk
Расширение добавит файловые системы в /var/lib/azure_disk_encryption_config/azure_crypt_mount (старое шифрование) или в /etc/crypttab (новые шифрования).
Замечание
Не изменяйте ни один из этих файлов.
Этот файл будет заботиться о активации этих дисков во время загрузки, чтобы LVM или RAID могли использовать их позже.
Не беспокойтесь о точках подключения в этом файле. Шифрование дисков Azure потеряет возможность монтировать диски в виде обычной файловой системы после создания физического тома или устройства RAID поверх этих зашифрованных устройств. (Это приведет к удалению формата файловой системы, используемого во время процесса подготовки.)
Удаление временных папок и временных записей fstab
Вы отключаете файловые системы на дисках, которые будут использоваться в составе LVM.
for disk in c d e f; do umount /tempdata${disk}; done
И удалите записи /etc/fstab:
vi /etc/fstab
Убедитесь, что диски не подключены и что записи в /etc/fstab были удалены.
lsblk
Убедитесь, что диски настроены:
cat /etc/fstab
Шаги по настройке LVM-on-crypt
Теперь, когда базовые диски шифруются, можно создать структуры LVM.
Вместо использования имени устройства используйте пути /dev/mapper для каждого диска, чтобы создать физический том (на уровне шифрования на вершине диска, а не на самом диске).
Настройка LVM на вершине зашифрованных слоев
Создание физических томов
Вы получите предупреждение, которое спрашивает, правильно ли удалить сигнатуру файловой системы. Продолжите, введя y, или используйте эхо "y", как показано:
echo "y" | pvcreate /dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052
echo "y" | pvcreate /dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1
echo "y" | pvcreate /dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a
echo "y" | pvcreate /dev/mapper/4159c60a-a546-455b-985f-92865d51158c
Замечание
Здесь необходимо заменить имена /dev/mapper/device на фактические значения на основе результата команды lsblk.
Проверьте сведения о физических томах
pvs
Создайте группу томов
Создайте группу томов с помощью уже инициализированных устройств:
vgcreate vgdata /dev/mapper/
Проверка сведений о группе томов
vgdisplay -v vgdata
pvs
Создание логических томов
lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata
Проверьте созданные логические тома
lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2
Создание файловых систем на основе структур для логических томов
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2
Создайте точки подключения для новых файловых систем.
mkdir /data0
mkdir /data1
Добавьте новые файловые системы в /etc/fstab и подключите их
echo "/dev/mapper/vgdata-lvdata1 /data0 ext4 defaults,nofail 0 0" >>/etc/fstab
echo "/dev/mapper/vgdata-lvdata2 /data1 ext4 defaults,nofail 0 0" >>/etc/fstab
mount -a
Убедитесь, что новые файловые системы подключены
lsblk -fs
df -h
В этом варианте lsblk мы перечисляем устройства с зависимостями в обратном порядке. Этот параметр помогает определить устройства, сгруппированные логическим томом вместо исходных имен устройств /dev/sd[disk].
Важно убедиться, что параметр nofail добавляется в параметры точки подключения томов LVM, созданных поверх устройства, зашифрованного с помощью шифрования дисков Azure. Она предотвращает зависание ОС во время загрузки (или в режиме обслуживания).
Если вы не используете параметр nofail :
- ОС никогда не достигнет стадии, в которой запущено шифрование дисков Azure, и диски данных будут разблокированы и подключены.
- Зашифрованные диски будут разблокированы в конце процесса загрузки. Тома и файловые системы LVM будут автоматически монтироваться, пока Azure Disk Encryption их не разблокирует.
Вы можете проверить перезагрузку виртуальной машины и убедиться, что файловые системы также автоматически подключены после загрузки. Этот процесс может занять несколько минут в зависимости от количества и размеров файловых систем.
Перезагрузка виртуальной машины и проверка после перезагрузки
shutdown -r now
lsblk
df -h
Действия для RAID с шифрованием
Теперь, когда базовые диски шифруются, можно продолжать создавать структуры RAID. Процесс совпадает с процессом для LVM, но вместо использования имени устройства используйте пути /dev/mapper для каждого диска.
Настройка RAID на вершине зашифрованного слоя дисков
mdadm --create /dev/md10 \
--level 0 \
--raid-devices=4 \
/dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052 \
/dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1 \
/dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a \
/dev/mapper/4159c60a-a546-455b-985f-92865d51158c
Замечание
Имена /dev/mapper/device необходимо заменить фактическими значениями на основе выходных данных lsblk.
Проверка и мониторинг создания RAID
watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10
Создание файловой системы на основе нового УСТРОЙСТВА RAID
mkfs.ext4 /dev/md10
Создайте новую точку подключения для файловой системы, добавьте новую файловую систему в /etc/fstab и подключите ее:
Замечание
Этот цикл выполняется только на одном устройстве в этом конкретном примере, но он разработан таким образом, чтобы при необходимости использоваться для нескольких устройств md.
for device in md10; do diskuuid="$(blkid -s UUID -o value /dev/${device})"; \
mkdir /raiddata; \
echo "UUID=${diskuuid} /raiddata ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done
Убедитесь, что новая файловая система подключена:
lsblk -fs
df -h
Важно убедиться, что параметр nofail добавляется в параметры точки подключения томов RAID, созданных поверх устройства, зашифрованного с помощью шифрования дисков Azure. Она предотвращает зависание ОС во время загрузки (или в режиме обслуживания).
Если вы не используете параметр nofail :
- ОС никогда не достигнет стадии, в которой запущено шифрование дисков Azure, и диски данных будут разблокированы и подключены.
- Зашифрованные диски будут разблокированы в конце процесса загрузки. Тома RAID и файловых систем будут автоматически подключены, пока шифрование дисков Azure не разблокирует их.
Вы можете проверить перезагрузку виртуальной машины и убедиться, что файловые системы также автоматически подключены после загрузки. Этот процесс может занять несколько минут в зависимости от количества и размеров файловых систем.
shutdown -r now
И когда вы можете войти в систему:
lsblk
df -h