# LVM (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Эта статья или раздел нуждается в переводе

Примечания: пожалуйста, используйте первый аргумент шаблона для указания дополнительной информации. (обсуждение: Talk:LVM (Русский)#)

# Введение

Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.

Устройство LVM:

- Физический том(англ. physical volume): Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.
- Группа томов (англ. volume group): Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.
- Логический том (англ. logical volume): аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.
- Физический диапазон (англ. physical extent) : Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.
- Логические диапазоны (англ. logical extent): диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.

Преимущества LVM:

- использование любого количества жёстких дисков или их разделов как один большой раздел.
- логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.
- изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.
- изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")
- Снапшоты позволяют создавать резервную копию замороженной файловой системы практически на лету.
- Поддержка устройств для различных целей, включая прозрачное шифрование файловой системы и кэширования часто используемых данных.
- динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".

Недостатки :

- Только Linux-совместимый . Отсутствие официальной поддержки в большинстве других ОС(FreeBSD, Windows..).
- Дополнительные шаги в более сложной настройке системы

Пример:

    Жёсткий диск

      Disk1 (/dev/sda):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        |Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume)     |
        |/dev/sda1                         |/dev/sda2                             |
        |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |

      Disk2 (/dev/sdb):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        |Partition1 120GB (Physical volume)                 |
        |/dev/sdb1                                          |
        | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|

    Логические тома

      Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        |Logical volume1 15GB  |Logical volume2 35GB      |Logical volume3 200GB               |
        |/dev/MyStorage/rootvol|/dev/MyStorage/homevol    |/dev/MyStorage/mediavol             |
        |_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |

В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)

# Установка

Перед началом установки нужно загрузить модуль ядра:

    # modprobe dm-mod

Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к partition disks[broken link: invalid section].

#### Установка Arch Linux на LVM

Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью `cfdisk`. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел `/boot` должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше.

#### Разметка дисков

Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e). Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.

Важно: /boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.
Tip: Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.

#### Создание физических томов(PV)

Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте `fdisk -l` чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:

    # pvcreate /dev/sda2

Замените `/dev/sda2` на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM. Отобразить все разделы, которые LVM может использовать, можно с помощью:

    # pvdisplay

#### Создание группы логических томов

Следующий шаг - это создание логических томов внутри физических томов. Выполните следующую команду на каждом физическом томе:

    # vgcreate VolGroup00 /dev/sda2
    # vgextend VolGroup00 /dev/sdb1

Метку "VolGroup00" можно заменить на любую другую. Отобразить все доступные логические тома можно с помощью:

    # vgdisplay

Примечание: Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.

#### Создание логических томов

Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome"

    # lvcreate -L 10G VolGroup00 -n lvolhome

Этот том будет доступен позже как устойство `/dev/mapper/Volgroup00-lvolhome` или `/dev/VolGroup00/lvolhome`. Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.

Чтобы создать раздел swap внутри тома, нужен дополнительный параметр:

    # lvcreate -C y -L 10G VolGroup00 -n lvolswap

`-C y` создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений.

Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:

    # lvcreate -l +100%FREE VolGroup00 -n lvolmedia

Логические тома можно отобразить командой:

    # lvdisplay

Примечание: возможно потребуется загрузка модуля ядра (modprobe dm-mod)
Tip: Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.

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

Ваши логические тома должны быть доступны по следующему пути: `/dev/mapper/` и `/dev/YourVolumeGroupName`. Если их там нет, загрузите модуль ядра и сделайте группы доступными:

    # modprobe dm-mod
    # vgchange -ay

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

    # mkfs.ext3 /dev/mapper/VolGroup00-lvolhome
    # mount /dev/mapper/VolGroup00-lvolhome /home

Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к Prepare Hard Drive далее сразу выберите Set Filesystem Mountpoints и прочтите абзац Важно[broken link: invalid section] перед тем как продолжить!

### Важно

Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):

1. Во время выбора точек монтирования выберете только что созданные логические тома(используйте: `/dev/mapper/Volgroup00-lvolhome`).
   НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: `/dev/sda2`). (Set Filesystem Mountpoints)
2. Убедитесь, что вы заменили USELVM="no" на USELVM="yes"
3. Убедитесь, что lvm2 находится в секции HOOKS в `/etc/mkinitcpio.conf` непосредственно перед filesystems, для того чтобы ядро смогло найти LVM во

время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте dm-snapshot к переменной MODULES (Configure System)

1. Убедитесь, что в `/boot/grub/menu.lst` указаны правильные тома для раздела /root.(Install Bootloader)

Пример `/boot/grub/menu.lst`

    ...
    # (0) Arch Linux
    title  Arch Linux
    root   (hd0,0)
    kernel /vmlinuz26 root=/dev/mapper/VolGroup00-lvolroot resume=/dev/mapper/VolGroup00-lvolswap ro
    initrd /kernel26.img
    ...

If you are using LILO check `/etc/lilo.conf`:

    image=/boot/vmlinuz26
           label=arch
           append="root=/dev/mapper/VolGroup00-lvolroot resume=/dev/mapper/VolGroup00-lvolswap ro"
           initrd=/boot/kernel26.img

# Настройка

## Увеличение размера логического тома

Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:

    # lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)
    # resize2fs /dev/VolGroup00/lvolhome

Вы можете использовать `lvresize` вместо `lvextend`.

Если вы хотите заполнить всё свободное место в группе томов:

    # lvextend -l +100%FREE VolGroup00/lvolhome

Важно: Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.
Примечание: Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.

## Уменьшение размера логического тома

Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома. Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ выглядит следующим образом:

    # resize2fs /dev/VolGroup00/lvolhome 9G
    # lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)
    # resize2fs /dev/VolGroup00/lvolhome

В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить. Вы можете использовать `lvresize` вместо `lvreduce`.

Важно: Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.
Важно: Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.
Примечание: Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.

## Добавить раздел к логической группе

Тип раздела должен быть 'Linux LVM'. Используйте, например, `cfdisk`. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:

    # pvcreate /dev/sdb1
    # vgextend VolGroup00 /dev/sdb1

Tip: К логической группе могут быть добавлены разделы с любого диска в вашей системе.

## Удаление раздела из логической группы

Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:

    # pvmove /dev/sdb1

Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:

    # pvmove /dev/sdb1 /dev/sdf1

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

    # vgreduce myVg /dev/sdb1

Или удалите все пустые физические тома:

    # vgreduce --all vg0

И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:

    # pvremove /dev/sdb1

## Клонирование

#### Введение

LVM может создавать образ вашей системы по эффективно чем традиционные способы резервного копирования. Достигается это тем, что пока идёт создание клона при изменении исходного тома сначала начальная версия копируется в образ (англ. snapshot) и только потом изменяется. Начальный образ содержит только жёсткие ссылки(hard-links) к индексным дескриптором(inodes) ваших данных и использует их всё время пока данные не были изменены. Так система с размером в 35Гб может использовать только 2ГБ свободного места если в сумме в образе и в оригинале было изменено меньше 2ГБ.

#### Настрйка

Клон логического тома создаётся так-же как обычный том:

    # lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv

На этом томе можно изменять менее 100Мб данных, после этого образ(snapshot) будет заполнен полностью)

dm-snapshot должен быть в переменной MODULES в `/etc/mkinitcpio.conf`, иначе система не загрузится

    # mkinitcpio -g /boot/kernel26.img

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

# Решение проблем

#### LVM команды не работают

- Загрузите модуль ядра:

    # modprobe dm-mod

- Попробуйте использовать префикс lvm:

    # lvm pvdisplay

#### Не видно логические тома

При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".

В этом случае вам возможно прийдётся выполнить:

    # vgchange -ay <volgroup>

# Ещё по теме

Другие статьи на Arch Wiki:

- Installing with software RAID or LVM_(Русский)
- RAID encryption LVM_(Русский)

Внешние ссылки:

- LVM on wikipedia
- LVM HOWTO on tldp.org
- LVM at en.gentoo-wiki.com

Category:

- Русский

Hidden category:

- Pages with broken section links