Увеличение размера диска VMware(VMDK) в Linux LVM
Увеличение размера диска в виртуальной машине под управлением VMware.
Для увеличения размера диска в виртуальной машине под управлением VMware, необходимо выполнить несколько важных шагов. Во-первых, необходимо увеличить размер диска в vSphere Client. Эта операция увеличит размер жесткого диска на уровне оборудования. Затем необходимо увеличить размер раздела.
Небольшая заметка, если сервер поддерживает “hot swap“, можно легко добавить новый жесткий диск к виртуальной машине. В противном случае, будет означать, что мы не можем увеличить размер LVM без перезагрузки. Если увеличим размер присоединенного диска (как в примере ниже), необходимо перезагрузить сервер или, по крайней мере, перечитать таблицу разделов.
В Linux можно повторно сканировать жесткие диски без перезагрузки гостевой виртуальной машины.
Шаг 1. Проверка необходимости добавления нового диска, либо добавления нового
Довольно важный пункт, поскольку диск, который уже был разделен на 4 основных раздела не может быть увеличен. Чтобы проверить это, запустим fdisk -l
# fdisk -l Диск /dev/sda: 21.5 ГБ, 21474836480 байт 255 heads, 63 sectors/track, 2610 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00028975 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 1 64 512000 83 Linux Раздел 1 не заканчивается на границе цилиндра. /dev/sda2 64 2611 20458496 8e Linux LVM Диск /dev/mapper/vg_specialfeeling-lv_root: 18.8 ГБ, 18798870528 байт 255 heads, 63 sectors/track, 2285 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Диск /dev/mapper/vg_specialfeeling-lv_swap: 2147 МБ, 2147483648 байт 255 heads, 63 sectors/track, 261 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
Насколько видно из вывода команды, то у нас только два раздел, поэтому увеличение диска в данном случае возможно.
Шаг 2. “Физическое” добавление диска на виртуальную машину
Увеличиваем диск виртуальной машины через vSphere клиент
Если «Provisioned Size» недоступно, необходимо выключить виртуальную машину (так как не поддерживается «горячее» добавление дисков), и проверить, если есть какие-то снепшоты, сделанные в этой виртуальной машине. Невозможно изменить размер диска пока доступны снепшоты.
Альтернатива, если уже есть четыре раздела, можно выбрать «Add…» и добавить новое оборудование «Virtual Disk» в виртуальную машину, чтобы увеличить размер диска.
Шаг 3. Создание разделов на нераспределенном пространстве
После того как мы изменили размер диска, необходимо включить виртуальную машину еще раз, или перезагрузить, если она работала. Системе необходимо загрузиться с нового диска, для того чтобы он мог обнаружить добавленное (незанятое) дисковое пространство. После загрузки можно проверить, есть ли дополнительное пространство на диске.
Проверяем:
# fdisk -l Диск /dev/sda: 42.9 ГБ, 42949672960 байт 255 heads, 63 sectors/track, 5221 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00028975 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 1 64 512000 83 Linux Раздел 1 не заканчивается на границе цилиндра. /dev/sda2 64 2611 20458496 8e Linux LVM Диск /dev/mapper/vg_specialfeeling-lv_root: 18.8 ГБ, 18798870528 байт 255 heads, 63 sectors/track, 2285 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Диск /dev/mapper/vg_specialfeeling-lv_swap: 2147 МБ, 2147483648 байт 255 heads, 63 sectors/track, 261 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
Как видим - объем диска изменился, теперь создадим раздел, используя утилиту fdisk
для устройства /dev/sda
. Пожалуйста, обратите внимание, что система может иметь только 4 основных разделов на диске! Если уже достигнут предел, необходимо создать расширенный раздел.
# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. Its strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Команда (m для справки): n Действие команды e расширенный p основной раздел (1-4) p Номер раздела (1-4): 3 Первый цилиндр (2611-5221, по умолчанию 2611): Используется значение по умолчанию 2611 Last цилиндр, +цилиндры or +size{K,M,G} (2611-5221, по умолчанию 5221): Используется значение по умолчанию 5221
Значение цилиндров могут отличатся в системе. FDISK даст значение по умолчанию для первого и последнего цилиндра (как раз будет использоваться добавленное дисковое пространство).
Теперь изменим тип раздела. Вводим номер раздела, берем из предыдущего шага. Когда необходимо будет вводить «Hex code», вводим 8e
, и подтверждаем.
Команда (m для справки): t Номер раздела (1-4): 3 Шестнадцатеричный код (введите L для получения списка кодов): 8e Системный тип раздела 3 изменен на 8e (Linux LVM) Команда (m для справки):
Возвращаемся в главное меню и нажимаем w
для записи раздела на диск. Получим сообщение, что ядро все еще использует старую таблицу раздела, необходимо перезагрузить машину для применения новой таблицы.
После перезагрузки, можно увидеть новый раздел, используя команду fdisk
.
# fdisk -l Диск /dev/sda: 42.9 ГБ, 42949672960 байт 255 heads, 63 sectors/track, 5221 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00028975 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 1 64 512000 83 Linux Раздел 1 не заканчивается на границе цилиндра. /dev/sda2 64 2611 20458496 8e Linux LVM /dev/sda3 2611 5221 20966162+ 8e Linux LVM Диск /dev/mapper/vg_specialfeeling-lv_root: 18.8 ГБ, 18798870528 байт 255 heads, 63 sectors/track, 2285 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Диск /dev/mapper/vg_specialfeeling-lv_swap: 2147 МБ, 2147483648 байт 255 heads, 63 sectors/track, 261 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
Расширяем Logical Volume
Теперь создаем физический том как основной для LVM командой pvcreate /dev/sda3
# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Узнаем Volume Group
# vgdisplay --- Volume group --- VG Name vg_specialfeeling System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19,51 GiB PE Size 4,00 MiB Total PE 4994 Alloc PE / Size 4994 / 19,51 GiB Free PE / Size 0 / 0 VG UUID NUd3j0-54xM-f9WZ-iVXR-Tm09-YL2C-FpQYHj
И расширяем Volume Group только что добавленным томом, выполнив команду vgextend VolumeGroupName /dev/sda3
# vgextend vg_specialfeeling /dev/sda3 Volume group "vg_specialfeeling" successfully extended
Используя команду pvscan
, можно обнаружить новый том и дисковое пространство (20Гб в нашем случае).
# pvscan PV /dev/sda2 VG vg_specialfeeling lvm2 [19,51 GiB / 0 free] PV /dev/sda3 VG vg_specialfeeling lvm2 [19,99 GiB / 19,99 GiB free] Total: 2 [39,50 GiB] / in use: 2 [39,50 GiB] / in no VG: 0 [0 ]
Следующим действием, расширяем Logical Volume командой lvextend /dev/VolGroup00/LogVol00 /dev/sda3
. (Для поиска LogVol00 значения используем команду lvdisplay -v
)
Using logical volume(s) on command line. Finding all volume groups. --- Logical volume --- LV Path /dev/vg_specialfeeling/lv_root LV Name lv_root VG Name vg_specialfeeling LV UUID Z5c3hO-xmeP-EPKb-qMmA-d3Uv-wutX-YS4W30 LV Write Access read/write LV Creation host, time special-feeling, 2015-10-01 21:55:58 +0300 LV Status available # open 1 LV Size 17,51 GiB Current LE 4482 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/vg_specialfeeling/lv_swap LV Name lv_swap VG Name vg_specialfeeling LV UUID gYbe2C-kkni-Aumv-wiDC-beq6-qsus-idyCk0 LV Write Access read/write LV Creation host, time special-feeling, 2015-10-01 21:56:05 +0300 LV Status available # open 1 LV Size 2,00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
# lvextend /dev/vg_specialfeeling/lv_root /dev/sda3 Size of logical volume vg_specialfeeling/lv_root changed from 17,51 GiB (4482 extents) to 37,50 GiB (9600 extents). Logical volume lv_root successfully resized
Если испольузется убунтоподобная система, то выполняем команду lvextend /dev/mapper/vg-name /dev/sda3
Чтобы использовать новое дисковое пространство, необходимо только изменить размер файловой системы в группе томов.
Запускаем ресайз командой:
# resize2fs /dev/vg_specialfeeling/lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg_specialfeeling/lv_root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 3 Performing an on-line resize of /dev/vg_specialfeeling/lv_root to 9830400 (4k) blocks. The filesystem on /dev/vg_specialfeeling/lv_root is now 9830400 blocks long.
Увеличение диска завершено - проверяем!
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_specialfeeling-lv_root 37G 809M 35G 3% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 477M 57M 395M 13% /boot
Если используется файловая система XFS
, как правило на CentOS 7 она идет по умолчанию, то при запуске команды resize2fs
появится ошибка:
# resize2fs /dev/sda3 resize2fs 1.42.9 (28-Dec-2013) resize2fs: Устройство или ресурс занято while trying to open /dev/sda3 Couldn't find valid filesystem superblock.
Вместо resize2fs
используйте команду xfs_growfs
:
# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=1799936 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=7199744, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=3515, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7199744 to 9820160