Расширение виртуальных жестких дисков на виртуальной машине Linux
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
В этой статье описывается, как развернуть управляемые диски для виртуальной машины Linux. Вы можете добавить диски данных, чтобы предоставить дополнительное место для хранения, а также расширить существующий диск данных. Как правило, размер виртуального жесткого диска по умолчанию для операционной системы на виртуальной машине Linux в Azure составляет 30 ГБ. В этой статье рассматривается расширение дисков ОС или дисков данных. Невозможно развернуть размер полосатых томов.
Диск ОС имеет максимальную емкость 4095 ГиБ. Однако многие операционные системы секционируются с главной загрузочной записью (МБ R) по умолчанию. Формат MBR ограничивает доступный размер до 2 ТиБ. Если вам требуется более 2 ТиБ, создайте и подключите диски данных и используйте их для хранения. Если вам необходимо сохранить данные на диске операционной системы и требуется дополнительное пространство, преобразуйте их в таблицу разделов GUID (GPT).
Предупреждение
Всегда убедитесь, что файловая система находится в работоспособном состоянии, тип таблицы секций диска (GPT или МБ R) будет поддерживать новый размер и обеспечить резервное копирование данных перед выполнением операций расширения диска. Дополнительные сведения см. в кратком руководстве Azure по резервному копированию.
Определение объекта диска данных Azure в операционной системе
В случае расширения диска данных при наличии нескольких дисков данных на виртуальной машине может быть трудно связать luN Azure с устройствами Linux. Если диск ОС нуждается в расширении, он четко помечен в портал Azure как диск ОС.
Сначала определите связь между использованием диска, точкой подключения и устройством df
с помощью команды.
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 xfs 97G 1.8G 95G 2% /
<truncated>
/dev/sdd1 ext4 32G 30G 727M 98% /opt/db/data
/dev/sde1 ext4 32G 49M 30G 1% /opt/db/log
Здесь мы видим, например, /opt/db/data
файловую систему почти полностью и находится на секции /dev/sdd1
. Выходные данные df
показывают путь устройства независимо от того, подключен ли диск по пути устройства или (предпочтительному) UUID в fstab. Кроме того, запишите столбец Type, указывающий формат файловой системы. Это важно позже.
Теперь найдите LUN, который коррелирует с /dev/sdd
/dev/disk/azure/scsi1
содержимым. Выходные данные следующей ls
команды показывают, что устройство, известное как /dev/sdd
в ОС Linux, находится в LUN1 при просмотре в портал Azure.
sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep 9 21:54 ./
drwxr-xr-x. 4 root root 80 Sep 9 21:48 ../
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root 12 Sep 9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root 13 Sep 9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root 12 Sep 9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root 13 Sep 9 21:54 lun2-part1 -> ../../../sde1
Развертывание управляемого диска Azure
Расширение без простоя
Вы можете развернуть управляемые диски без освобождения виртуальной машины. Параметр кэша узла диска не изменяет, можно ли развернуть диск данных без освобождения виртуальной машины.
Сейчас эта функция имеет следующие ограничения:
- Поддерживается только для дисков данных.
- Если размер диска не превышает 4 ТиБ, следует отменить выделение виртуальной машины и отключить диск, прежде чем расширять его сверх 4 ТиБ. Если диск уже больше 4 ТиБ, его можно расширить без отмены выделения виртуальной машины и отключения диска.
- Не поддерживается для дисков ценовой категории "Ультра" или ssd уровня "Премиум" версии 2.
- Не поддерживается для общих дисков.
- Установите и используйте любой из следующих вариантов:
- Последняя версия Azure CLI
- последняя версия модуля Azure PowerShell
- портал Azure.
- Или шаблон Azure Resource Manager с версией API,
2021-04-01
которая или более позднюю.
- Недоступно на некоторых классических виртуальных машинах. Используйте этот скрипт , чтобы получить список классических номеров SKU виртуальных машин, которые поддерживают расширение без простоя.
Развертывание управляемого диска Azure
Обязательно установите последнюю версию Azure CLI и войдите в учетную запись Azure с помощью команды az login.
Для этой статьи потребуется существующая виртуальная машина в Azure с хотя бы одним подключенным и подготовленным диском данных. Если у вас еще нет виртуальной машины, которую можно использовать, см. статью "Создание и подготовка виртуальной машины с дисками данных".
В следующих примерах замените имена параметров собственными значениями, например myResourceGroup и myVM.
Внимание
Если диск соответствует требованиям, предъявляемым к функции Расширение без простоя, можно пропустить шаги 1 и 3.
Нельзя выполнять операции с виртуальными жесткими дисками на работающей виртуальной машине. Отмените подготовку виртуальной машины, выполнив команду az vm deallocate. В следующем примере отменяется распределение виртуальной машины myVM, входящей в группу ресурсов с именем myResourceGroup.
az vm deallocate --resource-group myResourceGroup --name myVM
Примечание.
Для расширения виртуального жесткого диска следует отменить распределение виртуальной машины. Остановка виртуальной машины
az vm stop
с не освобождает вычислительные ресурсы. Чтобы освободить вычислительные ресурсы, используйтеaz vm deallocate
.Просмотрите список управляемых дисков в группе ресурсов, выполнив команду az disk list. В следующем примере выводится список управляемых дисков, входящих в группу ресурсов с именем myResourceGroup:
az disk list \ --resource-group myResourceGroup \ --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \ --output table
Расширьте диск, выполнив команду az disk update. В следующем примере размер управляемого диска myDataDisk увеличивается до 200 ГБ:
az disk update \ --resource-group myResourceGroup \ --name myDataDisk \ --size-gb 200
Примечание.
При расширении управляемого диска его новый размер округляется до ближайшего размера управляемого диска. Таблица с размерами и ценовыми категориями доступных управляемых дисков доступна в разделе Цены и выставление счетов.
Запустите виртуальную машину, выполнив команду az vm start. В следующем примере запускается виртуальная машина myVM, входящая в группу ресурсов с именем myResourceGroup.
az vm start --resource-group myResourceGroup --name myVM
Развертывание раздела диска и файловой системы
Примечание.
Хотя существует множество средств, которые могут использоваться для изменения размера секций, средства, описанные в оставшейся части этого документа, являются теми же средствами, которые используются определенными автоматизированными процессами, такими как cloud-init. Как описано здесь, growpart
средство с gdisk
пакетом обеспечивает универсальную совместимость с дисками таблицы секций GUID (GPT), так как старые версии некоторых средств, таких как fdisk
не поддерживает GPT.
Обнаружение измененного размера диска
Если диск данных был развернут без простоя с помощью процедуры, упоминание ранее, размер диска не будет изменен до повторного сканирования устройства, который обычно происходит только во время загрузки. Эту повторное сканирование можно вызвать по запросу с помощью следующей процедуры. В этом примере мы обнаружили использование методов в этом документе, которые диск данных в настоящее время /dev/sda
и изменен с 256 ГиБ до 512 ГиБ.
Определение распознанного в настоящее время размера в первой строке выходных данных
fdisk -l /dev/sda
sudo fdisk -l /dev/sda
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 Linux
1
Вставьте символ в файл повторного сканирования для этого устройства. Обратите внимание на ссылку на SDA, это изменится, если другое дисковое устройство было изменено.echo 1 | sudo tee /sys/class/block/sda/device/rescan
Убедитесь, что новый размер диска распознался
sudo fdisk -l /dev/sda
Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x43d10aad Device Boot Start End Sectors Size Id Type /dev/sda1 2048 536870878 536868831 256G 83 Linux
Оставшаяся часть этой статьи использует диск ОС для примеров процедуры увеличения размера тома на уровне ОС. Если развернутый диск является диском данных, используйте предыдущее руководство по идентификации устройства диска данных и следуйте этим инструкциям в качестве руководства, заменив устройство диска данных (например /dev/sda
, номера секций, имена томов, точки подключения и форматы файловой системы).
Все рекомендации по ОС Linux должны рассматриваться как универсальные и могут применяться к любому дистрибутиву, но обычно соответствуют соглашениям издателя с именем Marketplace. Ссылка на документы Red Hat для требований пакета к любому дистрибутиву, утверждая совместимость Red Hat, например CentOS и Oracle.
Увеличение размера диска ОС
Следующие инструкции применяются к утвержденным дистрибутивам Linux.
Примечание.
Прежде чем продолжить, сделайте полную резервную копию виртуальной машины или по крайней мере создайте моментальный снимок диска ОС.
В Ubuntu 16.x и более поздних версиях корневой раздел диска ОС и файловые системы будут автоматически расширены, чтобы использовать все свободные смежные области на корневом диске с помощью cloud-init при условии, что для операции изменения размера имеется небольшой объем свободного места. Для этого обстоятельства последовательность просто
- Увеличьте размер диска ОС, как описано ранее
- Перезапустите виртуальную машину и получите доступ к виртуальной машине с помощью учетной записи корневого пользователя.
- Убедитесь в том, что размер файловой системы на диске ОС увеличился.
Как показано в следующем примере, размер диска ОС на портале теперь равен 100 ГБ. Файловая система /dev/sda1, смонтированная на /, теперь имеет размер 97 ГБ.
df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 314M 0 314M 0% /dev
tmpfs tmpfs 65M 2.3M 63M 4% /run
/dev/sda1 ext4 97G 1.8G 95G 2% /
tmpfs tmpfs 324M 0 324M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 324M 0 324M 0% /sys/fs/cgroup
/dev/sda15 vfat 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 ext4 20G 44M 19G 1% /mnt
tmpfs tmpfs 65M 0 65M 0% /run/user/1000
user@ubuntu:~#
Расширение без поддержки SKU классической виртуальной машины простоя
Если вы используете классический номер SKU виртуальной машины, он может не поддерживать расширение дисков без простоя.
Используйте следующий скрипт PowerShell для определения доступных номеров SKU виртуальных машин:
Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}
foreach($vmSize in $vmSizes){
foreach($capability in $vmSize.Capabilities)
{
if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
{
$vmSize.Name
}
}
}