О кластере хранилища данных
Кластер хранилища обеспечивает наиболее эффективное использование оборудования благодаря помехоустойчивому кодированию (технология Erasure Coding), встроенному кэшированию на твердотельных накопителях, автоматической балансировке нагрузки и поддержке RDMA/InfiniBand. Пространство кластера можно использовать для хранилищ следующих типов:
- Блочное хранилище iSCSI (горячие данные и виртуальные машины).
- Объектное хранилище S3 (защищено с помощью георепликации между ЦОД).
- Файловое хранилище (NFS).
Кроме того, Кибер Инфраструктура интегрирована с решениями Кибер Бэкап, что позволяет хранить резервные копии в кластере, отправлять их в облачные сервисы (такие как Yandex.Cloud) либо сохранять их на устройстве NAS по протоколу NFS. Георепликация доступна для шлюзов Backup Gateway, установленных на различных внутренних хранилищах: это может быть локальный кластер хранилища, том NFS или публичное облако.
Политики хранения данных можно настроить в зависимости от сценариев использования: каждый том данных может иметь свои настройки режима избыточности, уровня хранилища и области отказов. Также данные могут шифроваться по стандарту AES-256.
Архитектура кластера хранилища данных
Базовым компонентом продукта Кибер Инфраструктура является кластер хранилища — это группа физических серверов, связанных посредством сети. Основное хранилище состоит из сетевых дисков, каждому из которых назначаются одна или несколько ролей. Обычно на каждом сервере в кластере выполняются основные службы хранилища, которые соответствуют следующим дисковым ролям:
-
Метаданные
На узлах метаданных работают службы метаданных. На них хранятся метаданные кластера, также они управляют тем, как пользовательские файлы разделяются на фрагменты и где сохраняются эти фрагменты. Узлы метаданных также обеспечивают наличие достаточного количества реплик для фрагментов. Наконец, на них регистрируются в журналах все важные события, происходящие в кластере. Для обеспечения надежности системы Кибер Инфраструктура использует алгоритм консенсуса Паксос. Он гарантирует отказоустойчивость при работоспособности большинства узлов, на которых работают службы метаданных.
Чтобы обеспечить высокую доступность метаданных в производственной среде, службы метаданных должны выполняться как минимум на трех узлах кластера. В этом случае при отказе одной службы остающиеся две продолжат контролировать кластер. Однако рекомендуется применять максимум пять служб метаданных, чтобы кластер мог выдержать одновременный отказ двух узлов без потери данных.
Первичный узел метаданных является ведущим узлом в кворуме метаданных. В случае отказа ведущего узла с MDS в качестве ведущего выбирается другой доступный узел с MDS.
-
Хранилище
На узлах хранения выполняются службы фрагментов данных (CS). Эти узлы хранят данные в виде фрагментов фиксированного размера и предоставляют доступ к этим фрагментам. Все фрагменты данных реплицируются, и реплики размещаются на разных узлах хранения для обеспечения высокой доступности данных. При отказе одного из узлов хранения оставшиеся исправные узлы продолжат предоставлять доступ к фрагментам данных, которые хранились на отказавшем узле. Роль хранилища можно назначить только серверу с дисками определенной емкости.
Узлы хранения также могут реализовывать преимущества кэширования данных и подсчета контрольных сумм.
- Кэширование данных улучшает производительность кластера путем размещения часто используемых данных на твердотельном накопителе.
-
При контрольном суммировании данных контрольные суммы создаются при каждом изменении данных в кластере. Когда эти данные в дальнейшем считываются, вычисляется новая контрольная сумма, которая сравнивается со старой. Если две суммы не совпадают, операция чтения повторяется, что обеспечивает повышенную надежность и целостность данных.
Если на узле имеется твердотельный (SSD) накопитель, он будет автоматически настроен на хранение контрольных сумм при добавлении узла в кластер. Это рекомендуемая настройка. Однако если на узле нет твердотельного накопителя, контрольные суммы по умолчанию будут храниться на диске с вращающимися пластинами. Это значит, что данному диску придется обрабатывать двойной объем ввода-вывода, поскольку на каждую операцию чтения/записи данных будет приходиться дополнительная операция чтения/записи соответствующей контрольной суммы. Поэтому на узлах без твердотельных накопителей может потребоваться отключение контрольного суммирования, чтобы повысить производительность за счет отказа от контрольных сумм. Это может быть особенно результативно для хранилища горячих данных.
- Дополнительные роли:
-
Журнал и кэш на твердотельном накопителе
Повышает производительность чтения/записи фрагментов данных путем создания кэша записи на выбранных твердотельных накопителях (SSD). Такие накопители также рекомендуется использовать для размещения метаданных. Использование журналов записи может более чем вдвое увеличить скорость записи в кластере.
-
Система
Один диск на узел, зарезервированный для операционной системы и недоступный для хранения данных.
Обратите внимание на следующее.
- Отменить назначение роли «Система» диску невозможно.
- Если физический сервер содержит системный диск емкостью более 100 ГБ, этому диску можно дополнительно назначить роль «Метаданные» или «Хранилище».
- Рекомендуется назначать роль «Система+Метаданные» твердотельному накопителю. Назначение обеих этих ролей жесткому диску приведет к посредственной производительности, подходящей только для холодных данных (например, архивов).
- Роль «Система» не может сочетаться с ролями «Кэш» или «Метаданные+Кэш». Причина состоит в том, что операции ввода-вывода, создаваемые операционной системой и приложениями, будут конкурировать с операциями ввода-вывода при ведении журнала, что нивелирует преимущества твердотельного накопителя по производительности.
Наряду с основными службами хранения на серверах выполняются точки доступа к хранилищам, которые обеспечивают доступ к серверу хранения данных для служб виртуализации высокого уровня и служб хранилищ.
Кроме того, на сервере, присоединенном к кластеру хранения данных, не могут выполняться ни службы метаданных, ни службы фрагментов данных. В этом случае на узле будут выполняться только точки доступа к хранилищу, он также может играть роль клиента кластера хранения данных.