LVM (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

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

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: пожалуйста, используйте первый аргумент шаблона для указания дополнительной информации. (обсуждение: 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.

Установка 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 и прочтите абзац Важно перед тем как продолжить!

Важно

Осталось всего несколько шагов, будьте внимательны при использовании/установке 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:

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