ubuntu:lvm-increase

Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
ubuntu:lvm-increase [2024/03/19 17:53] (текущий) fireball
Строка 1: Строка 1:
 +====== Увеличиваем LVM корневого раздела ======
 +
 +===== Вариант 1. Начальные условия =====
 +
 +Виртуальный сервер на Ubuntu Server 14.04 LTS поднятый на VMware ESXi 5.5. Жесткий диск всего 10 Гб, LVM, все настройки по умолчанию.
 +
 +Требуется: расширить диск до требуемого размера без создания дополнительных дисков. Все найденные решения начинаются с совета "добавляем новый диск". Это, конечно, здорово, но не то что нужно.
 +
 +===== Решение =====
 +
 +==== Увеличиваем диск в VMware ====
 +
 +Как обычно - заходим в настройки виртуальной машины и увеличиваем диск.
 +
 +==== CentOS 7 ====
 +
 +Чтобы CentOS увидел новый диск надо дать команду
 +<code>
 +# echo 1 > /sys/block/sda/device/rescan
 +</code>
 +
 +Смотрим разделы и тип FS:
 +<code>
 +# lsblk -a -o +FSTYPE
 +NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT FSTYPE
 +sda                 8:   0   200G  0 disk
 +├─sda1              8:1    0   512M  0 part /boot      ext4
 +└─sda2              8:2    0 159.5G  0 part            LVM2_member
 +  ├─vg_os-lv_root 253:0    0 157.5G  0 lvm  /          ext4
 +  └─vg_os-lv_swap 253:1    0     2G  0 lvm  [SWAP]     swap
 +sr0                11:0    1  1024M  0 rom
 +</code>
 +
 +==== Red Hat Enterprise Linux ====
 +
 +Чтобы Red Hat Enterprise Linux увидел новый диск надо дать команду
 +<code>
 +# echo "- - -" > /sys/class/scsi_host/host#/scan
 +</code>
 +
 +==== Увеличиваем диск в Linux ====
 +
 +Все действия выполняем с правами root
 +
 +=== Добавляем раздел ===
 +
 +До начала работы у меня есть три раздела:
 +<code>
 +# fdisk -l
 +   Device  Boot    Start        End      Blocks   Id  System
 +/dev/sda1    *      2048     499711      248832   83  Linux
 +/dev/sda2         501758   20969471    10233857    5  Extended
 +/dev/sda5         501760   20969471    10233856   8e  Linux LVM
 +</code>
 +
 +А места всего 10 ГБ, из них под корневой раздел отведено 8.5 Гб, а свободно после установки системы всего 7.1 Гб:
 +<code>
 +# df -h | grep G
 +/dev/mapper/store00--vg-root  8.5G  1.1G  7.1G  13%  /
 +</code>
 +
 +Добавляем новый раздел:
 +<code>
 +# fdisk /dev/sda
 +n (новый раздел)
 +p (раздел будет primary)
 +3 (номер раздела 3)
 +20971519 (номер первого сектора, высчитывается как последний сектор 20969471 плюс 2048)
 +<Enter> (автоматически подставляется последний сектор)
 +t (изменяем тип вновь созданного раздела)
 +3 (номер нашего нового раздела)
 +8e (тип раздела Linux LVM)
 +w (сохранить изменения в таблице разделов и закрыть fdisk) 
 +</code>
 +
 +Запускаем partprobe (kpartx) или перезагружаем сервер (обязательно!)
 +
 +=== Работаем с LVM ===
 +
 +Для начала инициализируем раздел в качестве физического тома в LVM:
 +<code>
 +# pvcreate /dev/sda3
 +</code>
 +
 +и добавляем его в группу store00-vg:
 +<code>
 +# vgextend store00-vg /dev/sda3
 +</code>
 +
 +Теперь расширяем логический том на все доступное пространство:
 +<code>
 +# lvextend -l +100%FREE /dev/mapper/store00--vg-root
 +</code>
 +
 +И осталось только увеличить "на лету" файловую систему (внимание, далеко не каждая ФС умеет это делать!):
 +<code>
 +# resize2fs /dev/mapper/store00--vg-root
 +</code>
 +
 +Готово, проверяем что получилось:
 +<code>
 +# df -h | grep G
 +/dev/mapper/store00--vg-root  48G  1.1G  45G  13%  /
 +</code>
 +
 +Все, раздел увеличен.
 +
 +===== Вариант 2. Начальные условия =====
 +
 +Виртуальный сервер на CentOS 7. LVM собран из 3-х дисков sda, sdb, sdc. Файловая система: XFS. Задача: увеличить место путем расширения диска sdc.
 +
 +==== Решение ====
 +
 +  * Планируем работы: смотрим сколько места есть, сколько нужно, нет ли каких-то особенностей
 +  * (опционально) Выключаем ВМ
 +  * Расширяем (увеличиваем) существующий диск sdc в системе виртуализации
 +  * Загружаемся в ОС
 +  * Если увеличивали диск без выключения VM, даем команду: <code># echo 1 > /sys/block/sda/device/rescan</code>
 +  * <code># pvdisplay</code> не должен показывать что есть свободное место (ноли в "Free PE / Size")
 +  * Смотрим: <code># parted /dev/sdc unit MB print free</code>
 +  * Расширяем: <code># parted /dev/sdс resizepart 2 100%</code> с правильным номером раздела (в примере это 2)
 +  * Расширяем physical volume до максимума: <code># pvresize /dev/sdc2</code>
 +  * Проверяем изменился ли размер тома: <code># pvdisplay</code> (должно появиться место в "Free PE / Size")
 +  * Изменяем размер logical volume, используя максимум доступного места: <code># lvextend -l +100%FREE /dev/os/root</code>
 +  * Изменяем размер файловой системы с учётом появившегося места. Если у нас XFS: <code># xfs_growfs /</code> или в старых версиях: <code>xfs_growfs /dev/mapper/os_vg_root</code>
 +  * Если EXT4: <code># resize2fs /dev/mapper/store00--vg-root</code>
 +  * Проверяем появилось ли место: <code># df -h</code>
 +  * Все должно быть ОК
 +
 +===== Вариант 3. Простой случай =====
 +
 +Начальные условия: виртуалка с Ubuntu 18.04, LVM нет, файловая система ext4
 +
 +==== Решение ====
 +
 +  * Проверяем текущее свободное место командой: <code>df -h</code>
 +  * Увеличиваем в гипервизоре размер диска (расширяем)
 +  * Запускаем рескан чтобы система увидела новый размер диска: <code>echo 1 > /sys/class/block/sda/device/rescan</code>
 +  * Смотрим реальный текущий размер диска: <code>lsblk</code>
 +  * Увеличиваем размер командой (необходимо изменить имя диска и номер партиции на свои): <code>growpart /dev/sda 2</code>
 +  * Раширяем файловую систему: <code>resize2fs /dev/sda2</code>
 +  * Проверяем текущее свободное место командой: <code>df -h</code>
 +
 +{{tag>linux ubuntu centos lvm increase_disk_size растянуть_диск увеличиваем_раздел}}