Преоразмеряване на LVM дискове

VolGroup LogVol02

Наскоро трябваше да сменя дискове на сървър CentOS 6.7. Старите дискове, въпреки че все още работеха, не можеха да се справят с товара. Затова те се разклониха и закупиха SSD дискове със същия капацитет като старите. Но тъй като Тъй като цената на 1 GB на SSD диск е много по-скъпа, тогава като се погледне размерът на/var (180 GB) и/(root partition) 300 GB, решението за увеличаване на размера на/чрез намаляване на размера на/вар. Идеята, разбира се, е добра, но никога преди не съм се занимавал с това, така че прекарах уикенда във форумите, проверих всичко първо на виртуална машина без набег, после си помислих, че софтуерът raid1 работи на моя сървър и направих тестова скамейка (инсталирах CentOS 6.7 на стария компютър с два диска в софтуер raid1) и проверих всичко на него, след което го изпълних отново на производствения сървър. Но все пак беше вълнуващо, какво наистина. И така да тръгваме!

Съвет: ако никога преди не сте се забавлявали да сменяте дялове, никога не го пробвайте на работния си компютър.

И така, има система от два диска, комбинирани в raid1 (огледало).

Разбивката е нещо подобно:

/ dev/sda:
/ dev/sda1 200 MB,/dev/md0
/ dev/sda2 480 GB,/dev/md1

/ dev/sdb:
/ dev/sdb1 200 MB,/dev/md0
/ dev/sdb2 480 GB,/dev/md1

/ dev/md0 се дава на/boot

На/dev/md1 от обема на LVM:
/ dev/VolGroup/LogVol00 суап 2 GB
/ dev/VolGroup/LogVol01/var 180 GB, ext4
/ dev/VolGroup/LogVol02/300 GB, ext4

Защо дадох пример за разбивка? За да забележите, че в бъдеще никога няма да преоразмеряваме обемите на/dev/sdXY устройства. Ще направим всички промени в дяловете само с логически томове на LVM!

Задача: преоразмерете/var до 30 GB и дайте цялото свободно пространство на/(root). Файловата система на двата дяла е ext4. Система CentOS 6.7.

Стъпка 1: свиване/вар

В моя случай (soft raid1) първо проверих, за всеки случай, че всички дискове са свързани и няма грешки (cat/proc/mdstat).

Не бях сигурен дали е добра идея да се демонтира/var (umount/var) в производствен режим, затова стартирах от CentOS LiveCD в Rescue Mode (беше възможно да се влезе в единичен режим без LiveCD).

Проверка на наличността на физическия обем на LVM:

# pvscan
PV/dev/md1 VG VolGroup lvm2 [480,00 GiB/0 безплатно]

Проверка на наличността на групи томове:

Активираме логически томове:

Разглеждаме логическите обеми:

# lvscan
ACTIVE '/ dev/VolGroup/LogVol01' [180.00 GiB] наследяване

ACTIVE '/ dev/VolGroup/LogVol00' [2.00 GiB] наследяване
ACTIVE '/ dev/VolGroup/LogVol02' [300.00 GiB] наследяване

Можете да видите подробности за тома/dev/VolGroup/LogVol01 (имаме го/var):

но не е нужно да търсите.

Всички горепосочени проверки служат за гарантиране, че обемите LVM са видими и активни и че разбирате с кой том трябва да продължите. Продължавай.

Демонтирайте обема, който имаме/var и който ще намали:

Проверяваме файловата система на тома:

Екипът трябва да премине без грешки.

Проверяваме за грешки (-f - сила):

# e2fsck -f/dev/VolGroup/LogVol01

Първо, намаляваме размера на файловата система на тома:

resize2fs -p/dev/VolGroup/LogVol01 30G

Забележка: тук "30G" е размерът, който искаме да зададем за файловата система, а не с който искаме да свием файловата система.

И едва след това променяме размера на обема LVM:

# lvreduce -L 30G/dev/VolGroup/LogVol01

Получихте съобщение за успех.

Сега не можете да монтирате дяла обратно, но веднага рестартирайте и проверете дали всичко е наред, системата се зарежда, df -h дава размер/var равен на 30 GB.

На CentOS, след зареждане преди влизане, имаше съобщение от SELinux, което трябва да индексира промените отново. ДОБРЕ. Отне известно време и системата се рестартира сама. След това влязох и се уверих, че всичко е наред. Едва след това преминах към втората стъпка (която се оказа много по-бърза и лесна), а именно увеличаване на коренния дял чрез добавяне на цялото свободно пространство на физическия обем на LVM към него. Изпълнете pvscan и вижте дали изходът на командата казва, че има свободно място (плюс или минус това, което преди беше използвано под/var). Сега ще добавим това свободно пространство към/(root).

Стъпка 2: увеличете размера на LVM обема (който имаме /) без рестартиране

Да, не сте изчистили. За да увеличим размера на LVM обема, не е нужно да стартираме в единичен режим (или чрез LiveCD в режим Rescue).

За всеки случай, за да не объркате кой искате да дадете свободно пространство, стартирайте cat/etc/fstab и lvscan, уверете се, че/(root) дялът е/dev/VolGroup/LogVol02, а не нещо друго;)

# lvextend -l + 100% БЕЗПЛАТНО -r

Точно така, няма интервали между -l (това е малко L) и + 100% БЕЗПЛАТНО. Имайте предвид, че не посочих точно колко искам да увелича размера на звука. В тази ситуация нямах нужда от него и за да не позная колко GB трябва да се добавят, просто посочих, че всичко, което може да бъде добавено, е добавено. Вижте man lvextend за вариациите на -L + 100G;) Опцията -r казва на файловата система да бъде преоразмерена след нарастването на логическия обем. Без тази опция ще има две команди:

# lvextend -l + 100% БЕЗПЛАТНО/dev/VolGroup/LogVol02
# resize2fs/dev/VolGroup/LogVol02

След успешно завършване щях да рестартирам и да проверя дали всичко е наред.

Естествено, всичко по-горе може да се повреди на всеки етап, макар и само поради прекъсване на електрозахранването. Следователно, ако данните за модифицираните дялове са някак важни, трябва да имате копие от тях.

Всичко по-горе важи за CentOS. Изглежда, че всичко е същото за Ubuntu. Мисля (не знам), че за всички съвременни Linux всички команди са еднакви.