Статья не очень хорошо написана.
Одна из самых больших проблем состоит в том, что в полный стек хранилища встроено несколько уровней абстракции, и слово "виртуализация" является достаточно нечетким, так как трудно точно определить место для его размещения. Чтобы лучше рассмотреть многие уровни абстракции в хранилище, я укажу на статью в блоге, которую я сделал в прошлом году (читайте ее здесь, чтобы узнать подробности).
В маркетинговой речи "Виртуализация хранилища" представляет собой просто абстракцию, которой раньше не было. Это может произойти во многих точках в зависимости от сегмента рынка. Но это только маркетинг. Время для технических.
Стек хранилища (несколько упрощенный):
- диск
- RAID-контроллер
- Программный RAID
- Менеджер громкости
- Файловая система
- Сетевая файловая система
- Клиент сетевой файловой системы
Диск, даже старые школьные вращающиеся магнитные диски, делают уровень виртуализации. Они представляют логическое представление фактических блоков на пластинах (или ячеек хранения для 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 на одних и тех же дисках просто хороши.