yandex

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

Author:

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

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

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

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

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