Поделиться через


Изменение размера устройств управления логическими томами, зашифрованных с помощью Шифрования дисков Azure

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

В этой статье вы узнаете, как изменить размер дисков данных, использующих Шифрование дисков Azure. Для изменения размера дисков будет использоваться управление логическими томами (LVM) в Linux. Действия применяются к нескольким сценариям.

Этот процесс изменения размера можно использовать в следующих средах.

  • Дистрибутивы Linux:
    • Red Hat Enterprise Linux (RHEL) 7 или более поздней версии
    • Ubuntu 18.04 или более поздней версии
    • SUSE 12 или более поздней версии
  • Версии Шифрования дисков Azure:
    • Расширение с одним проходом
    • Расширение с двойным проходом

Предварительные требования

В этой статье предполагается, что вы:

Сценарии

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

  • Традиционные конфигурации 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 поверх зашифрованных устройств".

  1. Проверьте текущий размер файловой системы, которую необходимо увеличить:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет размер файловой системы. Команда и результат выделены.

  2. Убедитесь, что в группе томов достаточно места для увеличения LV:

    sudo vgs
    

    Снимок экрана: код, который проверяет место в VG. Команда и результат выделены.

    Также можно использовать vgdisplay:

    sudo vgdisplay vgname
    

    Снимок экрана: код отображения VG, который проверяет место в VG. Команда и результат выделены.

  3. Определите, размер какого логического тома необходимо изменить:

    sudo lsblk
    

    Снимок экрана: результат выполнения команды l s b l k. Команда и результат выделены.

    Для "LVM поверх зашифрованных устройств" отличие заключается в том, что эти выходные данные показывают, что шифрованный слой находится на уровне диска.

    Снимок экрана: результат выполнения команды l s b l k. Выходные данные выделены. Здесь отображается зашифрованный слой.

  4. Проверьте размер логического тома:

    sudo lvdisplay lvname
    

    Снимок экрана: код, который проверяет размер логического тома. Команда и результат выделены.

  5. Увеличьте размер логического тома, используя -r для изменения размера файловой системы в подключенном режиме:

    sudo lvextend -r -L +2G /dev/vgname/lvname
    

    Снимок экрана: код, увеличивающий размер логического тома. Команда и результаты выделены.

  6. Проверьте новые размеры логического тома и файловой системы:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет размер lv и файловой системы. Команда и результат выделены.

    Выходные данные размера показывают, что размер логического тома и файловой системы был успешно изменен.

Вы можете снова проверить сведения о логическом томе, чтобы подтвердить изменения на уровне логического тома:

sudo lvdisplay lvname

Снимок экрана: код, который подтверждает новые размеры. Размеры выделены.

Расширение традиционного тома LVM путем добавления нового физического тома

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

  1. Проверьте текущий размер файловой системы, которую необходимо увеличить:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет текущий размер файловой системы. Команда и результат выделены.

  2. Проверьте текущую конфигурацию физического тома:

    sudo pvs
    

    Снимок экрана: код, который проверяет текущую конфигурацию pv. Команда и результат выделены.

  3. Проверьте текущие сведения о группе томов:

    sudo vgs
    

    Снимок экрана: код, который проверяет сведения о текущей группе томов. Команда и результат выделены.

  4. Проверьте текущий список дисков. Идентифицируйте диски данных, проверив устройства в папке /dev/disk/azure/scsi1/ .

    sudo ls -l /dev/disk/azure/scsi1/
    

    Снимок экрана: код, который проверяет текущий список дисков. Команда и результаты выделены.

  5. Проверьте выходные данные lsblk:

    sudo lsbk
    

    Снимок экрана: код, который проверяет выходные данные l s b l k. Команда и результаты выделены.

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

  7. Проверьте список дисков и обратите внимание на новый диск.

    sudo ls -l /dev/disk/azure/scsi1/
    

    Снимок экрана: код, проверяющий список дисков. Результаты выделены.

    sudo lsblk
    

    Снимок экрана: код, который проверяет список дисков с помощью l s b l k. Команда и результат выделены.

  8. Создайте новый физический том поверх нового диска данных:

    sudo pvcreate /dev/newdisk
    

    Снимок экрана: код, создающий новую виртуальную папку. Результат выделен.

    В этом методе используется весь диск в качестве физического тома без раздела. Вместо этого можно с помощью fdisk создать раздел, а затем использовать этот раздел для pvcreate.

  9. Убедитесь, что физический том добавлен в список физических томов:

    sudo pvs
    

    Снимок экрана: код со списком физических томов. Результат выделен.

  10. Расширьте группу томов, добавив в нее новый физический том:

    sudo vgextend vgname /dev/newdisk
    

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

  11. Проверьте новый размер группы томов:

    sudo vgs
    

    Снимок экрана: код, проверяющий размер группы томов. Результаты выделены.

  12. Используйте lsblk для идентификации логического тома, размер которого необходимо изменить:

    sudo lsblk
    

    Снимок экрана: код, определяющий локальный том, размер которых необходимо изменить. Результаты выделены.

  13. Увеличьте размер логического тома, используя -r для увеличения файловой системы в подключенном режиме:

    sudo lvextend -r -L +2G /dev/vgname/lvname
    

    Снимок экрана: код, который увеличивает размер файловой системы в сети. Результаты выделены.

  14. Проверьте новые размеры логического тома и файловой системы:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет размеры локального тома и файловой системы. Команда и результат выделены.

    Важно!

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

    На этом этапе зашифрованный слой распространяется на новый диск. Фактический диск данных не имеет параметров шифрования на уровне платформы, поэтому состояние его шифрования не обновляется.

    Ниже приведены некоторые причины, по которым рекомендуется подход "LVM поверх зашифрованных устройств".

  15. Проверьте сведения о шифровании на портале:

    Снимок экрана: сведения о шифровании на портале. Имя диска и шифрование выделены.

    Чтобы обновить параметры шифрования на диске, добавьте новый логический том и включите расширение на виртуальной машине.

  16. Добавьте новый логический том, создайте на нем файловую систему и добавьте его в /etc/fstab.

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

    az vm encryption enable -g ${RGNAME} --name ${VMNAME} --disk-encryption-keyvault "<your-unique-keyvault-name>"
    
  18. Проверьте сведения о шифровании на портале:

    Снимок экрана: сведения о шифровании на портале. Имя диска и сведения о шифровании выделены.

После обновления параметров шифрования можно удалить новый логический том. Также удалите запись из созданных /etc/fstab и /etc/crypttab.

Снимок экрана: код, который удаляет новый логический том. Выделены удаленные вкладки FS и криптография.

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

  1. Отключите логический том:

    sudo umount /mountpoint
    
  2. Закройте зашифрованный слой тома:

    sudo cryptsetup luksClose /dev/vgname/lvname
    
  3. Удалите логический том:

    sudo lvremove /dev/vgname/lvname
    

Расширение традиционного тома LVM путем изменения размера существующего физического тома

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

  1. Определите зашифрованные диски:

    sudo ls -l /dev/disk/azure/scsi1/
    

    Снимок экрана: код, идентифицирующий зашифрованные диски. Результаты выделены.

    sudo lsblk -fs
    

    Снимок экрана: альтернативный код, идентифицирующий зашифрованные диски. Результаты выделены.

  2. Проверьте сведения о физическом томе:

    sudo pvs
    

    Снимок экрана: код, который проверяет сведения о физическом томе. Результаты выделены.

    Результаты на изображении показывают, что в настоящее время используется все пространство на всех физических томах.

  3. Проверьте сведения о группе томов:

    sudo vgs
    sudo vgdisplay -v vgname
    

    Снимок экрана: код, который проверяет сведения о группе томов. Результаты выделены.

  4. Проверьте размеры дисков. Используя 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
    

    Снимок экрана: альтернативный способ определения связей физических томов с локальными томами. Результаты выделены.

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

  5. Проверьте текущее использование файловой системы:

    df -h /datalvm*
    

    Снимок экрана: код, который проверяет использование файловой системы. Команда и результаты выделены.

  6. Измените размер дисков данных, следуя инструкциям в разделе Расширение управляемого диска Azure. Для этого можно использовать портал, CLI или PowerShell.

    Важно!

    Изменить размер виртуальных дисков во время работы виртуальной машины невозможно. Для этого шага отмените выделение виртуальной машины.

  7. Запустите виртуальную машину и проверьте новые размеры с помощью 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 ГБ.

  8. Проверьте текущий размер физического тома:

    sudo pvdisplay /dev/resizeddisk
    

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

    Несмотря на то, что размер диска был изменен, размер физического тома остается прежним.

  9. Измените размер физического тома:

    sudo pvresize /dev/resizeddisk
    

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

  10. Проверьте размер физического тома:

    sudo pvdisplay /dev/resizeddisk
    

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

    Примените ту же процедуру ко всем дискам, размер которых нужно изменить.

  11. Проверьте сведения о группе томов.

    sudo vgdisplay vgname
    

    Снимок экрана: код, который проверяет сведения для группы томов. Результат выделен.

    Теперь в группе томов достаточно места для выделения логическим томам.

  12. Измените размер логического тома:

    sudo lvresize -r -L +5G vgname/lvname
    sudo lvresize -r -l +100%FREE /dev/datavg/datalv01
    

    Снимок экрана с изображением кода, который изменяет размер логического тома. Результаты выделены.

  13. Проверьте размер файловой системы:

    df -h /datalvm2
    

    Снимок экрана: код, который проверяет размер файловой системы. Результат выделен.

Расширение тома "LVM поверх зашифрованных устройств" путем добавления нового физического тома

Можно также расширить том "LVM на зашифрованных устройствах" путем добавления нового физического тома. Этот метод в точности соответствует действиям, описанным в разделе Настройка LVM и RAID поверх зашифрованных устройств. См. разделы, в которых объясняется, как добавить новый диск и настроить его в конфигурации "LVM поверх зашифрованных устройств".

С помощью этого метода можно добавить пространство к существующему логическому тому. Или же можно создать новые группы томов либо логические тома.

  1. Проверьте текущий размер группы томов:

    sudo vgdisplay vgname
    

    Снимок экрана: код, проверяющий размер группы томов. Результаты выделены.

  2. Проверьте размер файловой системы и логического тома, который необходимо расширить:

    sudo lvdisplay /dev/vgname/lvname
    

    Снимок экрана: код, проверяющий размер локального тома. Результаты выделены.

    df -h mountpoint
    

    Снимок экрана: код, который проверяет размер файловой системы. Результат выделен.

  3. Добавьте новый диск данных в виртуальную машину и идентифицируйте его.

    Перед добавлением нового диска проверьте диски:

    sudo fdisk -l | egrep ^"Disk /"
    

    Снимок экрана: код, который проверяет размер дисков. Результат выделен.

    Вот еще один способ проверить диски перед добавлением нового диска:

    sudo lsblk
    

    Снимок экрана: альтернативный код, который проверяет размер дисков. Результаты выделены.

    Для добавления нового диска можно использовать PowerShell, Azure CLI или портал Azure. Дополнительные сведения см. в статье Подключение диска данных к виртуальной машине Linux.

    Схема имен ядра применяется к новому добавленному устройству. Обычно новому диску назначается следующая доступная буква. В данном случае добавленный диск обозначается как sdd.

  4. Проверьте диски, чтобы убедиться, что новый диск добавлен:

    sudo fdisk -l | egrep ^"Disk /"
    

    Снимок экрана: код, в котором перечислены диски. Результаты выделены.

    sudo lsblk
    

    Снимок экрана, показывающий новый добавленный диск в выходных данных.

  5. Создайте файловую систему поверх недавно добавленного диска. Сопоставьте диск со связанными устройствами в /dev/disk/azure/scsi1/.

    sudo ls -la /dev/disk/azure/scsi1/
    

    Снимок экрана: код, создающий файловую систему. Результаты выделены.

    sudo mkfs.ext4 /dev/disk/azure/scsi1/${disk}
    

    Снимок экрана: дополнительный код, который создает файловую систему и сопоставляет диск со связанными устройствами. Результаты выделены.

  6. Создайте временную точку подключения для нового добавленного диска:

    newmount=/data4
    sudo mkdir ${newmount}
    
  7. Добавьте недавно созданную файловую систему в /etc/fstab.

    sudo blkid /dev/disk/azure/scsi1/lun4| awk -F\" '{print "UUID="$2" '${newmount}' "$4" defaults,nofail 0 0"}' >> /etc/fstab
    
  8. Подключите только что созданную файловую систему:

    sudo mount -a
    
  9. Убедитесь, что новая файловая система подключена:

    df -h
    

    Снимок экрана: код, который проверяет, подключена ли файловая система. Результат выделен.

    sudo lsblk
    

    Снимок экрана: дополнительный код, который проверяет, подключена ли файловая система. Результат выделен.

  10. Перезапустите шифрование, запущенное ранее для дисков данных.

    Совет

    Для "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
    

    Снимок экрана: код, который проверяет уровень шифрования. Результат выделен.

  11. Отключите зашифрованный слой нового диска:

    sudo umount ${newmount}
    
  12. Проверьте текущие сведения о физическом диске:

    sudo pvs
    

    Снимок экрана: код, который проверяет сведения о физическом томе. Результат выделен.

  13. Создайте физический том поверх зашифрованного слоя диска. Возьмите имя устройства из предыдущей команды lsblk. Добавьте модуль сопоставления /dev/ перед именем устройства, чтобы создать физический том:

    sudo pvcreate /dev/mapper/mapperdevicename
    

    Снимок экрана: код, который создает физический том на зашифрованном слое. Результаты выделены.

    Появится предупреждение об очистке текущей сигнатуры ext4 fs. Это предупреждение ожидаемо. Ответьте на этот вопрос y.

  14. Убедитесь, что новый физический том добавлен в конфигурацию LVM:

    sudo pvs
    

    Снимок экрана: код, который проверяет, был ли физический том добавлен в конфигурацию LVM. Результат выделен.

  15. Добавьте новый физический том в группу томов, которую необходимо увеличить.

    sudo vgextend vgname /dev/mapper/nameofhenewpv
    

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

  16. Проверьте новый размер и свободное пространство группы томов:

    sudo vgdisplay vgname
    

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

    Обратите внимание на увеличение количества Total PE и Free PE / Size.

  17. Увеличьте размер логического тома и файловой системы. Используйте параметр -r в lvextend. В этом примере мы добавляем общее доступное пространство группы томов к заданному логическому тому.

    sudo lvextend -r -l +100%FREE /dev/vgname/lvname
    

    Снимок экрана: код, который увеличивает размер локального тома и файловой системы. Результаты выделены.

Выполните следующие действия, чтобы проверить изменения.

  1. Проверьте размер логического тома:

    sudo lvdisplay /dev/vgname/lvname
    

    Снимок экрана: код, который проверяет новый размер локального тома. Результаты выделены.

  2. Проверьте новый размер файловой системы:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет новый размер файловой системы. Результат выделен.

  3. Убедитесь, что слой LVM располагается поверх зашифрованного слоя:

    sudo lsblk
    

    Снимок экрана: код, который проверяет, находится ли слой LVM поверх зашифрованного слоя. Результат выделен.

    Если использовать команду lsblk без параметров, точки подключения будут отображаться несколько раз. Команда выполняет сортировку по устройствам и логическим томам.

    Возможно, потребуется использовать lsblk -fs. В этой команде -fs изменяет порядок сортировки таким образом, чтобы точки подключения отображались один раз. Диски отображаются несколько раз.

    sudo lsblk -fs
    

    Снимок экрана: альтернативный код, который проверяет, находится ли слой LVM поверх зашифрованного слоя. Результат выделен.

Расширение LVM на шифрованном томе путем изменения размера существующего физического тома

  1. Определите зашифрованные диски:

    sudo lsblk
    

    Снимок экрана: код, идентифицирующий зашифрованные диски. Результаты выделены.

    sudo lsblk -s
    

    Снимок экрана: альтернативный код, идентифицирующий зашифрованные диски. Результаты выделены.

  2. Проверьте сведения о физическом томе:

    sudo pvs
    

    Снимок экрана: код, который проверяет сведения о физических томах. Результаты выделены.

  3. Проверьте сведения о группе томов:

    sudo vgs
    

    Снимок экрана: код, который проверяет сведения для групп томов. Результаты выделены.

  4. Проверьте сведения о логическом томе:

    sudo lvs
    

    Снимок экрана: код, который проверяет сведения для локального тома. Результат выделен.

  5. Проверьте использование файловой системы:

    df -h /mountpoint(s)
    

    Снимок экрана: код, который проверяет, какая часть файловой системы используется. Результаты выделены.

  6. Проверьте размеры дисков:

    sudo fdisk
    sudo fdisk -l | egrep ^"Disk /"
    sudo lsblk
    

    Снимок экрана: код, который проверяет размер дисков. Результаты выделены.

  7. Измените размер диска с данными. Для этого можно использовать портал, CLI или PowerShell. Дополнительные сведения см. в разделе об изменении дисков в статье Расширение виртуальных жестких дисков на виртуальной машине Linux.

    Важно!

    Изменить размер виртуальных дисков во время работы виртуальной машины невозможно. Для этого шага отмените выделение виртуальной машины.

  8. Проверьте размеры дисков:

    sudo fdisk
    sudo fdisk -l | egrep ^"Disk /"
    sudo lsblk
    

    Снимок экрана: код, который проверяет размер диска. Результаты выделены.

    В данном случае размер обоих дисков был изменен с 2 ГБ до 4 ГБ. Однако размер файловой системы, логического тома и физического тома остается прежним.

  9. Проверьте текущий размер физического тома: Помните, что в "LVM поверх зашифрованных устройств" физический том — это устройство /dev/mapper/, а не устройство /dev/sd*.

    sudo pvdisplay /dev/mapper/devicemappername
    

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

  10. Измените размер физического тома:

    sudo pvresize /dev/mapper/devicemappername
    

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

  11. Проверьте новый размер физического тома:

    sudo pvdisplay /dev/mapper/devicemappername
    

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

  12. Измените размер зашифрованного слоя на физическом томе:

    sudo cryptsetup resize /dev/mapper/devicemappername
    

    Примените ту же процедуру ко всем дискам, размер которых нужно изменить.

  13. Проверьте сведения о группе томов:

    sudo vgdisplay vgname
    

    Снимок экрана: код, который проверяет сведения для группы томов. Результаты выделены.

    Теперь в группе томов достаточно места для выделения логическим томам.

  14. Проверьте сведения о логическом томе:

    sudo lvdisplay vgname/lvname
    

    Снимок экрана: код, который проверяет сведения для локального тома. Результаты выделены.

  15. Проверьте использование файловой системы:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет использование файловой системы. Результаты выделены.

  16. Измените размер логического тома:

    sudo lvresize -r -L +2G /dev/vgname/lvname
    

    Снимок экрана: код, изменяющий размер локального тома. Результаты выделены.

    Здесь мы используем параметр -r, чтобы также изменить размер файловой системы.

  17. Проверьте сведения о логическом томе:

    sudo lvdisplay vgname/lvname
    

    Снимок экрана: код, который получает сведения о локальном томе. Результаты выделены.

  18. Проверьте использование файловой системы:

    df -h /mountpoint
    

    Снимок экрана: код, который проверяет использование файловой системы. Результаты выделены.

Примените ту же процедуру изменения размера к любому другому логическому тому, для которого она требуется.

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

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