Лабораторная работа: настраиваем lvm, raid на linux

Introduzione

Nota che LVM non è utilizzato per la partizione , a causa di problemi con il bootloader.

Tip: /boot non può risiedere su di una partizione LVM se viene utilizzato GRUB Legacy, il quale non supporta LVM. Se si vuole utilizzare LVM anche per la partizione di /boot sarà necessario utilizzare GRUB2.

Le componenti base di LVM sono:

  • Volume Fisico(Physical volume (PV)): Partizione del disco(oppure anche l’intero disco o un file di loopback) sul quale è possibile creare un gruppo di volumi. Ha un header speciale ed è diviso in estensioni fisiche. Si pensi al volume fisico come grandi blocchi che possono essere usati per costruire il nostro hard drive.
  • Gruppo di Volumi(Volume group (VG)): Un insieme di volumi fisici usati come un unico volume di archiviazione(come un disco). Essi contengono i volumi logici.Si pensi ai gruppi di volumi come agli hard drive.
  • Volume Logico(Logical volume (LV)): Una «partizione virtuale/logica» che risiede in un volume logico ed è composta da estensioni fisiche. Si pensi ai volumi logici come una normale partizione.
  • Estensione Fisica(Physical extent (PE)): Una piccola porzione di un disco (solitamente 4MB) che può assegnata ad un volume logico. Si pensi alle estensioni fisiche come porzioni di dischi che posso essere allocate ad una qualsiasi partizione.

Con LVM sarà più facile gestire le proprie partizioni (volumi logici) rispetto ad un disco partizionato normalmente. Ad esempio, sarà possibile:

  • Usare un qualsiasi numero di dischi come un grande disco(VG)
  • Avere partizioni(LV) sparse sopra a diversi dischi (possono essere grandi quanto la capacità di archiviazione di tutti i dischi insieme)
  • Ridimensionare/creare/eliminare partizioni(LV) e dischi(VG) come si vuole (non esiste il vincolo della posizione dei volumi logici nel gruppo di volumi come invece per le normali partizioni)
  • Ridimensionare/creare/cancellare partizioni(LV) e dischi(VG) online (i filesystem che risiedono su di essi dovranno essere ridimensionati, ma solo alcuni supportano il ridimensionamento online)
  • Chiamare i propri dischi(VG) e le proprie partizioni(LV) come si desidera
  • Creare piccole partizioni(LV) e ridimensionarle «dinamicamente» appena esse si riempono (l’allargamento del filesystem dovrà essere eseguito a mano, ma può essere effettuato online con alcuni filesystem)

Esempio:

Dischi fisici
                
  Disco1 (/dev/sda):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partizione1 50GB (Volume fisico)  |Partizione2 80GB (Volume fisico)      |
    |/dev/sda1                         |/dev/sda2                             |
    |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
                                  
  Disco2 (/dev/sdb):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partizione1 120GB (Volume fisico)                  |
    |/dev/sdb1                                          |
    | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|
Volumi logici LVM

  Gruppo di volumi1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    |Volume logico1  15GB  |volume logico2 35GB       |Volume logico3  200GB               |
    |/dev/MyStorage/rootvol|/dev/MyStorage/homevol    |/dev/MyStorage/mediavol             |
    |_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |

Per riassumere: con LVM si può utilizzare tutto il proprio spazio di archiviazione come un unico grande disco (gruppo di volumi) ed avere una maggiore flessibilità nella gestione delle partizioni (volumi logici).

Functional Approach and Applications

Snapshots do not allocate disk space themselves like their associated original LVs, because the snapshot only requires space when the original has been changed. What is important is keeping an eye on the free space for the snapshot volume, since a fully consumed snapshot volume will be unusable, because changes in the original will not be able to be logged. The consumption of a snapshot volume can be checked by means of the lvs command.
It should be emphasized that snapshots themselves are not intended for use as a means of making backups, since only the changes will be saved. The following would be a typical backup scenario:

  1. Create the snapshot
  2. Create a backup of the snapshot data; the original LV can continue to run and be «online».
  3. Delete the snapshot again, since otherwise the changes would continue to be tracked.

Doing this can avoid, for example, having to shutdown the server to make a backup, since the snapshot makes all of the data available for the backup.

An additional application of snapshot might be for experimental tests, which should not be performed on the original file system. For such purposes, a snapshot can be created, mounted and the tests then performed. Using this approach, only the snapshot would be changed and the original file system would remain unmodifed.

Zalety

LVM zapewnia większą elastyczność niż zwykłe partycje dysku twardego:

  • Użyj dowolnej liczby dysków jako jednego dużego dysku.
  • Mieć woluminy logiczne rozciągnięte na kilku dyskach.
  • Twórz małe woluminy logiczne i zmieniaj ich rozmiar «dynamicznie» w miarę zapełniania.
  • Zmień wielkość woluminów logicznych, niezależnie od ich kolejności na dysku. Nie zależy od położenia LV w VG, nie ma potrzeby zapewnienia otaczającej dostępnej przestrzeni.
  • Zmień rozmiar/utwórz/usuń logiczne i fizyczne woluminy online. Systemy plików na nich nadal wymagają zmiany rozmiaru, ale niektóre (takie jak ext4) obsługują zmianę rozmiaru online.
  • Migracja online/na żywo LV używana przez usługi na różnych dyskach bez konieczności restartowania usług.
  • Migawki umożliwiają tworzenie kopii zapasowej zamrożonej kopii systemu plików, przy jednoczesnym ograniczeniu przestojów serwisowych do minimum.
  • Obsługa różnych urządzeń device-mapper, w tym przejrzyste szyfrowanie i buforowanie często używanych danych. Umożliwia to utworzenie systemu z (jednym lub więcej) dyskami fizycznymi (zaszyfrowanymi za pomocą LUKS) i aby umożliwić łatwą zmianę rozmiaru i zarządzanie oddzielnymi woluminami (np , , , etc.) bez kłopotów z wielokrotnym wprowadzaniem klucza podczas startu.

Создание разделов

Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.

1. Инициализация

Помечаем диски, что они будут использоваться для LVM:

pvcreate /dev/sdb /dev/sdc

* напомним, что в качестве примера нами используются диски sdb и sdc.

Посмотреть, что диск может использоваться LMV можно командой:

pvdisplay

В нашем случае мы должны увидеть что-то на подобие:

  «/dev/sdb» is a new physical volume of «1,00 GiB»
  — NEW Physical volume —
  PV Name               /dev/sdb
  VG Name               
  PV Size               1,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               rR8qya-eJes-7AC5-wuxv-CT7a-o30m-bnUrWa
   
  «/dev/sdc» is a new physical volume of «1,00 GiB»
  — NEW Physical volume —
  PV Name               /dev/sdc
  VG Name               
  PV Size               1,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               2jIgFd-gQvH-cYkf-9K7N-M7cB-WWGE-9dzHIY

* где 

  • PV Name — имя диска. 
  • VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
  • PV Size — размер диска.
  • Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
  • PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
  • Total PE — количество физических экстентов.
  • Free PE — количество свободных физических экстентов.
  • Allocated PE — распределенные экстенты.
  • PV UUID — идентификатор физического раздела.

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

Инициализированные на первом этапе диски должны быть объединены в группы.

Группа может быть создана:

vgcreate vg01 /dev/sdb /dev/sdc

* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.

Просмотреть информацию о созданных группах можно командой:

vgdisplay

На что мы получим, примерно, следующее:

  — Volume group —
  VG Name               vg01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1,99 GiB
  PE Size               4,00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1,99 GiB
  VG UUID               b0FAUz-wlXt-Hzqz-Sxs4-oEgZ-aquZ-jLzfKz

* где:

  • VG Name — имя группы.
  • Format — версия подсистемы, используемая для создания группы.
  • Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
  • VG Access — уровень доступа к группе томов.
  • VG Size — суммарный объем всех дисков, которые входят в группу.
  • PE Size — размер физического фрагмента (экстента).
  • Total PE — количество физических экстентов.
  • Alloc PE / Size — распределенное пространство: колическтво экстентов / объем.
  • Free  PE / Size — свободное пространство: колическтво экстентов / объем.
  • VG UUID — идентификатор группы.

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

Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:

lvcreate <имя группы томов>

Примеры создания логических томов:

lvcreate -L 1G vg01

* создание тома на 1 Гб из группы vg01.

lvcreate -L50 -n lv01 vg01

* создание тома с именем lv01 на 50 Мб из группы vg01.

lvcreate -l 40%VG vg01

* при создании тома используется 40% от дискового пространства группы vg01.

lvcreate -l 100%FREE vg01

* использовать все свободное пространство группы vg01 при создании логического тома.
* также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).

Посмотрим информацию о созданном томе:

lvdisplay

  — Logical volume —
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                4nQ2rp-7AcZ-ePEQ-AdUr-qcR7-i4rq-vDISfD
  LV Write Access        read/write
  LV Creation host, time vln.dmosk.local, 2019-03-18 20:01:14 +0300
  LV Status              available
  # open                 0
  LV Size                52,00 MiB
  Current LE             13
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  — currently set to     8192
  Block device           253:2

* где:

  • LV Path — путь к устройству логического тома.
  • LV Name — имя логического тома.
  • VG Name — имя группы томов.
  • LV UUID — идентификатор.
  • LV Write Access — уровень доступа.
  • LV Creation host, time — имя компьютера и дата, когда был создан том.
  • LV Size — объем дискового пространства, доступный для использования.
  • Current LE — количество логических экстентов.

Снапшоты/Снимки[править]

Следующая полезная возможность LVM — это снапшоты или снимки. Снимок — это как бы фотография дискового пространства оригинального тома. После выполнения снимка все изменения, происходящие на томе-оригинале, никак не видны на снимке. Все программы будут продолжать работать с оригинальным томом как ни в чем не бывало.

Сферы применения снапшотов могут быть самыми разнообразными. Например, резервное копирование базы данных. Если не использовать LVM — базу данных необходимо останавливать, копировать ее файлы куда-нибудь для последующего резервного копирования, а затем запускать ее заново. То есть делать это придется в нерабочее время. С LVM все проще — следует сделать снимок раздела с файлами базы данных и уже можно начинать делать резервную копию. Остановка базы данных не нужна, достаточно сделать блокировку всех баз на время создания снапшота (это несколько секунд).

Самая интересная особенность LVM при работе со снимками — это то, что снимок может занимать меньше дискового пространства, чем оригинал. Для этого используется режим Copy-on-Write, при котором реальное использование дискового пространства начинается только при изменении данных на томе-оригинале. То есть при попытке модификации блока на томе-оригинале неизменённый блок сначала сохраняется на томе-снимке, а уж затем модифицируется.

ВНИМАНИЕ! При заполнении тома-снимка до конца, происходит его уничтожение. То есть том продолжает существовать, но ни смонтировать его, ни просмотреть его содержимое (если он был смонтирован до этого) уже не получится

Эту особенность следует обязательно учитывать при задании размера тома-снимка в момент его создания.

Создание снимка делается хорошо известной командой lvcreate:

# lvcreate -s -L 100M -n backup /dev/fileserver/samba
 Logical volume "backup" created

Ключ -s указывает, что создаем мы именно снапшот, -n указывает имя создаваемого тома, а /dev/fileserver/samba показывает с какого именно тома мы делаем снимок.

Команда lvscan покажет нам, что мы создали снапшот:

 # lvscan
 ACTIVE Original '/dev/fileserver/samba'  inherit
 ACTIVE Snapshot '/dev/fileserver/backup'  inherit

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

List of LV commands

  • lvchange — Change attributes of a Logical Volume.

  • lvconvert — Convert a Logical Volume from linear to mirror or snapshot.

  • lvcreate — Create a Logical Volume in an existing Volume Group.

  • lvdisplay — Display the attributes of a Logical Volume.

  • lvextend — Extend the size of a Logical Volume.

  • lvreduce — Reduce the size of a Logical Volume.

  • lvremove — Remove a Logical Volume.

  • lvrename — Rename a Logical Volume.

  • lvresize — Resize a Logical Volume.

  • lvs — Report information about Logical Volumes.

  • lvscan — Scan (all disks) for Logical Volumes.

See also:

  • Comparison of Linux volume management solutions for Debian users

  • Upstream:
    • http://sourceware.org/lvm2/ — Homepage, mailing list, IRC…

    • http://www.sourceware.org/lvm2/wiki/ — Wiki

CategorySystemAdministration | CategoryStorage

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

Диагностика

Если команда не функционирует как ожидается, осуществить сбор информации можно следующим образом:

  • Использовать опции , , , для отображения подробного вывода исполняемой команды.
  • Выполните команду . Ее вывод будет содержать информацию, которая может помочь при определении проблем.
  • Команды , , позволяют получить дополнительную информацию о системе.
  • Просмотрите последнюю резервную копию метаданных в /etc/lvm/backup и архивы в .
  • Команда lvm dumpconfig позволит проверить текущую информацию конфигурации.
  • Файл должен включать запись, перечисляющую устройства, на которых расположены физические тома.

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

В случае потери физического тома можно активировать оставшиеся физические тома в группе с помощью опции partial команды vgchange. Опция removemissing команды vgreduce позволяет удалить из группы все логические тома, использующие этот физический том.

Рекомендуется сначала выполнить команду vgreduce с опцией , чтобы знать, что именно будет удалено.

Аналогично большинству действий LVM, результат команды vgreduce обратим, если сразу же выполнить vgcfgrestore для восстановления метаданных. Например, если вы выполнили vgreduce с аргументом removemissing, не указав при этом test, будут удалены логические тома. В этом случае можно заменить физический том и выполнить vgcfgrestore для восстановления группы.

Работа с LVM (шпаргалка)

Вступление / Постановка задачи

Это очень короткая шпаргалка по LVM – основные команды для создания тома.
Имеем виртуальный диск нужно сделать на нем том LVM с возможностью снапшотов (т.к. том не должен занять весь физический диск).

Итак:

Создаем раздел тип раздела

fdisk -l /dev/xvdb

Диск /dev/xvdb: 10.7 ГБ, 10737418240 байт
255 heads, 63 sectors/track, 1305 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe90a3c2f

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/xvdb1               1        1305    10482381   8e  Linux LVM

Создаем физический том

pvcreate /dev/xvdb1

Создаем группу томов

vgcreate <имя_группы> /dev/xvdb1

Смотрим какой получился размер у группы томов

число физических экстентов (2558):

~# vgdisplay | grep "Total PE"
  Total PE              2558

размер физического экстента (4,00 MiB):

~# vgdisplay | grep "PE Size"
  PE Size               4,00 MiB

Допустим мы хотим зарезервировать 400Мб под снапшоты, 400Мб = 100 физических экстентов, тогда размер LVM-тома должен быть “Total PE”-100 = 2458.
Создаем LVM-том нужного размера:

lvcreate -l 2458 --name <имя_раздела> <имя_группы>

Узнать есть ли свободное место на физическом томе под снапшоты (400,00 MiB free):

pvscan
  PV /dev/xvdb1   VG mysql   lvm2 [9,99 GiB / 400,00 MiB free]
  Total: 1  / in use: 1  / in no VG: 0 

Уменьшить раздел

Сперва нужно проверить файловую систему на ошибки

e2fsck -f /dev/pve/data

Затем уменьшаем файловую систему на размер, меньший, чем будет раздел в итоге.

resize2fs /dev/pve/data 900G

Потом уменьшаем раздел LVM

lvreduce -L 1000G /dev/pve/data

И наконец, расширяем файловую систему до полного размера раздела

resize2fs /dev/pve/data

Thin LVM

Должны быть установлены thin-provisioning-tools

apt-get -y install thin-provisioning-tools

Создать пул тонких томов:

lvcreate -L 300G --name data pve
lvconvert --type thin-pool pve/data --poolmetadatasize 10G

Проверить chunksize:

lvs -o+chunksize

Создать тонкий том в пуле:

lvcreate -T -V 100G -n thin-volume pve/data

Отобразить все тома включая скрытые

lvs -a

Ключевые моменты в работе тонких томов:
1. При создании тонкого тома дополнительно к исходному тому создаются два скрытых тома под метаданные (один запасной с названием lvol0_pmspare). Если метаданные испортились их можно попробовать восстановить при помощи
2. Для метаданных (информация о выделенных блоках) сохраняется на отдельном томе (который автоматически создается), и когда на нем кончается место, то происходит порча метаданных и файловвых систем на тонких томах (т.к. ошибка записи будет).
3. Thin-LVM поддерживает автоувеличение томов, в том числе и тома metadata (что бы увеличить метадату, нужно что бы были свободные екстенты на vg, по этому под нужно всегда оставлять свободное место на VG!!). Автоувеличение настраивается в /etc/lvm.conf (thin_pool_autoextend)

Enjoy

1: Информация о физических томах, группах томов и логических томах

В работе с LVM очень важно знать, как найти информацию о компонентах LVM

Отображение информации обо всех блочных устройствах, совместимых с LVM

Чтобы отобразить все доступные блочные устройства, которыми может управлять LVM, введите команду lvmdiskscan.

На экране появится список потенциальных физических томов LVM.

Как правило, такую информацию запрашивают перед добавлением нового устройства LVM

Запрос информации о физических томах

Физические тома – это физические блочные устройства или другие устройства, подобные дискам (например, созданные device mapper устройства, такие как RAID-массивы). LVM отмечает свободные физические устройства с помощью специального хедера.

Чтобы вывести список доступных физических устройств, добавьте флаг –l:

Также вы можете использовать команду pvscan, которая работает аналогичным образом. Она обнаруживает все доступные устройства для физических томов LVM. Она выводит результат в другом формате и предоставляет некоторую дополнительную информацию:

Чтобы получить больше информации об устройствах, используйте команды pvs или pvdisplay.

Команда pvs очень гибкая и может выводить данные в нескольких форматах (потому она часто используется в сценариях или при автоматизации задач). Базовый вывод команды предоставляет такую информацию:

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

Как видите, pvdisplay предоставляет более подробную информацию о физических томах.

Чтобы получить информацию о логических экстентах каждого тома, добавьте опцию –m:

Это поможет определить, какие данные хранятся на том или ином диске.

Информация о группах томов

LVM также предоставляет множество инструментов для запроса данных о группах томов.

Команда vgscan сканирует систему и обнаруживает доступные группы томов. Также она может собрать кэш. Эта команда очень полезна при импортировании группы томов в другую систему.

Команда предоставляет немного информации, тем не менее, она может найти все доступные группы томов.

Чтобы получить больше информации, используйте vgs или vgdisplay.

Как и команда для поиска физических устройств, команда vgs очень гибкая и может выводить данные в нескольких форматах (потому она также часто используется в сценариях или при автоматизации задач). К примеру, она может показать физические устройства и путь к логическому тому:

Более подробный и удобочитаемый вывод предоставляет vgdisplay. Флаг –v добавляет данные о физических томах, которые входят в группу томов, и о  логических томах на основе той или иной группы.

Команда vgdisplay предоставляет много полезной информации о различных элементах LVM.

Информация о логических томах

LVM предоставляет набор инструментов для поиска информации о логических томах.

Как и в случае с другими компонентами LVM, команда lvscan может просканировать систему и выдать краткую информацию о логических томах:

Более подробную информацию предоставляет гибкая команда lvs (она часто используется в сценариях).

Чтобы узнать тип логического тома, используйте опцию —segments:

Команда lvdisplay предоставляет удобочитаемый вывод.

Флаг –m также предоставит информацию о разделении и распределении логического тома.

В конце вывода можно узнать, что логический том /dev/LVMVolGroup/projects полностью находится на физическом устройстве /dev/sda. Эта информация полезна в случаях, когда нужно удалить физический том и переместить хранимые на нём данные в другое место.

Example Configuration

In the following volume group are still 2GB left being used for a snapshot:

root@ubuntu:~# vgdisplay
  --- Volume group ---
  VG Name               vg00
...
  VG Size               7.98 GiB
  PE Size               4.00 MiB
  Total PE              2044
  Alloc PE / Size       1533 / 5.99 GiB
  Free  PE / Size       511 / 2.00 GiB
  VG UUID               YTEj9f-9LCT-EOP5-JBEA-YHSz-c0R1-TMzVmy

The existing space of 2 GiB on vg00 can be used as a snapshot volume.

root@ubuntu:~# lvcreate -l100%FREE -s -n data_snap /dev/vg00/data
  Logical volume "data_snap" created

The entire 2 GiB snapshot LV is now available for the LV «data». If the 2 GiB should now be partitioned, in order to use it as a snapshot LV for several LVs, data_snap would first have to be deleted.

root@ubuntu:~# lvremove /dev/vg00/data_snap
  Do you really want to remove active logical volume data_snap? y/n: y
  Logical volume "data_snap" successfully removed

The existing space is available again and can be divided.

root@ubuntu:~# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg00   4   2    wz--n- 7.98g 2.00g
root@ubuntu:~# lvcreate -l50%FREE -s -n data_snap /dev/vg00/data
  Logical volume "data_snap" created
root@ubuntu:~# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg00   4   3   1 wz--n- 7.98g 1.00g
root@ubuntu:~# lvcreate -l100%FREE -s -n data_snap1 /dev/vg00/data1
  Logical volume "data_snap1" created

If data in the file system is now changed as part of ongoing operations then its original content will first be copied into the snapshot. This block will also be flagged as «copied» in the exception table. Since the lvm2-format, snapshots are created as read/write by default. If a snapshot is accessed, the changed blocks will be flagged as «used» in the exception table and will never be copied from that point on.
Regarding the size of the snapshot, a maximum of 1 GiB of «data» may be changed in the original volume, so that the snapshot will remain useful. If more data is changed on the original volume, the snapshot will be destroyed and lost.

For creating a backup, the snapshot can be mounted as usual and backed up afterwards. In the example above, there was «data» located on the LV from the time point of the creation of «data_snap», based on which only a snapshot existed. This file should now be deleted and its existence in the snapshot verified.

root@ubuntu:~# mount /dev/vg00/data data
root@ubuntu:~# mount /dev/vg00/data_snap data_snap
root@ubuntu:~# cd data
root@ubuntu:~/data# l
  file  lost+found/
root@ubuntu:~/data# rm file
root@ubuntu:~/data# cd ..
root@ubuntu:~# cd data_snap/
root@ubuntu:~/data_snap# l
  file  lost+found/

The deleted file in the snapshot will remain available and can be also be backed up, or even restored, for that reason.

Изменение размеров логического раздела

Как мы видим, у нас теперь есть логический раздел размером 1 гигабайт, размещенный по пути /dev/vg_test/lv_test1 размером 1 гигабайт. Теперь надо создать на нем файловую систему и примонтировать ее в основное дерево файловой системы в точку монтирования /data.

root@debian:~# mkfs.ext4 /dev/vg_test/lv_test1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

Монтируем:

root@debian:~# mount /dev/vg_test/lv_test1 /data -o rw,defaults

И теперь вы можете видеть файловую систему в выводе команды «df -h», например.

/dev/mapper/vg_test-lv_test1                   1008M   34M  924M   4% /data

Теперь увеличим логический раздел.

root@debian:~# lvextend --size +1G /dev/vg_test/lv_test1
  Extending logical volume lv_test1 to 2.00 GiB
  Logical volume lv_test1 successfully resized

Но в выводе команды «df -h» размер файловой системы мы видим прежний

Это потому, что сам логический раздел увеличился, а размер файловой системы не увеличился.
ВНИМАНИЕ! Изменение размеров без отмонтирования поддерживают не все файловые системы, и с этим надо быть аккуратным. Средства для изменения размеров обычно включаются в пакеты утилит, предназначенных для работы с определенной файловой системой

Например, xfsprogs.

root@debian:~# resize2fs /dev/vg_test/lv_test1
resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/vg_test/lv_test1 is mounted on /data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg_test/lv_test1 to 524288 (4k) blocks.
The filesystem on /dev/vg_test/lv_test1 is now 524288 blocks long.

И теперь в выводе команды «df -h» мы видим правильный размер:

/dev/mapper/vg_test-lv_test1                    2.0G   34M  1.9G   2% /data

Вот и всё, в общем. Надеюсь, принципы работы с LVM вам понятны. Более подробно информацию можно посмотреть в документации к тем командам, которые были использованы.

Many Partitions

If you like to test various Linux distributions, or just different version of Ubuntu, or both, you can quickly end up with quite a few partitions. With conventional msdos partitions, this becomes problematic due to its limitations. With LVM you can create as many Logical Volumes as you wish, and it is usually quite easy since you usually have plenty of free space left. Usually people allocate the entire drive to one partition when they first install, but since extending a partition is so easy with LVM, there is no reason to do this. It is better to allocate only what you think you will need, and leave the rest of the space free for future use. If you end up running out of the initial allocation, adding more space to that volume is just one command that completes immediately while the system is running normally.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector