2

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

  1. Мне было интересно, можно ли классифицировать различные методы виртуализации хранилища на виртуализацию на уровне устройства (диска), раздела или файловой системы, как показано ниже

    • RAID относится к виртуализации на уровне устройства / диска, которая заменяет физические диски логическими / виртуальными дисками.
    • LVM относится к виртуализации на уровне разделов, которая заменяет разделы логическими / виртуальными разделами (также называемыми логическими томами).
    • Существует также витализация на уровне файловой системы, которая заменяет файловые системы логическими / виртуальными файловыми системами, например, сетевым хранилищем (NAS).
  2. Если мое понимание выше верно, реализует ли виртуализация на каждом уровне также виртуализацию на всех более низких уровнях? Например, виртуализация на уровне раздела также реализует виртуализацию на уровне устройства, а виртуализация на уровне файловой системы также реализует виртуализацию как на уровне раздела, так и на уровне устройства.

  3. Как разные уровни виртуализации влияют / определяют их различные области применения? Например, есть ли приложения, подходящие для RAID, но не для LVM, а для LVM, но не для RAID?

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

    Сравните статью с моим пониманием в части 1:

  5. Я бы предпочел выделить сетевую виртуализацию из блочной виртуализации в вышеупомянутой статье в Википедии, потому что для виртуализации хранилища по сети, я думаю, мы также можем классифицировать различные методы по уровням устройства, раздела и файловой системы? Например, могу ли я сказать, что сеть хранения данных (SAN) относится к уровню устройства, а сетевое хранилище (NAS) - к уровню файловой системы?

Спасибо и всего наилучшего!

3 ответа3

3

Можно также дать ответ. Обратитесь к ответу @soandos для более подробного ответа на ваши конкретные вопросы.

LVM против RAID

RAID, как уже упоминалось, является стандартом технологий, в которых несколько дисководов выделяются вместе в виде массива дисков, обеспечивая разный уровень производительности и преимущества в надежности. Например, RAID 0 обеспечивает наилучшую производительность, какую только можно получить с жесткими дисками, и он чрезвычайно чувствителен к потере диска (одна потеря = практически полная потеря), тогда как RAID 6 обеспечивает избыточность даже при восстановлении массива в случае потери одного диска. RAID-массив обычно рассматривается как один диск для ОС.

Можно сказать, что RAID - это сопоставление много-к-одному.

LVM, с другой стороны, позволяет формировать логические "дисководы" (точные, но в любом случае блочные устройства) из частей разных дисководов. Они существуют в режиме «много-ко-многим». В то время как можно использовать LVM для достижения того, что может быть достигнуто с помощью RAID, LVM на самом деле может достичь гораздо большего. Например, чтобы добавить другой диск в массив RAID, скорее всего, потребуется восстановить весь массив с нуля. В LVM это просто добавление диска к машине, добавление сопоставления дисков в логический том и его использование (фактическая конфигурация немного сложнее, но, конечно, меньше, чем перестройка всего массива).

1
  1. RAID - это технология резервного копирования, которая гарантирует, что в случае сбоя диска все данные останутся нетронутыми, а LVM - это менеджер логических томов, который может многое.
  2. Это не.
  3. Это кажется странным вопросом. RAID - это способ разделения данных между дисками, поэтому в случае сбоя данные не теряются. LVM - это менеджер томов, который можно использовать для изменения образа пользователя / ОС на всех жестких дисках. Они не имеют ничего общего друг с другом (хотя LVM может реализовывать RAID 1 и RAID 0, что не является его основной задачей).
  4. Первое означает, что вам не нужно знать, на каком физическом устройстве находятся данные, а второе означает, что вы можете хранить из-за отсутствия лучшего слова ссылки между файлами более абстрактным способом.
  5. Как указывалось выше, нет никакого "уровня устройства" или "уровня раздела", о котором можно говорить, поэтому нет, вы не можете ссылаться на них как таковые.
0

Статья не очень хорошо написана.

Одна из самых больших проблем состоит в том, что в полный стек хранилища встроено несколько уровней абстракции, и слово "виртуализация" является достаточно нечетким, так как трудно точно определить место для его размещения. Чтобы лучше рассмотреть многие уровни абстракции в хранилище, я укажу на статью в блоге, которую я сделал в прошлом году (читайте ее здесь, чтобы узнать подробности).

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

Стек хранилища (несколько упрощенный):

  1. диск
  2. RAID-контроллер
  3. Программный RAID
  4. Менеджер громкости
  5. Файловая система
  6. Сетевая файловая система
  7. Клиент сетевой файловой системы

Диск, даже старые школьные вращающиеся магнитные диски, делают уровень виртуализации. Они представляют логическое представление фактических блоков на пластинах (или ячеек хранения для SSD), и это было так с середины 80-х или около того. Магнитные накопители резервируют определенное количество блоков для переназначения неисправных блоков, и логическое представление состоит в том, как это абстрагируется от контроллера диска. Такие технологии, как SMART, могут поймать это в действии и сообщить о том, что накопитель работает до сбоя, поэтому вы можете соответствующим образом спланировать свой переход. Это было в той или иной форме с 80-х годов.

Карты RAID предоставляют еще один уровень абстракции, скрывая истинную форму хранилища от операционной системы. Это происходит с тех пор, как в конце 80-х появились первые карты RAID, и с тех пор они только усложнились. Карты с кэшем записи на них обеспечивают еще один уровень абстракции, поскольку записи могут быть зафиксированы как зафиксированные до того, как они фактически окажутся где-то на диске. Действительно причудливые (такие как в массивах сетей хранения данных) могут даже записывать в два отдельных дисковых массива для репликации в реальном времени, и ОС не является мудрой.

Как только вы попадаете в операционную систему, все становится намного мрачнее, поскольку каждый делает свое дело. Программный RAID (md в Linux) обычно реализуется как драйвер хранилища низкого уровня, который представляет логически объединенное хранилище для более высоких уровней хранилища. Как и в случае с картами RAID, вы можете делать здесь все что угодно. Некоторые из продуктов "Виртуализация хранилища", которые вы видите там, реализованы на этом этапе.

Поднявшись выше, вы попадаете в диспетчеры томов (LVM), которые могут предоставить некоторые очень сложные конфигурации. Если следующий слой объединяет диски в один виртуальный том, менеджеры томов могут объединять несколько томов в один больший том ... или разбивать пул томов на произвольное количество томов. Опять же, некоторые из продуктов Storage Virtualization, которые вы видите, также присутствуют на этом уровне.

Следующий шаг - файловая система. Это слой, где появляются известные абстракции "file" и "directory". Некоторые файловые системы (btrfs, zfs) имеют встроенные в них функции управления томами, такие как моментальные снимки, дедупликация, репликация на другие устройства и даже миграция файлов между уровнями хранения. Этот последний бит еще не во многих файловых системах, но определенно является целью для поставщиков хранилища виртуализации.

Следующим шагом является сетевая файловая система. Это такие вещи, как Samba/CIFS, NetATalk/Appletalk, NFS и другие. Если написано правильно, эти сетевые файловые системы могут дополнительно абстрагировать хранилище. Один продукт, о котором я думаю, - Novell Open Enterprise Server и его ShadowVolumes - занимает несколько томов в разных хранилищах (предположительно, разные скорости / стоимость) и представляет их как один том пользователю сети, а затем переносит файлы между томами на основе статистика использования. Некоторые устройства "Виртуализация хранилища", которые вы можете купить, на самом деле делают тяжелую работу на этом уровне.

Последней остановкой в нашем путешествии по стеку хранения является клиент сетевой файловой системы на клиентском компьютере. Именно на этом уровне существует распределенная файловая система (DFS), которая позволяет одному логическому представлению файловой системы существовать в нескольких сетевых файловых системах. Клиент знает, что это общий ресурс DFS, а этот конкретный объект - это ссылка DFS, и при следовании за ним представьте указанный сетевой ресурс как подкаталог родительского каталога. На этом уровне были и другие примеры абстракции, но DFS, пожалуй, самый распространенный.


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


По сути, "виртуализация хранилища" по-прежнему является в основном маркетинговым термином для чего-то, что происходило с рассвета эры ПК (если не раньше), только на этот раз появляются новые уровни абстракции, когда виртуализация является модным словом на данный момент.

Один новый уровень абстракции, о котором я знаю, это то, что называется "Маршрутизатор хранения", который вы когда-либо увидите только в больших сетях хранения данных. Это устройство имеет несколько различных массивов хранения и представляет эти отдельные массивы в виде одного массива с несколькими LUN. Более изящные могут делать интересные абстракции на уровне блоков, такие как перемещение редко используемых блоков в более медленное / более дешевое хранилище и перемещение часто используемых блоков на уровни SSD, или обрабатывать репликацию в реальном времени между массивами хранения, которые обычно не допускают такого рода вещи.

PS: RAID - это не просто виртуализация на уровне устройств. Сейчас я работаю с массивом хранения, который берет куски дисков и назначает их различным группам RAID. Он работает просто отлично (я делаю это прямо сейчас), и у меня есть тома RAID1 и RAID5 на одном дисковом устройстве. Потеряйте два диска, и тома RAID5 уже готовы, но тома RAID1 на одних и тех же дисках просто хороши.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .