LVM · 9 min read · Sep 22, 2025

Руководство для начинающих по LVM

Версия 1.0
Автор: Фалко Тимме
Последнее обновление: 2015-02-09

Это руководство показывает, как работать с LVM (Управление логическими томами) в Linux. Оно также описывает, как использовать LVM вместе с RAID1 в отдельной главе. Поскольку LVM - это довольно абстрактная тема, эта статья поставляется с образом VMware Debian Etch, который вы можете скачать и запустить, и на этой системе Debian Etch вы можете выполнять все команды, которые я здесь выполняю, и сравнивать свои результаты с моими. Благодаря этому практическому подходу вы должны быстро привыкнуть к LVM.

Тем не менее, я не даю никаких гарантий, что этот учебник сработает для вас!

1 Предварительная заметка

Этот учебник был вдохновлен двумя статьями, которые я прочитал:

Это отличные статьи, но их трудно понять, если вы никогда не работали с LVM раньше. Вот почему я создал этот образ VMware Debian Etch, который вы можете скачать и запустить в VMware Server или VMware Player (см. https://www.howtoforge.com/import_vmware_images, чтобы узнать, как это сделать).

Я установил все инструменты, которые нам нужны в ходе этого руководства, на систему Debian Etch (запустив

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

), так что вам не нужно беспокоиться об этом.

Сеть системы Debian Etch настроена через DHCP, так что вам не нужно беспокоиться о конфликтующих IP-адресах. Пароль root - howtoforge. Вы также можете подключиться к этой системе с помощью SSH-клиента, такого как PuTTY. Чтобы узнать IP-адрес системы Debian Etch, выполните

ifconfig

Система имеет шесть SCSI жестких дисков, /dev/sda - /dev/sdf. /dev/sda используется для самой системы Debian Etch, в то время как мы будем использовать /dev/sdb - /dev/sdf для LVM и RAID. У /dev/sdb - /dev/sdf каждый имеет 80 ГБ дискового пространства. В начале мы будем действовать так, как будто у каждого из них только 25 ГБ дискового пространства (используя только 25 ГБ на каждом из них), а в ходе учебника мы “заменим” наши 25 ГБ жесткие диски на 80 ГБ жесткие диски, тем самым демонстрируя, как вы можете заменить маленькие жесткие диски на более крупные в LVM.

Статья http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html использует жесткие диски объемом 250 ГБ и 800 ГБ, но некоторые команды, такие как pvmove, занимают много времени с такими размерами жестких дисков, поэтому я решил использовать жесткие диски объемом 25 ГБ и 80 ГБ (этого достаточно, чтобы понять, как работает LVM).

1.1 Резюме

Скачайте этот образ VMware Debian Etch (~310MB) и запустите его так. Войдите как root с паролем howtoforge.

2 Макет LVM

В основном LVM выглядит так:

У вас есть один или несколько физических томов (/dev/sdb1 - /dev/sde1 в нашем примере), и на этих физических томах вы создаете одну или несколько групп томов (например, fileserver), и в каждой группе томов вы можете создать один или несколько логических томов. Если вы используете несколько физических томов, каждый логический том может быть больше, чем один из подлежащих физических томов (но, конечно, сумма логических томов не может превышать общее пространство, предлагаемое физическими томами).

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

В этом примере мы создадим группу томов под названием fileserver, и мы также создадим логические тома /dev/fileserver/share, /dev/fileserver/backup и /dev/fileserver/media (которые на данный момент будут использовать только половину пространства, предлагаемого нашими физическими томами - таким образом, мы можем позже переключиться на RAID1 (также описано в этом учебнике)).

3 Наша первая настройка LVM

Давайте узнаем о наших жестких дисках:

fdisk -l

Вывод выглядит так:

server1:~# fdisk -l  
   
 Диск /dev/sda: 21.4 ГБ, 21474836480 байт  
 255 голов, 63 сектора/трек, 2610 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Диск /dev/sdb: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sdb не содержит действительной таблицы разделов  
   
 Диск /dev/sdc: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sdc не содержит действительной таблицы разделов  
   
 Диск /dev/sdd: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sdd не содержит действительной таблицы разделов  
   
 Диск /dev/sde: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sde не содержит действительной таблицы разделов  
   
 Диск /dev/sdf: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sdf не содержит действительной таблицы разделов

На /dev/sdb - /dev/sdf еще нет разделов. Мы создадим разделы /dev/sdb1, /dev/sdc1, /dev/sdd1 и /dev/sde1 и оставим /dev/sdf нетронутым на данный момент. Мы действуем так, как будто наши жесткие диски имеют только 25 ГБ пространства вместо 80 ГБ на данный момент, поэтому мы назначаем 25 ГБ для /dev/sdb1, /dev/sdc1, /dev/sdd1 и /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Количество цилиндров для этого диска установлено на 10443.
С этим ничего не поделаешь, но это больше, чем 1024,
и может в некоторых настройках вызвать проблемы с:

  1. программным обеспечением, которое работает во время загрузки
    (например, старые версии LILO)
  2. загрузкой и программным обеспечением для разбиения на разделы
    с других ОС
    (например, DOS FDISK, OS/2 FDISK)

Команда (m для помощи): <– m
Команда
д переключить флаг загрузки
b редактировать метку диска bsd
c переключить флаг совместимости dos
d удалить раздел
l перечислить известные типы разделов
m напечатать это меню
n добавить новый раздел
o создать новую пустую таблицу разделов DOS
p напечатать таблицу разделов
q выйти без сохранения изменений
s создать новую пустую метку диска Sun
t изменить системный идентификатор раздела
u изменить единицы отображения/ввода
v проверить таблицу разделов
w записать таблицу на диск и выйти
x дополнительная функциональность (только для экспертов)

Команда (m для помощи): <– n
Команда
e расширенный
p основной раздел (1-4)
<– p
Номер раздела (1-4): <– 1
Первый цилиндр (1-10443, по умолчанию 1): <–
Используя значение по умолчанию 1
Последний цилиндр или +размер или +размерM или +размерK (1-10443, по умолчанию 10443): <– +25000M

Команда (m для помощи): <– t
Выбранный раздел 1
Шестнадцатеричный код (тип L для перечисления кодов): <– L

0 Пусто 1e Скрытый W95 FAT1 80 Старый Minix be Загрузочный Solaris
1 FAT12 24 NEC DOS 81 Minix / старый Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 скрытый OS/2 C: c6 DRDOS/sec (FAT-
5 Расширенный 41 PPC PReP Boot 85 расширенный Linux c7 Syrinx
6 FAT16 42 SFS 86 набор томов NTFS da Не-FS данные
7 HPFS/NTFS 4d QNX4.x 87 набор томов NTFS db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX загрузочный 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 доступ DOS
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Скрытый FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Диагностика Compaq 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Скрытый FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Скрытый FAT16 63 GNU HURD или Sys ab Загрузочный Darwin f2 вторичный DOS
17 Скрытый HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Скрытый W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Скрытый W95 FAT3 75 PC/IX
Шестнадцатеричный код (тип L для перечисления кодов): <– 8e
Системный тип раздела 1 изменен на 8e (Linux LVM)

Команда (m для помощи): <– w
Таблица разделов была изменена!

Вызов ioctl() для повторного чтения таблицы разделов.
Синхронизация дисков.

Теперь мы делаем то же самое для жестких дисков /dev/sdc - /dev/sde:

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

Затем снова выполните

fdisk -l

Вывод должен выглядеть так:

server1:~# fdisk -l  
   
 Диск /dev/sda: 21.4 ГБ, 21474836480 байт  
 255 голов, 63 сектора/трек, 2610 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Диск /dev/sdb: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdb1             1        3040    24418768+  8e  Linux LVM  
   
 Диск /dev/sdc: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdc1             1        3040    24418768+  8e  Linux LVM  
   
 Диск /dev/sdd: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdd1             1        3040    24418768+  8e  Linux LVM  
   
 Диск /dev/sde: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sde1             1        3040    24418768+  8e  Linux LVM  
   
 Диск /dev/sdf: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
 Диск /dev/sdf не содержит действительной таблицы разделов

Теперь мы подготавливаем наши новые разделы для LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Физический том "/dev/sdb1" успешно создан  
   Физический том "/dev/sdc1" успешно создан  
   Физический том "/dev/sdd1" успешно создан  
   Физический том "/dev/sde1" успешно создан

Давайте отменим это последнее действие для учебных целей:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Метки на физическом томе "/dev/sdb1" успешно стерты  
   Метки на физическом томе "/dev/sdc1" успешно стерты  
   Метки на физическом томе "/dev/sdd1" успешно стерты  
   Метки на физическом томе "/dev/sde1" успешно стерты

Затем снова выполните

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Физический том "/dev/sdb1" успешно создан  
   Физический том "/dev/sdc1" успешно создан  
   Физический том "/dev/sdd1" успешно создан  
   Физический том "/dev/sde1" успешно создан

Теперь выполните

pvdisplay

чтобы узнать текущее состояние ваших физических томов:

server1:~# pvdisplay  
   --- НОВЫЙ Физический том ---  
   Имя PV               /dev/sdb1  
   Имя VG  
   Размер PV             23.29 ГБ  
   Allocatable           НЕТ  
   Размер PE (Кбайт)    0  
   Всего PE             0  
   Свободно PE          0  
   Выделено PE         0  
   UUID PV              G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   
   --- НОВЫЙ Физический том ---  
   Имя PV               /dev/sdc1  
   Имя VG  
   Размер PV             23.29 ГБ  
   Allocatable           НЕТ  
   Размер PE (Кбайт)    0  
   Всего PE             0  
   Свободно PE          0  
   Выделено PE         0  
   UUID PV              40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   
   --- НОВЫЙ Физический том ---  
   Имя PV               /dev/sdd1  
   Имя VG  
   Размер PV             23.29 ГБ  
   Allocatable           НЕТ  
   Размер PE (Кбайт)    0  
   Всего PE             0  
   Свободно PE          0  
   Выделено PE         0  
   UUID PV              4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   
   --- НОВЫЙ Физический том ---  
   Имя PV               /dev/sde1  
   Имя VG  
   Размер PV             23.29 ГБ  
   Allocatable           НЕТ  
   Размер PE (Кбайт)    0  
   Всего PE             0  
   Свободно PE          0  
   Выделено PE         0  
   UUID PV              3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.