yandex

Сибирь. Сабынич. Айти

о природе, личной жизни и информационных технологиях

Увеличение размера диска для виртуального сервера на KVM с хранением данных в LVM

Для виртуальных серверов на 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

(последнюю операцию можно производить на работающем сервере. потребуется перезагрузка)

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


У меня есть телеграм-канал, где я пишу чуть чаще и менее формально 🙂 Подписывайся!
Увеличение размера диска для виртуального сервера на KVM с хранением данных в LVM

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх