Difference between revisions of "LVM (Русский)"

From ArchWiki
Jump to navigation Jump to search
(Undo revision 124588 by Irrlicht (talk))
Line 194: Line 194:
 
== Snapshots ==
 
== Snapshots ==
 
====Введение====
 
====Введение====
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).
+
 
 +
LVM может создавать образ вашей системы по эффективно чем традиционные способы резервного копирования. Достигается это тем, что пока идёт создание клона при изменении исходного тома сначала начальная версия копируется в образ (англ. snapshot) и только потом изменяется. Начальный образ содержит только жёсткие ссылки(hard-links) к индексным дескриптором(inodes) ваших данных и использует их всё время пока данные не были изменены. Так система с размером в 35Гб может использовать только 2ГБ свободного места если в сумме в образе и в оригинале было изменено меньше 2ГБ.
  
 
====Configuration====
 
====Configuration====

Revision as of 16:17, 9 December 2010

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in 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".


Пример:

Жёсткий диск
                
  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 нужно разметить жёсткий диск. Например с помощью Template:Codeline. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел Template:Filename должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше.

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

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


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

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

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

# pvcreate /dev/sda2

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

# pvdisplay

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

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

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

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

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

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

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

# lvcreate -L 10G VolGroup00 -n lvolhome

Этот том будет доступен позже как устойство Template:Filename или Template:Filename. Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.

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

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

Template:Codeline создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений.

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

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

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

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

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

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

# 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. Во время выбора точек монтирования выберете только что созданные логические тома(используйте: Template:Filename).
    НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: Template:Filename). (Set Filesystem Mountpoints)
  2. Убедитесь, что вы заменили USELVM="no" на USELVM="yes"в USELVM="no" to USELVM="yes"
  3. Убедитесь, что lvm2 находится в секции HOOKS в Template:Filename непосредственно перед filesystems, для того чтобы ядро смогло найти LVM во

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

  1. Убедитесь, что в Template:Filename указаны правильные тома для раздела /root.(Install Bootloader)

Пример Template:Filename

...
# (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 Template:Filename:

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

Вы можете использовать Template:Codeline вместо Template:Codeline.

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

# lvextend -l +100%FREE VolGroup00/lvolhome
Warning: Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.
Note: Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.

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

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

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

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

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

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

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

# 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

Snapshots

Введение

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

Configuration

You create snapshot logical volumes just like normal ones.

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

With that volume, you may modify less than 100M of data, before the snapshot volume fills up.

It is important to have the dm-snapshot module listed in the MODULES variable of Template:Filename, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with

# mkinitcpio -g /boot/kernel26.img

Todo: scripts to automate snapshots of root before updates, to rollback... updating Template:Filename to boot snapshots (separate article?)

snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.

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

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

  • Загрузите модуль ядра:
# modprobe dm-mod
  • Попробуйте использовать префикс lvm:
# lvm pvdisplay

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

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

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

# vgchange -ay <volgroup>


Ещё по теме

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

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