Глубокое погружение в уровень хранения vStack, сфокусированное на использовании файловой системы ZFS

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

vStack SDS

На уровне хранения данных гиперконвергентной платформы vStack работает программно-определяемое хранилище (SDS), которое использует ресурсы из кластерного слоя (логически объединенных дисков узлов). Единица грануляции слоя SDS — пул, собранный из дисков каждого узла, имеющий резервирование RAID-Z и избыточность, равную избыточности кластера. Программный уровень поверх базовой физической инфраструктуры позволяет пользователям всецело управлять виртуализированными ресурсами дискового пространства. Это отличает его от традиционных систем хранения SAN и NAS.

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

Технологической основой уровня хранения данных vStack SDS является файловая система ZFS, что обеспечивает избыточность и транзакционную целостность информации, а также предоставляет функции автоматического восстановления при возникновении сбоев в работе системы. Помимо этого, ZFS имеет собственный вариант избыточности данных — RAID-Z.

SDS также предоставляет следующие возможности:

  • создание базовых сущностей хранения данных (пулов);

  • создание и предоставление примитивов хранения (диски виртуальных машин) слою SDC;

  • компрессия и дедупликация;

  • поддержка внутренней целостности данных;

  • создание клонов и снимков;

  • самовосстановление данных;

  • обеспечение транзакционной целостности данных.

Файловая система ZFS

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

Избыточность

SDS состоит из пулов, которые включают в себя диски каждого узла. В каждый момент времени пул работает на конкретном узле кластера. Один из ключевых атрибутов кластера — избыточность RAID-Z/RAID-Z2/RAID-Z3, при которой в работе инфраструктуры используется больше элементов, чем требуется. Это позволяет обеспечить резервирование. Если один из узлов выйдет из строя, он будет исключен из кластера. При этом пулы потеряют по одному диску. После этого, благодаря процедуре аварийного переключения, пул с вышедшего из строя узла и все работавшие на нем виртуальные машины станут доступны на другом узле. Процедура аварийного переключения ресурсов выполняется автоматически.

Для всех промышленных инсталляций рекомендуется использование избыточности типа N+2 или выше (платформа поддерживает N+1, N+2 и N+3).

Рассмотрим свойство избыточности на примере. На схеме ниже изображен пятиузловой кластер с избыточностью N+2. Вертикальные контейнеры — пулы, горизонтальные — узлы кластера. Каждый пул содержит диск из каждого узла. Избыточность пула всегда равна избыточности кластера.

Пятиузловой кластер
Пятиузловой кластер

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

Аварийное переключение кластера
Аварийное переключение кластера

Копирование при записи

Файловая система разрабатывалась с концепцией copy-on-write, позволяющей минимизировать затраты на копирование данных и повысить производительность операций записи. В большинстве файловых систем при перезаписи данных на то же физическое место носителя ранее записанные там данные теряются навсегда.

Перезапись блока в других файловых системах
Перезапись блока в других файловых системах

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

Копирование при записи в ZFS
Копирование при записи в ZFS

Важный нюанс: на самом деле ZFS работает с более продвинутым механизмом, называемым Redirect-on-Write (RoW). Термин Copy-on-Write (CoW) в отношении ZFS большинством людей применяется ошибочно.

Снапшоты, не занимающие дополнительное пространство

Концепция copy-on-write закладывает основу для другой функции ZFS — моментальных снимков системы (снапшотов). ZFS использует ее для отслеживания изменений в системе. Снапшот содержит оригинальную версию файловой системы, а в действующей файловой системе присутствуют только изменения, которые были сделаны с момента создания последнего снапшота. За счет копирования при записи в системе не используется дополнительное пространство. Когда новые данные записываются в действующую файловую систему, выделяются новые блоки для сохранения этих данных, а блоки исходных данных остаются в виде снимка.

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

Проверка целостности и автовосстановление

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

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

Восстановление в традиционных файловых системах
Восстановление в традиционных файловых системах

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

Восстановление в файловой системе ZFS
Восстановление в файловой системе ZFS

Отсутствие «пробелов» записи

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

ZFS решает проблему Write hole путем применения концепции copy-on-write, о которой уже шла речь выше. Новые данные не записываются поверх старых, а пишутся в новое место, а потом атомарно происходит переустановка указателя на новое расположение данных. При восстановлении системы после сбоя ZFS использует информацию из исходных блоков для восстановления неправильных операций записи. Это позволяет обеспечить целостность данных и полностью избежать проблемы Write hole. Это важное преимущество, которое делает ZFS более надежным и безопасным вариантом для хранения данных.

Сжатие данных

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

При записи данных на диск ZFS автоматически сжимает их. Данные можно читать и записывать как обычно, а сжатие и распаковка происходят автоматически на уровне файловой системы. 

Дедупликация данных в ZFS позволяет удалить дублирующиеся порции данных, что сокращает использование дискового пространства и повышает эффективность хранения данных. При записи новой порции данных ZFS проверяет его на наличие совпадающих контрольных сумм в файловой системе. Если обнаруживается дублирование, то новая порция данных не записывается на диск, а на ее месте создается ссылка на существующую порцию данных. Таким образом, одинаковые порции данных сохраняются только один раз.

Заключение

Платформа vStack следует всем современным тенденциям хранения информации и обеспечивает высокий уровень целостности и доступности данных. Совмещая в себе положительные стороны файловой системы ZFS и технологии RAID-Z, она обеспечивает высокую производительность, устойчивость к ошибкам и защиту данных от потерь. Благодаря своей уникальной архитектуре vStack способна гарантировать целостность и доступность информации даже в условиях сбоев и высокой степени нагрузки.

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

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

Эта статья поддерживается командой vStack.

vStack — гиперконвергентная платформа для построения виртуальной инфраструктуры корпоративного уровня. Продукт входит в реестр российского ПО.  

•  Наш сайт
•  Наш блог про виртуализацию и Enterprise IT
•  Истории успеха наших клиентов

Комментарии (1)


  1. outlingo
    12.09.2023 13:03

    К рассказу о хорошести ZFS не хватает рассказа о ее нюансах, типа очень большого write amplification и больших просадок (или скорей немасштабируемостью) с параллельной многопоточной записью в один файл, что делает ее применение достаточно ограниченным в некоторых случаях.