Для виртуальных серверов на KVM, размер диска можно увеличить только вручную. Перед проведением всех операций сервер нужно выключить и сделать резервную копию.
- lvdisplay – список всех логических томов-дисков виртуальных серверов
Выводит информацию следующего вида
— Logical volume —
LV Path /dev/vds/id36910
LV Name id36910
VG Name vds
LV UUID ULZQd3-widn-QoVn-aA1W-u29Q-KU4R-d2b3YJ
LV Write Access read/write
LV Creation host, time vds, 2014-12-20 11:32:58 +0300
LV Status available
# open 1
LV Size 20.00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 4096
Block device 252:23
Нам интересна только строка LV Path, которая указывает путь до диска
- lvextend – утилита для изменения размера логического тома (диска виртуалки)
Синтаксис:
lvextend -L +<размер> /путь/до/логического-тома
Пример:
lvextend -L +10G `lvdisplay |grep id34638|grep “Path”|awk ‘{print $3}’`
Увеличит диск на 10ГБ виртуальному серверу с наименованием в VMmanager ih34638
- fdisk – инструмент для работы с разделами. позволяет удалять/создавать/изменять разделы
Получаем список разделов виртуального сервера:
fdisk -l /dev/vds/id34638
Приведу вывод информации целиком:
Disk /dev/vds/id34638: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x000e5d17
Device Boot Start End Blocks Id System
/dev/vds/id34638p1 * 2048 194559 96256 83 Linux
/dev/vds/id34638p2 194560 62914559 31360000 5 Extended
/dev/vds/id34638p5 196608 1241087 522240 82 Linux swap / Solaris
/dev/vds/id34638p6 1243136 62914559 30835712 83 Linux
В первой строке будет показан реальный размер диска, но разделы требуют доработки. Приступаем к работе над разделами диска.
Перейдем в интерактивный режим работы fdisk над диском:
fdisk /dev/vds/id34638
Приведу краткую справку по используемым командам и далее покажу на примере действия для изменения размера
- команда ‘p‘ выводит ту же информацию, что и fdisk -l.
- команда ‘d‘ удаляет разделы.
- команда ‘n‘ создает разделы
Исходя из разбираемого примера и виртуального сервера, следует удалить раздел с типом Extended.
Нажимаем ‘d‘, указываем номер раздела
Command (m for help): d
Partition number (1-6): 2
смотрим, что получилось командой ‘p‘:
Command (m for help): p
Disk /dev/vds/id34638: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x000e5d17
Device Boot Start End Blocks Id System
/dev/vds/id34638p1 * 2048 194559 96256 83 Linux
Как видите, остался только один раздел, а корневой и подкачку
Снова создаем Extended раздел, который уже будет на 10Г больше прежнего.
(в моем примере он будет неизменным)
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
Partition number (1-4, default 2): 2
First sector (194560-62914559, default 194560):
Using default value 194560
Last sector, +sectors or +size{K,M,G} (194560-62914559, default 62914559):
Using default value 62914559
т.е никаких конкретных действий не требуется. Все по умолчанию.
Далее, создаем раздел подкачки (своп) и корневой раздел.
По умолчанию, создается раздел формата Linux, но нам нужен Linux swap, поэтому прибегнем к команде ‘t‘ – изменение типа раздела.
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (196608-62914559, default 196608):
Using default value 196608
Last sector, +sectors or +size{K,M,G} (196608-62914559, default 62914559): 1241087
Command (m for help): t
Partition number (1-5):
Value out of range.
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap / Solaris)
Обратите внимание, что при вводе данных о размере раздела подкачки, нужно указать старые данные, которые были ДО изменения размера. Полученные при первом выводе информации командой fdisk -l или ‘p‘ (в интерактивном режиме).
Создавая корневой раздел все данные по блокам можно оставить по умолчанию. Они будут начинаться от первого свободного и заканчиваться последним, т.е его размер будет совпадать с добавленным свободным местом
По завершению работ нажимаем ‘w‘ для сохранения всех изменений и выходим из fdisk.
- resize2fs – инструмент для изменения размера файловой системы.
Теперь дадим знать файловой системе корневого раздела, что ее размер увеличился
resize2fs /dev/vds/id34638p6
(последнюю операцию можно производить на работающем сервере. потребуется перезагрузка)
После того, как размер файловой системы увеличился, можно запустить сервер.