Linux Debian Storage CLI Filesystem Reliability Performance

🧱 Настройка и расширение LVM в Linux


📑 Содержание


🔍 Что такое LVM

LVM (Logical Volume Manager) — подсистема Linux для гибкого управления дисковым пространством.
Она позволяет:

Используется в RedOS, Astra Linux, Ubuntu, Debian и других системах корпоративного уровня.


🧩 Структура и принципы работы LVM

Уровень Назначение Пример
PV (Physical Volume) Физический том — реальный диск или раздел /dev/sda1, /dev/sdb1
VG (Volume Group) Группа физических томов vg_data
LV (Logical Volume) Логический том (виртуальный раздел) /dev/vg_data/lv_backup

📊 Схема работы:


[ /dev/sdb1 + /dev/sdc1 ] → VG (vg_data)
↓
LV (lv_backup)
↓
Файловая система (ext4, xfs, btrfs)


💽 Создание раздела под LVM с помощью parted

sudo parted /dev/sdb

Пример последовательности:

(parted) mklabel gpt                 ← создаём таблицу GPT
(parted) mkpart primary 0% 100%      ← создаём раздел
(parted) name 1 data_disk            ← даём имя
(parted) set 1 lvm on                ← включаем флаг LVM
(parted) print                       ← проверяем
(parted) quit                        ← выходим

💡 Альтернатива через fdisk:

Command (m for help): g
Command (m for help): n
Partition number (1-128, default 1): 1
First sector: <Enter>
Last sector: <Enter>
Command (m for help): w

После выхода появится раздел /dev/sdb1.


🏗️ Создание LVM (PV → VG → LV)

1️⃣ Инициализация физического тома

sudo pvcreate /dev/sdb1
sudo pvs

2️⃣ Создание группы томов

sudo vgcreate vg_data /dev/sdb1
sudo vgdisplay vg_data

3️⃣ Создание логического тома

sudo lvcreate -n lv_backup -L 100G vg_data
sudo lvs

📁 Создание файловой системы и монтирование

sudo mkfs.ext4 /dev/vg_data/lv_backup
sudo mkdir -p /mnt/data
sudo mount /dev/vg_data/lv_backup /mnt/data
df -h /mnt/data

⚙️ Автомонтирование через /etc/fstab

  1. Узнаём UUID:

    blkid /dev/vg_data/lv_backup
    
  2. Добавляем строку:

    UUID=<указать_UUID> /mnt/data ext4 defaults 0 2
    
  3. Проверяем:

    sudo mount -a
    

🔎 Проверка состояния LVM

sudo pvs
sudo vgs
sudo lvs

📈 Расширение LVM и файловой системы

1️⃣ Добавляем новый PV

sudo pvcreate /dev/sdc1
sudo vgextend vg_data /dev/sdc1

2️⃣ Расширяем LV

sudo lvextend -l +100%FREE /dev/vg_data/lv_backup

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

ext4:

sudo resize2fs /dev/vg_data/lv_backup

XFS:

sudo xfs_growfs /mnt/data

🧩 Добавление нового диска в существующую группу

Если добавлен диск /dev/sdb:

sudo parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) set 1 lvm on
(parted) quit

Затем:

sudo pvcreate /dev/sdb1
sudo vgextend vg_data /dev/sdb1
sudo lvextend -l +100%FREE /dev/vg_data/lv_backup
sudo resize2fs /dev/vg_data/lv_backup

🧹 Удаление LVM

sudo umount /mnt/data
sudo lvremove /dev/vg_data/lv_backup
sudo vgremove vg_data
sudo pvremove /dev/sdb1

🧠 Под капотом LVM

Команда Назначение
pvcreate Инициализирует раздел под LVM
vgcreate Создаёт группу логических томов
vgextend Добавляет новый PV в существующую VG
lvcreate Создаёт логический том
lvextend Расширяет существующий логический том
resize2fs / xfs_growfs Расширяет файловую систему
lvremove, vgremove, pvremove Удаляют соответствующие объекты LVM

📊 ASCII-схема: Расширение LVM (1 диск → 2 диска)

До:
┌────────────┐
│  /dev/sda1 │──┐
└────────────┘  │
                 │  → VG "vg_data"
                 ├──► LV "lv_backup" (100G)
                 │
После добавления /dev/sdb1:
┌────────────┐  ┌────────────┐
│  /dev/sda1 │  │  /dev/sdb1 │
└────────────┘  └────────────┘
      │               │
      └──────┬────────┘
             ▼
        VG "vg_data"
             │
             ▼
      LV "lv_backup" (расширен до 2TB)
             │
             ▼
       Файловая система (ext4 / xfs)

💡 Полезные советы


✅ Вывод

LVM — мощная система управления томами, позволяющая:

Использование LVM — стандарт для современных серверных и корпоративных систем Linux.