Сравнение и разница между RAID lvm и mdadm

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

Содержание

  1. Разница между Lvm и mdadm
  2. Сравнение RAID LVM и RAID mdadm
  3. Можно ли использовать mdadm и LVM одновременно?
  4. Как восстановить утерянные данные?

Разница между Lvm и mdadm

Lvm и mdadm – это две похожих и одновременно абсолютно разных утилиты, которые предназначены для работы с информацией на дисках. Схожесть заключается в том, что как LVM, так и mdadm занимаются распределением данных между накопителями на программном уровне. То есть вы можете создать программный RAID массив или Lvm диски используя только возможности операционной системы. Никакого дополнительного оборудования не нужно. Чтобы понять в чем различие – давайте для начала рассмотрим, что же представляет из себя каждая из этих технологий по отдельности.

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

Предположим, что у нас есть два диска объемом 100 Гб. При помощи LVM мы можем объединить их в один том объемом 200Гб (100 Гб + 100 Гб), а затем создать три логических диска: первый объемом 120 Гб и два по 40 Гб. Таким образом мы взяли часть памяти другого накопителя и присоединили к первому.

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

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

Да, LVM может реализовать некоторое подобие RAID массива используя собственные решения, однако они будут либо сильно уступать в плане производительности, либо передавать команды утилите md, то есть самому устройству mdraid. Но, об этом поговорим немного позже.

Давайте поговорим о том, что же такое mdadm.

Mdadm – это специальная утилита в операционной системе Linux, главным предназначением которой является создание и управлениями RAID массивами. То есть, главной задачей mdamd является обеспечение избыточности, которая в свою очередь означает сохранность данных в случае выхода их строя одного или нескольких дисков (в зависимости от выбранного типа RAID). Фактически mdadm общается с дисками и распределяет данные между ними на физическом уровне, не имея абсолютно никакого отношения к логической разметке дисков. Весь RAID массив, собранный из нескольких дисков отображается в операционной системе как отдельный накопитель, с которым можно производит те же манипуляции, что и с обыкновенным диском.

Сравнение RAID LVM и RAID mdadm

Как уже упоминалось выше – создать программный RAID при помощи технологии LVM вполне возможно (например, LVM RAID 0 или LVM RAID 5).

LVM RAID означает специальный метод сбора LV раздела, при использовании которого для управления LV разделами используется драйвер DM (Device Mapper), а для распределения информации между дисками применяется драйвер MD.

LVM RAID можно также создать минуя драйвер MD, однако в этом случае сильно пострадает производительность такого массива. Кроме того, если что-то случится с любым из дисков – его замена и восстановление данных будет очень трудным.

Итак, пока что вроде бы все понятно. Теперь поговорим о минусах такого решения

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

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

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

Нельзя не упомянуть, что операционная система Windows и Mac OS не поддерживают работу с LVM.

Еще один минус LVM появляется при его использовании на SSD накопителях. Чтобы понять в чем суть – давайте рассмотрим принцип работы LVM.

Вся информация в LVM разбивается на экстенты (этакие блоки информации), которые записываются на диск. Минимальный размер экстента составляет 4 МБ. Существует достаточно много алгоритмов записи экстентов на диски. Мы в качестве примера рассмотрим самый простой – линейный, так как на его примере легче всего понять, как функционирует LVM.

При использовании линейного алгоритма все экстенты записываются на диски по порядку. Если для записи экстентов некоего файла не хватает на места на диске – они начинают по порядку записываться на второй м т.д.

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

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

И тут многие скажут, что можно использовать способ чередования (некий аналог RAID 0 в mdadm). Частично они будут правы, так как нагрузка на диски снизится, а скорость чтения/записи возрастет прямо пропорционально количеству задействованных дисков, поскольку информация будет записываться на все диски одновременно. Однако тут также есть подводные камни…

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

Но самое главное, что при добавлении новой группы дисков чередование будет проводится не между всеми дисками одновременно, а внутри каждой группы дисков.

Получается, что запись на новую группу дисков начнется только тогда, когда будет заполнена первая. Отсюда вывод, что первая группа дисков будет работать под повышенной нагрузкой.

Mdadm без проблем может решить вышеописанную проблему, так как новые ее версии без проблем позволяют добавлять новые диски в RAID 0 массив, после чего запись на них будет чередоваться с ранее установленными дисками, снижая нагрузку и уровень износа для SSD накопителей.

Фактически mdadm – это высокофункциональная утилита, которая добавляет поддержку RAID массивов в ОС Linux на уровне ядра (именно поэтому LVM использует драйвер MD для работы с дисками на физическом уровне).

Кроме того, для mdadm существует графическая оболочка под названием «Webmin», а значит пользователь может создать программный RAID массив практически любого типа всего в несколько кликов (в том числе и RAID 10, 50, 60), а не использовать куча команд и т.д. (фактически не требуя особых знаний операционной системы). О том, как это сделать вы можете прочесть в статье «Как создать программный RAID?»

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

Поэтому мы рекомендуем использовать mdadm для создания программного RAID массива, так как он будет как более быстрым, так и более надежным.

Суммируя все вышесказанное можно сделать следующий вывод:

Плюсы LVM:

  • гибкое распределение дискового пространства;
  • динамическое добавление дисков (без остановки работы сервера);

Недостатки LVM:

  • сложность администрирования (требуется знать большое количество команд и утилит);
  • очень сложная замена дисков в RAID массиве;
  • массивы, созданные при помощи LVM будут медленнее;
  • нежелательно использовать на SSD накопителях;
  • необходимо знать какие файловые системы можно использовать, а какие нежелательно;
  • многие операционные системы не поддерживают LVM;

Плюсы mdadm:

  • максимально быстрые RAID массивы;
  • динамическое добавление дисков в RAID массив (использование hot spare дисков);
  • быстрая и легкая замена вышедших из строя дисков;
  • легкость администрирования (благодаря графической оболочке Webmin);

Недостатки mdadm:

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

На основании всего вышесказанного вы можете выбрать какая технология лучше подходит для ваших потребностей, но что делать, если хочется получить и надежность RAID массивов и гибкость томов LVM одновременно?

Ответ на этот вопрос есть, и он детально описан в следующем пункте этой статьи.

Можно ли использовать mdadm и LVM одновременно?

Мы уже говорили, что лучше всего создавать RAID массивы при помощи утилиты mdadm. Однако, если кроме надежности хочется получить и гибкость создания томов – можно использовать LVM поверх RAID массива. То есть сначала создается RAID массив нужного типа (например, RAID 5), и потом, при помощи LVM создать несколько логических дисков.

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

Недостатком такого решения является необходимость знания большого количества команд, чтобы нормально работать с LVM томами, поскольку хоть вы и сможете создать RAID массив в несколько кликов при помощи Webmin, LVM останется все таким же сложным в администрировании и с этим ничего не поделаешь.

Важно: если вы решили использовать RAID вместе с LVM, то создавайте сначала RAID массив и на его основании LVM тома. Если сделаете наоборот – получите очень сложный в управлении массив, который к тому же будет не слишком быстрым. А в случае поломки любого из дисков – его замена будет очень сложной.

Как восстановить утерянные данные?

Несмотря на применение различных технологи, типа RAID массивов, гарантировать безопасность данных на 100% не может никто. И если использование RAID массивов позволяет несколько повысить уровень сохранности данных, то разного рода надстройки типа LVM, могут вместо добавления нового функционала стать причиной потери важных данных. Кроме того, несмотря на то, что LVM предлагает некоторое подобие RAID массивов, эта технология является менее надежной, нежели всем привычный mdadm RAID.

Но даже эта технология не может дать 100% гарантии что вы не потеряете информацию, ведь есть еще поломки контроллера, да и случайное удаление данных или случайное форматирование массива никто не исключал.

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

Мы предлагаем использовать RS RAID Retrieve – лучшее решение для сборки сломанного RAID массива и дальнейшего восстановления утерянной информации.

Программа проста и удобна в использовании, и поддерживает практически все конфигурации RAID массивов (включая гибридные) и LVM. Кроме того, RS RAID Retrieve поддерживает ВСЕ современные файловые системы, а также NAS хранилища. Кроме того, она позволяет восстанавливать данные с RAID массивов, независимо от того, в какой операционной системе они работали – будь то Windows, Linux, MacOS или Solaris.

Просто подключите все диски массива к работающему компьютеру и выполните ряд простых действий:

Шаг 1: Скачайте и установите RS RAID Retrieve. Запустите приложение после установки. Перед вами откроется встроенный “RAID конструктор“. Нажмите “Далее

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

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

После того, как выберите подходящий вариант – нажмите “Далее

Шаг 3: Выберите диски, из которых состоял RAID массив и нажмите “Далее“. После этого начнется процесс обнаружения конфигураций массива. После его завершения нажмите “Готово

Шаг 4: После того, как конструктор соберет массив — он будет отображаться как обыкновенный накопитель. Дважды щелкните на нем. Перед вами откроется Мастер восстановления файлов. Нажмите “Далее

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

Когда все настроено — нажмите “Далее

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

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

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

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

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

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

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