Изменение размера устройств управления логическими томами, зашифрованных с помощью Шифрования дисков Azure
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
В этой статье вы узнаете, как изменить размер дисков данных, использующих Шифрование дисков Azure. Для изменения размера дисков будет использоваться управление логическими томами (LVM) в Linux. Действия применяются к нескольким сценариям.
Этот процесс изменения размера можно использовать в следующих средах.
- Дистрибутивы Linux:
- Red Hat Enterprise Linux (RHEL) 7 или более поздней версии
- Ubuntu 18.04 или более поздней версии
- SUSE 12 или более поздней версии
- Шифрование дисков Azure версии:
- Расширение с одним проходом
- Расширение с двойным проходом
Необходимые компоненты
В этой статье предполагается, что вы:
Существующая конфигурация LVM. Дополнительные сведения см. в статье Настройка диспетчера логических томов на виртуальной машине Linux.
Диски, уже зашифрованные с помощью Шифрования дисков Azure. Дополнительные сведения см. в статье Настройка диспетчера логических томов и RAID поверх зашифрованных устройств.
Опыт работы с Linux и LVM.
Опыт использования путей /dev/disk/scsi1/ для дисков данных в Azure. Дополнительные сведения см. в статье Устранение неполадок с именами устройств виртуальных машин Linux.
Сценарии
Процедуры, описанные в этой статье, применяются к следующим сценариям.
- Традиционные конфигурации LVM и "LVM поверх зашифрованных устройств"
- Традиционное шифрование LVM
- LVM поверх зашифрованных устройств (LVM-on-crypt)
- Только диски данных. Изменение размера диска ОС не поддерживается.
Традиционные конфигурации LVM и "LVM поверх зашифрованных устройств"
Традиционные конфигурации LVM и "LVM поверх зашифрованных устройств" расширяют логический том (LV), если в группе томов (VG) имеется доступное пространство.
Традиционное шифрование LVM
При традиционном шифровании LVM логические тома шифруются. Весь диск не шифруется.
С использованием традиционного шифрования LVM можно:
- расширить логический том при добавлении нового физического тома;
- расширить логический том при изменении размера существующего физического тома.
LVM поверх зашифрованных устройств (LVM-on-crypt)
Рекомендуемый способ шифрования дисков — "LVM поверх зашифрованных устройств". Этот метод шифрует весь диск, а не только логический том.
С помощью "LVM поверх зашифрованных устройств" можно:
- расширить логический том при добавлении нового физического тома;
- расширить логический том при изменении размера существующего физического тома.
Примечание.
Мы не рекомендуем смешивать традиционное шифрование LVM и "LVM поверх зашифрованных устройств" на одной виртуальной машине.
В следующих разделах приведены примеры использования LVM и "LVM поверх зашифрованных устройств". В примерах используются существующие значения для дисков, физических томов, групп томов, логических томов, файловых систем, универсальных уникальных идентификаторов (UUID) и точек подключения. Замените эти значения собственными значениями в соответствии с вашей средой.
Расширение логического тома при наличии доступного пространства в группе томов
Традиционный способ изменения размера логических томов — расширение логического тома при наличии доступного пространства в группе томов. Этот метод можно использовать для незашифрованных дисков, томов с традиционным шифрованием LVM и конфигураций "LVM поверх зашифрованных устройств".
Проверьте текущий размер файловой системы, которую необходимо увеличить:
df -h /mountpoint
Убедитесь, что в группе томов достаточно места для увеличения LV:
sudo vgs
Также можно использовать
vgdisplay
:sudo vgdisplay vgname
Определите, размер какого логического тома необходимо изменить:
sudo lsblk
Для "LVM поверх зашифрованных устройств" отличие заключается в том, что эти выходные данные показывают, что шифрованный слой находится на уровне диска.
Проверьте размер логического тома:
sudo lvdisplay lvname
Увеличьте размер логического тома, используя
-r
для изменения размера файловой системы в подключенном режиме:sudo lvextend -r -L +2G /dev/vgname/lvname
Проверьте новые размеры логического тома и файловой системы:
df -h /mountpoint
Выходные данные размера показывают, что размер логического тома и файловой системы был успешно изменен.
Вы можете снова проверить сведения о логическом томе, чтобы подтвердить изменения на уровне логического тома:
sudo lvdisplay lvname
Расширение традиционного тома LVM путем добавления нового физического тома
Если необходимо добавить новый диск для увеличения размера группы томов, расширьте традиционный том LVM, добавив новый физический том.
Проверьте текущий размер файловой системы, которую необходимо увеличить:
df -h /mountpoint
Проверьте текущую конфигурацию физического тома:
sudo pvs
Проверьте текущие сведения о группе томов:
sudo vgs
Проверьте текущий список дисков. Идентифицируйте диски данных, проверив устройства в папке /dev/disk/azure/scsi1/.
sudo ls -l /dev/disk/azure/scsi1/
Проверьте выходные данные
lsblk
:sudo lsbk
Подключите новый диск к виртуальной машине, следуя инструкциям из статьи Подключение диска данных к виртуальной машине Linux.
Проверьте список дисков и обратите внимание на новый диск.
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk
Создайте новый физический том поверх нового диска данных:
sudo pvcreate /dev/newdisk
В этом методе используется весь диск в качестве физического тома без раздела. Вместо этого можно с помощью
fdisk
создать раздел, а затем использовать этот раздел дляpvcreate
.Убедитесь, что физический том добавлен в список физических томов:
sudo pvs
Расширьте группу томов, добавив в нее новый физический том:
sudo vgextend vgname /dev/newdisk
Проверьте новый размер группы томов:
sudo vgs
Используйте
lsblk
для идентификации логического тома, размер которого необходимо изменить:sudo lsblk
Увеличьте размер логического тома, используя
-r
для увеличения файловой системы в подключенном режиме:sudo lvextend -r -L +2G /dev/vgname/lvname
Проверьте новые размеры логического тома и файловой системы:
df -h /mountpoint
Внимание
При использовании шифрования данных Azure в традиционных конфигурациях LVM зашифрованный слой создается на уровне логического тома, а не на уровне диска.
На этом этапе зашифрованный слой распространяется на новый диск. Фактический диск данных не имеет параметров шифрования на уровне платформы, поэтому состояние его шифрования не обновляется.
Ниже приведены некоторые причины, по которым рекомендуется подход "LVM поверх зашифрованных устройств".
Проверьте сведения о шифровании на портале:
Чтобы обновить параметры шифрования на диске, добавьте новый логический том и включите расширение на виртуальной машине.
Добавьте новый логический том, создайте на нем файловую систему и добавьте его в
/etc/fstab
.Снова задайте расширение шифрования. На этот раз параметры шифрования на новом диске данных будут установлены на уровне платформы. Вот пример с использованием CLI:
az vm encryption enable -g ${RGNAME} --name ${VMNAME} --disk-encryption-keyvault "<your-unique-keyvault-name>"
Проверьте сведения о шифровании на портале:
После обновления параметров шифрования можно удалить новый логический том. Также удалите запись из созданных /etc/fstab
и /etc/crypttab
.
Выполните следующие действия, чтобы завершить очистку.
Отключите логический том:
sudo umount /mountpoint
Закройте зашифрованный слой тома:
sudo cryptsetup luksClose /dev/vgname/lvname
Удалите логический том:
sudo lvremove /dev/vgname/lvname
Расширение традиционного тома LVM путем изменения размера существующего физического тома
В некоторых сценариях ограничения могут потребовать изменения размера существующего диска. Это делается следующим образом:
Определите зашифрованные диски:
sudo ls -l /dev/disk/azure/scsi1/
sudo lsblk -fs
Проверьте сведения о физическом томе:
sudo pvs
Результаты на изображении показывают, что в настоящее время используется все пространство на всех физических томах.
Проверьте сведения о группе томов:
sudo vgs sudo vgdisplay -v vgname
Проверьте размеры дисков. Используя
fdisk
илиlsblk
, можно вывести список размеров дисков.for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
Здесь мы определили, какие физические тома связаны с какими логическими томами, используя
lsblk -fs
. Связи можно определить, запустивlvdisplay
.sudo lvdisplay --maps VG/LV sudo lvdisplay --maps datavg/datalv1
В этом случае все четыре диска данных являются частью одной группы томов и одного логического тома. В вашем случае конфигурация может быть иной.
Проверьте текущее использование файловой системы:
df -h /datalvm*
Измените размер дисков данных, следуя инструкциям в разделе Расширение управляемого диска Azure. Для этого можно использовать портал, CLI или PowerShell.
Внимание
Некоторые диски данных на виртуальных машинах Linux можно изменить, не изменив расположение виртуальной машины, чтобы проверить соответствие дисков требованиям, проверьте [Развернуть виртуальные жесткие диски на виртуальной машине Linux](/azure/virtual-machines/linux/expand-disks? tabs=ubuntu#expand-an-azure-managed-disk) для проверки ваших дисков.
Запустите виртуальную машину и проверьте новые размеры с помощью
fdisk
.for disk in `sudo ls -l /dev/disk/azure/scsi1/* | awk -F/ '{print $NF}'` ; do echo "sudo fdisk -l /dev/${disk} | grep ^Disk "; done | bash sudo lsblk -o "NAME,SIZE"
В данном случае размер
/dev/sdd
был изменен с 5 ГБ на 20 ГБ.Проверьте текущий размер физического тома:
sudo pvdisplay /dev/resizeddisk
Несмотря на то, что размер диска был изменен, размер физического тома остается прежним.
Измените размер физического тома:
sudo pvresize /dev/resizeddisk
Проверьте размер физического тома:
sudo pvdisplay /dev/resizeddisk
Примените ту же процедуру ко всем дискам, размер которых нужно изменить.
Проверьте сведения о группе томов.
sudo vgdisplay vgname
Теперь в группе томов достаточно места для выделения логическим томам.
Измените размер логического тома:
sudo lvresize -r -L +5G vgname/lvname sudo lvresize -r -l +100%FREE /dev/datavg/datalv01
Проверьте размер файловой системы:
df -h /datalvm2
Расширение тома "LVM поверх зашифрованных устройств" путем добавления нового физического тома
Можно также расширить том "LVM на зашифрованных устройствах" путем добавления нового физического тома. Этот метод в точности соответствует действиям, описанным в разделе Настройка LVM и RAID поверх зашифрованных устройств. См. разделы, в которых объясняется, как добавить новый диск и настроить его в конфигурации "LVM поверх зашифрованных устройств".
С помощью этого метода можно добавить пространство к существующему логическому тому. Или же можно создать новые группы томов либо логические тома.
Проверьте текущий размер группы томов:
sudo vgdisplay vgname
Проверьте размер файловой системы и логического тома, который необходимо расширить:
sudo lvdisplay /dev/vgname/lvname
df -h mountpoint
Добавьте новый диск данных в виртуальную машину и идентифицируйте его.
Перед добавлением нового диска проверьте диски:
sudo fdisk -l | egrep ^"Disk /"
Вот еще один способ проверить диски перед добавлением нового диска:
sudo lsblk
Для добавления нового диска можно использовать PowerShell, Azure CLI или портал Azure. Дополнительные сведения см. в статье Подключение диска данных к виртуальной машине Linux.
Схема имен ядра применяется к новому добавленному устройству. Обычно новому диску назначается следующая доступная буква. В данном случае добавленный диск обозначается как
sdd
.Проверьте диски, чтобы убедиться, что новый диск добавлен:
sudo fdisk -l | egrep ^"Disk /"
sudo lsblk
Создайте файловую систему поверх недавно добавленного диска. Сопоставьте диск со связанными устройствами в
/dev/disk/azure/scsi1/
.sudo ls -la /dev/disk/azure/scsi1/
sudo mkfs.ext4 /dev/disk/azure/scsi1/${disk}
Создайте временную точку подключения для нового добавленного диска:
newmount=/data4 sudo mkdir ${newmount}
Добавьте недавно созданную файловую систему в
/etc/fstab
.sudo blkid /dev/disk/azure/scsi1/lun4| awk -F\" '{print "UUID="$2" '${newmount}' "$4" defaults,nofail 0 0"}' >> /etc/fstab
Подключите только что созданную файловую систему:
sudo mount -a
Убедитесь, что новые файловая система подключена:
df -h
sudo lsblk
Перезапустите шифрование, запущенное ранее для дисков данных.
Совет
Для "LVM поверх зашифрованных устройств" рекомендуется использовать
EncryptFormatAll
. В противном случае при настройке дополнительных дисков может появиться двойное шифрование.Дополнительные сведения см. в статье Настройка диспетчера логических томов и RAID поверх зашифрованных устройств.
Приведем пример:
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
После завершения шифрования на новом добавленном диске появится слой шифрования:
sudo lsblk
Отключите зашифрованный слой нового диска:
sudo umount ${newmount}
Проверьте текущие сведения о физическом диске:
sudo pvs
Создайте физический том поверх зашифрованного слоя диска. Возьмите имя устройства из предыдущей команды
lsblk
. Добавьте модуль сопоставления/dev/
перед именем устройства, чтобы создать физический том:sudo pvcreate /dev/mapper/mapperdevicename
Появится предупреждение об очистке текущей сигнатуры
ext4 fs
. Это предупреждение ожидаемо. Ответьте на этот вопросy
.Убедитесь, что новый физический том добавлен в конфигурацию LVM:
sudo pvs
Добавьте новый физический том в группу томов, которую необходимо увеличить.
sudo vgextend vgname /dev/mapper/nameofhenewpv
Проверьте новый размер и свободное пространство группы томов:
sudo vgdisplay vgname
Обратите внимание на увеличение количества
Total PE
иFree PE / Size
.Увеличьте размер логического тома и файловой системы. Используйте параметр
-r
вlvextend
. В этом примере мы добавляем общее доступное пространство группы томов к заданному логическому тому.sudo lvextend -r -l +100%FREE /dev/vgname/lvname
Выполните следующие действия, чтобы проверить изменения.
Проверьте размер логического тома:
sudo lvdisplay /dev/vgname/lvname
Проверьте новый размер файловой системы:
df -h /mountpoint
Убедитесь, что слой LVM располагается поверх зашифрованного слоя:
sudo lsblk
Если использовать команду
lsblk
без параметров, точки подключения будут отображаться несколько раз. Команда выполняет сортировку по устройствам и логическим томам.Возможно, потребуется использовать
lsblk -fs
. В этой команде-fs
изменяет порядок сортировки таким образом, чтобы точки подключения отображались один раз. Диски отображаются несколько раз.sudo lsblk -fs
Расширение LVM на шифрованном томе путем изменения размера существующего физического тома
Определите зашифрованные диски:
sudo lsblk
sudo lsblk -s
Проверьте сведения о физическом томе:
sudo pvs
Проверьте сведения о группе томов:
sudo vgs
Проверьте сведения о логическом томе:
sudo lvs
Проверьте использование файловой системы:
df -h /mountpoint(s)
Проверьте размеры дисков:
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
Измените размер диска с данными. Для этого можно использовать портал, CLI или PowerShell. Дополнительные сведения см. в разделе об изменении дисков в статье Расширение виртуальных жестких дисков на виртуальной машине Linux.
Внимание
Изменить размер виртуальных дисков во время работы виртуальной машины невозможно. Для этого шага отмените выделение виртуальной машины.
Проверьте размеры дисков:
sudo fdisk sudo fdisk -l | egrep ^"Disk /" sudo lsblk
В данном случае размер обоих дисков был изменен с 2 ГБ до 4 ГБ. Однако размер файловой системы, логического тома и физического тома остается прежним.
Проверьте текущий размер физического тома: Помните, что в "LVM поверх зашифрованных устройств" физический том — это устройство
/dev/mapper/
, а не устройство/dev/sd*
.sudo pvdisplay /dev/mapper/devicemappername
Измените размер физического тома:
sudo pvresize /dev/mapper/devicemappername
Проверьте новый размер физического тома:
sudo pvdisplay /dev/mapper/devicemappername
Измените размер зашифрованного слоя на физическом томе:
sudo cryptsetup resize /dev/mapper/devicemappername
Примените ту же процедуру ко всем дискам, размер которых нужно изменить.
Проверьте сведения о группе томов:
sudo vgdisplay vgname
Теперь в группе томов достаточно места для выделения логическим томам.
Проверьте сведения о логическом томе:
sudo lvdisplay vgname/lvname
Проверьте использование файловой системы:
df -h /mountpoint
Измените размер логического тома:
sudo lvresize -r -L +2G /dev/vgname/lvname
Здесь мы используем параметр
-r
, чтобы также изменить размер файловой системы.Проверьте сведения о логическом томе:
sudo lvdisplay vgname/lvname
Проверьте использование файловой системы:
df -h /mountpoint
Примените ту же процедуру изменения размера к любому другому логическому тому, для которого она требуется.