Colobridge WIKI

расширение диска в ручном режиме

Применимость: Linux

Если вам нужен особый режим расширения диска, например нужно оставить свободное место в группе LVM для снапшот-бэкапа, то вам придется все сделать в ручном режиме.

Если вы использовали скрипт, то описанные ниже действия делать не нужно.

Для возможности изменения таблицы разделов необходим пакет parted

Чтобы обрыв связи не привел к прерыванию процесса изменения размера файловой системы необходим пакет screen

Установим оба пакета:

yum install screen parted

или для debian / ubuntu

apt-get install screen parted

Лучше всего изменение пространства делать до начала использования сервера, но с некоторым риском это можно сделать и потом если предусмотреть все необходимое.

SCREEN

Существует опасность обрыва связи. Надо исключить эту возможность.

Обрыв связи с сервером во время изменения размера файловой системы приведет к ее повреждению.

Можно все действия выполнить через KVM -VNC консоль в вашей панели управления, в случае потери и возобновления связи работа может быть продолжена без прерывания процесса, но удобнее работать по сети через SSH.

Если вы подключились по SSH и выполняете все действия в screen, то запущенные процессы продолжат работу в случае обрыва связи. При следующем подключении вы снова подключитесь в screen и продолжите работу.

Если вы еще не освоили screen, поторопитесь это сделать

Дальнейшие действия выполняем в сессии screen.

Создать сессию с именем admin

screen -S admin

Если связь оборвется, то для продолжения работы снова соединитесь с системой и выполните команду подключения к запущенной сессии screen командой:

screen -x admin

Просмотреть существующую таблицу разделов:

parted /dev/sda print 
Модель: ATA QEMU HARDDISK (scsi)
Диск /dev/sda: 42.9GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
 1     1049kB  525MB   524MB   primary  ext3              загрузочный
 2     525MB   21.5GB  20.9GB  primary                    lvm
Как видите здесь размечено только около 20Гб пространства из 40Гб

В другом варианте вы можете увидеть такую таблицу разделов:

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  256MB   255MB   primary   ext2         boot
 2      257MB   21.5GB  21.2GB  extended
 5      257MB   21.5GB  21.2GB  logical                lvm
Здесь вы видите раздел типа logical (5) который «живет» внутри контейнера раздела типа extended (2)

Всего в таблице разделов может быть не более четырех разделов типа primary или не более 3-х primary плюс 1 типа extended который может служить контейнером до 63-х разделов типа logical .

Так как в таблице разделов свободен номер 3 для раздела, то используем его для создания раздела типа prymary.

Добавить раздел

parted /dev/sda mkpart primary "3 -0"

Параметр «-0» означает - использовать все свободное пространство.

Установим метку типа файловой системы для раздела (мы используем раздел для создания физического LVM тома)

parted /dev/sda set 3 lvm on

Вам вы получите предупреждение WARNING: the kernel failed to re-read the partition table on /dev/sda (Устройство или ресурс занято). As a result, it may not reflect all of your changes until after reboot.

Можно послушаться и перезагрузить систему, но если это нежелательно, то можно использовать команду partprobe чтобы система перечитала таблицу разделов.

LVM

Теперь из нового раздела создадим физический том LVM и добавим его в группу LVM томов:

pvcreate /dev/sda3

Если вы получили предупреждение: Device /dev/sda3 not found (or ignored by filtering)., значит команда partprobe не помогла и придется перезагрузить систему.

После создания нового физического тома надо выяснить имя LVM группы в которую надо добавить пространство. В этом поможет команда vgs vgs

VG         #PV #LV #SN Attr   VSize  VFree
vg_centos6   1   2   0 wz--n- 19.51g    0 

В моем случае имя группы LVM томов - vg_centos6

Для расширения пространства группы нужно добавить в нее физический том командой:

vgextend vg_centos6 /dev/sda3

Снова проверим список групп:

vgs
VG         #PV #LV #SN Attr   VSize  VFree 
vg_centos6   2   2   0 wz--n- 39.50g 20.00g

Теперь мы видим около 20Гб свободного пространства которое можно использовать.

Командой df выясним на каком устройстве у нас расположена корневая файловая система:

Расширяем логический том LVM на котором располагается корневая файловая система командой:

lvextend -L+19G /dev/mapper/vg_centos6-lv_root

Я умышленно использовал не 20, а 19Гб чтобы осталось свободное место (1Гб) для создания LVM снапшотов которые позволяют делать резервные копии без остановки системы.

Если хотите занять все свободное место, то используйте команду:

lvextend -l +100%FREE /dev/mapper/vg_centos6-lv_root

Расширяем файловую систему

Это наиболее опасная процедура. Для файловых систем ext3(4) это можно делать в режиме онлайн без размонтирования.

resize2fs -p /dev/mapper/vg_centos6-lv_root