Что такое LVM и как с ним работать?

Пытаясь повысить уровень безопасности данных, разработчики внедряют новые технологии в свои операционные системы. В этой статье мы рассмотрим одну из них – LVM – и поговорим об основных ее преимуществах.

Содержание

  1. Что такое LVM и как он работает?
  2. Преимущества и недостатки LVM
  3. Как работать с LVM?
  4. Типы томов в LVM
  5. Как удалить или изменить размер тома LVM?
  6. Моментальные снепшоты в LVM
  7. LVM+RAID и RAID+LVM
  8. Что делать, если данные потеряны?

Что такое LVM и как он работает?

LVM (logical volume manager) – это технология, позволяющая использовать некоторые части вашего жесткого диска (или нескольких дисков) и объединять их в один логический том для дальнейшей работы. Благодаря этому вы можете более гибко распределять общее пространство, поскольку вы не ограничены одним жестким диском. LVM также работает с SSD-накопителями.

Давайте подробнее рассмотрим, как работает LVM.

Представьте, что у вас есть два жестких диска по 100 ГБ (2 x 100 ГБ). Используя обычное разделение, вы можете создавать тома до 100 ГБ на каждом диске.

Если вы будете использовать LVM для этой цели, вы можете создать, например, один том на 120 ГБ в общем пространстве, и, соответственно, второй том – на 80 ГБ. То есть, LVM создает некоторое абстрактное пространство, которое объединяет дисковые объемы обоих жестких дисков, а затем вы можете разделить общее дисковое пространство, как хотите.

Схематически это выглядит так:

Такой принцип можно реализовать с помощью подсистемы отображения устройства.

Начальные разделы делятся на блоки или блочные устройства (физические тома (pv)) и объединяются в один виртуальный том, точнее, группу томов (vg). Затем этот виртуальный том делится на логические тома (lv). Файловой системой логический том воспринимается как обычное блочное устройство, хотя отдельные физические тома могут размещаться на нескольких физических устройствах (а также сам физический том может использоваться в составе RAID).

Дополнительную информацию о RAID можно найти в статье «Что такое RAID и для чего он используется?

Преимущества и недостатки LVM

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

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

Основным преимуществом использования LVM является возможность произвольно создавать, изменять размер, переименовывать тома в общем пространстве без перезагрузки компьютера.

Вы также можете динамически изменять размеры томов. Например, сначала вы создаете том небольшого размера, а затем настраиваете его расширение по мере заполнения.

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

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

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

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

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

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

И последним недостатком является то, что современные файловые системы (например, Btrfs и ZFS) имеют много ограничений по их использованию в производительной системе функций LVM (например, текущее изменение размера томов, создание снепшотов и т.п.). И в некоторых случаях смысл использования LVM просто теряется.

Как работать с LVM?

Опция настройки LVM доступна при установке любого современного дистрибутива Linux, но как с ней работать?

LVM состоит из трех уровней:

  • физический том (один или несколько);
  • группа физических томов (также называемая PV);
  • логический том, который будет доступен для программ (также называемый LV);

3.1 Как установить LVM?

Первое, что вам нужно сделать перед созданием LVM, это установить программу LVM2. Это можно сделать с помощью terminal, выполнив команду:

$ sudo apt install lvm2

После установки LVM2 вы можете начать работу со своими дисками.

3.2 Как инициализировать физические тома LVM?

Теперь нам нужно инициализировать физические тома LVM. Прежде всего мы должны решить, какие тома мы будем использовать. Допустим, это будут dev/sda6 и dev/sda7. Чтобы их инициализировать, выполните команду:

$ sudo pvcreate /dev/sda6 /dev/sda7

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

$ sudo pvscan

Система покажет все логические тома в системе.

Вы также можете просмотреть подробные атрибуты разделов с помощью такой команды:

$ sudo pvdisplay

Если вы хотите узнать размер отдельного блока памяти LVM, проверьте атрибут PE Size. По умолчанию это 4 МБ, но вы можете в любой момент изменить его.

3.3 Как создать группу томов LVM?

Группа томов (VG) – это общий пул памяти, состоящий из нескольких инициированных физических томов. Этот пул можно конвертировать в логические тома, и вы не будете ограничены размером памяти физического диска. Все диски внутри группы томов должны быть инициализированы.

Вы можете создать группу томов с помощью такой команды:

$ sudo vgcreate vol_grp1 /dev/sda6 /dev/sda7

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

$ sudo vgdisplay

Теперь мы готовы к созданию логических томов.

3.4 Как создать логические тома LVM?

Логические тома LVM создаются с помощью команды lvcreate. Как вы помните, с технологией LVM вы не ограничены физическим размером какого-либо одного диска. Это означает, что теперь вы будете произвольно использовать все хранилище пула памяти.

Как вы помните, у нас было два жестких диска по 100 ГБ каждый. Но теперь мы создадим два логических тома – 80 ГБ и 120 ГБ. Для этого используем следующую команду:

$ sudo lvcreate -L 80G -n logical_vol1 vol_grp1

…где 80G – это размер вашего тома.

Таким образом, команда для создания тома 100 ГБ будет выглядеть так:

$ sudo lvcreate -L 100G -n logical_vol2 vol_grp1

Вы можете также использовать следующие буквы, чтобы указать размер тома:

  • B – байты;
  • K – килобайты;
  • M – мегабайты;
  • G – гигабайты;
  • T – терабайты;

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

$ sudo lvdisplay

Если все сделано правильно, вы увидите только что созданные логические тома, а также подробную информацию о каждом из них.

3.5 Как подключить том LVM?

На этом этапе мы можем смонтировать наши новые логические тома. Но сначала мы должны их отформатировать. Это можно сделать так же, как с обычным томом. Мы можем использовать стандартную команду:

$ sudo mkfs.ext4 /dev/vol_grp1/logical_vol1
$ sudo mkfs.ext4 /dev/vol_grp1/logical_vol2

…где logical_vol1 и logical_vol2 являются именами наших томов.

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

$ sudo mount /dev/vol_grp1/logical_vol1 /mnt/
$ sudo mount /dev/vol_grp1/logical_vol2 /mnt/

Теперь вы можете работать с нашими логическими томами как с обычными дисками.

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

Типы томов в LVM

В LVM можно использовать три типа томов – Линейные тома, Страйпы и Зеркальные тома.

Линейные тома используются в LVM по умолчанию. Фактически это обычные тома без добавочных функций: никаких дополнительных преимуществ относительно надежности или производительности. На самом деле они похожи на RAID 0. Если вы хотите знать разницу между LVM и RAID – прочтите статью “Особенности и разница между RAID lvm и mdadm

Страйп-lvm полезны, когда вы хотите увеличить скорость чтения/записи для вашего тома LVM. Их можно создать с помощью команды:

$ sudo lvcreate -L 1G -i 2 -n logical_vol2 vol_grp1

…где -i – количество страйпов (это число не может быть больше количества физических дисков), а -L – размер одного страйпа (не может быть больше, чем размер диска).

Это хорошее решение, если вы не боитесь потерять данные. Ведь в такой системе, если один диск выйдет из строя – вся информация будет потеряна. Striped LVM volume также используется, если вы хотите уменьшить нагрузку на жесткие или SSD-диски. Но проблема та же – если один диск ляжет, вы потеряете все данные.

Следующим типом томов LVM является зеркальный том. Этот том является аналогом RAID 1 и создает базу данных для каждого диска в группе.

Этот метод позволяет сохранить копию данных даже при проблемах с физическими носителями. Если один диск выходит из строя – все ваши тома будут переведены в линейные и вы продолжите считывать информацию. В то же время такой LVM будет значительно медленнее, поскольку компьютеру придется несколько раз записывать данные.

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

$ sudo lvcreate -L 200M -m1 -n lv_mirror vol_grp1

Как удалить или изменить размер тома LVM?

Существуют ситуации, когда свободное пространство памяти вашего тома LVM заканчивается. Это не проблема, поскольку вы можете добавить новый жесткий диск в свою группу LVM.

5.1 Как изменить размер логического тома?

Вы можете изменить размер логических томов независимо от места на физическом диске. Если пул памяти имеет свободное место, вы можете использовать его для любого логического тома. Это можно сделать с помощью команды lvextend. Давайте изменим размер нашего тома в LVM с 80 ГБ до 100 ГБ. Для этого воспользуемся командой:

$ sudo lvextend -L+100G /dev/vol_grp1/logical_vol1

…где -L+100G – это новый размер вашего тома.

Чтобы уменьшить размер LVM, вместо + используйте

Итак, команда для уменьшения объема LVM будет выглядеть так:

$ sudo lvextend -L-100G /dev/vol_grp1/logical_vol1

5.2 Как удалить том LVM?

Если вам не нужен том LVM, его всегда можно удалить. Но соблюдайте осторожность, поскольку все данные будут потеряны. Чтобы удалить том LVM, воспользуйтесь командой:

$ sudo lvcreate -L 200M -m1 -n lv_mirror vol_grp1

Теперь том LVM полностью удален.

Моментальные снепшоты в LVM

Технология LVM позволяет создавать моментальные снимки. Это очень полезно, если вам нужно внести некоторые изменения, но вы не уверены в конечном результате. Вы можете создать снепшот и в случае проблем «вернуться» к нему. В то же время вам не нужно останавливать машину, что особенно важно для серверов в продакшн-компаниях, где многие сотрудники могут получить доступ к данным.

Важно: снепшот не является резервной копией.

Когда вы делаете “снимок”, все процессы записи прекращаются на несколько миллисекунд (все зависит от объема данных и производительности сервера). Обычный пользователь не обратит на это внимания.

Кроме того, в случае возникновения проблем вы можете быстро вернуть сервер в рабочее состояние.

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

В то же время вы не можете сохранять свой “снимок” слишком долго, поскольку он загрузит жесткий диск и операционную систему. Вот почему для длительного хранения полезнее регулярное резервное копирование.

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

Lvcreate -L 1G -s -n snap_vg_data /dev/mapper/vg_data-lv_data

…где -L 1G – это объем памяти, зарезервированный для снимка, а vg_data-lv_data – это его имя.

Чтобы проверить подробную информацию о вашем снепшоте, воспользуйтесь командой:

lvdisplay /dev/vg_data/snap_vg_data

Как видите, создавать снепшоты в LVM быстро и легко.

LVM+RAID и RAID+LVM

Многие пользователи спрашивают: можно ли создать том LVM на основе RAID-массивов и наоборот – создать RAID-массив на основе томов LVM?

Ответ “Да”. Но есть некоторые детали, которые вы должны знать перед началом такого процесса.

Если вы хотите создать массив RAID на основе томов LVM, вам нужно знать, как LVM распространяет данные. Том LVM будет заполнять первый диск, в то время как второй диск не будет использоваться (во время линейногораспределения данных). Идентификатор этого процесса показан на рисунке ниже:

Такое распределение является большой проблемой для SSD накопителей, поскольку сильно увеличивает износ заполненного диска, к тому же существенно снижает производительность системы. Даже если вы будете использовать метод четности (две группы дисков с паритетом) – это не изменит ситуацию. Проблема состоит в том, что четность будет использоваться внутри группы, но не между всеми дисками. Заполнение второй группы начнется только в том случае, если первая группа будет заполнена.

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

Итак, если вы не фанат Linux, это не ваш вариант. В таком случае лучше использовать обычный массив RAID, поскольку Windows и Mac OS не могут работать с LVM.

Что делать, если данные потеряны?

Использование технологий, предназначенных для повышения безопасности данных или гибкости распределения дискового пространства, не всегда хорошо заканчивается. В некоторых случаях это может спровоцировать больше проблем, чем использование обычных дисков. Особенно это актуально для неопытных пользователей, которые хотят получить что-то большее от конфигурации своего компьютера, но не знают, как правильно справиться с конструкцией диска. Вот почему важно знать, что делать, если важные данные потеряны.

Во-первых, не паникуйте и воспользуйтесь профессиональным инструментом для восстановления данных.

Сейчас наиболее эффективным решением для получения важных данных с массива RAID является RS RAID Retrieve.

Встроенный конструктор RAID воссоздаст ваш массив RAID или том LVM, и вы сможете переместить свою информацию в безопасное место.

Давайте подробнее рассмотрим, как вы можете получить данные:

Шаг 1. Загрузите и установите RS RAID Retrieve. Запустите приложение после установки. Перед вами откроется встроенный Конструктор RAID». Нажмите «Далее»

Шаг 2. Выберите способ добавления массива RAID в том LVM для сканирования. RS RAID Retrieve предлагает три варианта выбора:

  • Автоматический режим – позволяет просто указать диски, которые составляли массив или том LVM, и программа автоматически определит их порядок, тип массива и другие параметры;
  • Поиск по производителю – этот параметр следует выбрать, если вы знаете производителя RAID-контроллера. Этот вариант также автоматический и не требует никаких знаний о структуре массива RAID. Наличие информации изготовителя позволяет сократить время создания массива, а следовательно, это быстрее, чем предыдущий вариант;
  • Создание вручную – этот параметр следует использовать, если вы знаете, какой тип RAID вы используете. При этом вы можете указать все параметры, которые вам известны, а те, которые вам не известны, программа автоматически определит.

После выбора соответствующего параметра нажмите «Далее».

Шаг 3. Выберите диски, которые составляют массив RAID или том LVM, и нажмите «Далее». Это запустит процесс обнаружения конфигураций массива. По завершении нажмите «Готово».

Шаг 4. После того, как конструктор создаст том LVM (или массив RAID на основе томов LVM), он будет отображаться как обычный диск. Дважды щелкните по нему левой кнопкой мыши. Перед вами откроется Мастер восстановления файлов. Нажмите «Далее»

Шаг 5. RS RAID Retrieve предложит просканировать ваш массив или LVM, чтобы найти файлы для восстановления. У вас будет два варианта: быстрое сканирование и полный анализ массива. Выберите нужный вариант. Затем выберите тип файловой системы, используемый в массиве. Если вы не знаете эту информацию, проверьте все доступные опции, как на скриншоте. Стоит отметить, что RS RAID Retrieve поддерживает все современные файловые системы.

Шаг 6. Начнется процесс сканирования. Когда он завершится, вы увидите предварительную структуру файлов и папок. Найдите нужные файлы, щелкните правой кнопкой мыши на них и выберите «Восстановить»

Шаг 7. Укажите место, где будут сохранены восстановленные файлы. Это может быть жесткий диск, ZIP-архив или FTP-сервер. Нажмите «Далее»

[smart_img itemprop=”contentUrl” src=”/wp-content/themes/soft/images/blog/raid0-recovery/place.gif” alt=”The place to store recovered files”

После нажатия кнопки «Далее» программа начнет процесс восстановления. После его завершения вы найдете выбранные файлы в указанном месте.

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

Как вы видите, с помощью RS RAID Retrieve легко вытащить важные данные из сломанной LVM. Кроме того, вам не нужно дополнительное программное или аппаратное обеспечение. Просто подключите накопители к ПК и воспользуйтесь приведенной выше инструкцией. Быстро и легко.

Часто задаваемые вопросы

Оставить комментарий