В этой статье:
Введение
Современные ИТ-задачи диктуют жесткие условия к системам хранения данных. Рост объемов информации, требования к её доступности, целостности и скорости заставляют инженеров искать новые подходы. Традиционные монолитные SAN и NAS уже не справляются с виртуализацией, большими данными и облачными сервисами, уступая место масштабируемым и программно-определяемым решениям. Яркий пример тому — Кибер Хранилище.
В этой статье мы разберём два основополагающих компонента нашей программной СХД — кластер хранения и подсистему кэширования, — которые лежат в основе эффективности, надёжности и производительности продукта.
Архитектура кластера и системы кэширования
Кластер хранилища: Масштабируемость и отказоустойчивость
Ядром Кибер Хранилища является кластер хранилища — группа физических серверов, объединенных высокоскоростной сетью. Такой подход обеспечивает возможность вертикального масштабирования за счет добавления новых узлов для увеличения емкости и производительности и высокую доступность. Однако ключевым отличием от аналогичных решений является продуманная архитектура ролей, закрепленных за дисками.
Узлы метаданных (MDS)
Кластер «Кибер Хранилища» построен на принципе разделения управления и данных. Узлы метаданных являются критически важным компонентом, хранящим метаданные о файловой системе и управляющим распределением данных. Узлы метаданных отвечают за хранение метаданных кластера и управление разбиением пользовательских файлов на фрагменты (чанки), а также за их размещение. Узлы метаданных следят за тем, чтобы поддерживалось достаточное число реплик (при избыточности через репликацию) либо блоков данных с блоками чётности (при избыточности через алгоритм Erasure Coding). В основе работы MDS лежит распределённая машина состояний (RSM), где для достижения консенсуса между сервисами MDS применяется алгоритм PAXOS (в модификации multi-PAXOS). Изменения состояния кластера фиксируются в транзакционном журнале собственной реализации. Если узел-лидер MDS выходит из строя, остальные сервисы MDS выбирают нового лидера, который восстанавливает состояние кластера, воспроизводя записи из транзакционного журнала.
Для промышленных сред настоятельно рекомендуется иметь не менее трех узлов метаданных, а для максимальной отказоустойчивости — пять, что позволит пережить одновременный выход из строя двух узлов без потери управления.
Узлы хранения
Узлы хранения, на которых работают службы фрагментов данных (Chunk Servers), отвечают за хранение данных в виде фрагментов и предоставляют к ним доступ. В зависимости от политики избыточности, заданной для конкретного файла, его фрагменты либо реплицируются, либо для них формируются блоки четности по алгоритму Reed-Solomon в соответствии с выбранной схемой избыточности M+N. Если один из узлов хранения выходит из строя, остальные исправные узлы продолжают обеспечивать доступ к фрагментам данных, которые хранились на отказавшем узле.
Для защиты от «тихого повреждения данных» (silent bit rot) службы фрагментов могут использовать подсчет контрольных сумм. При этом контрольные суммы создаются каждый раз, когда данные в кластере изменяются. При последующем чтении этих данных вычисляется новая контрольная сумма и сравнивается со старой. Если суммы не совпадают, операция чтения повторяется — это повышает надежность и целостность данных. Если ошибка возникает повторно, чанк помечается как failed и в дальнейшем исключается из операций ввода-вывода. Данные из такого чанка восстанавливаются в новый чанк из оставшихся реплик или вычисляются по алгоритму Reed-Solomon. Использование контрольных сумм немного снижает производительность кластера, но ее использование обязательна для рабочих сред.

Дополнительные роли дисков
Гибкость Кибер Хранилища проявляется в возможности назначения дискам нескольких ролей:
-
Система: Диск (или раздел), зарезервированный под ОС. Ему также можно назначить роль «Метаданные», но лучше избегать такой конфигурации. Технически, можно добавить роль «Хранилище», но этого делать не рекомендуется, как и добавлять роль «Кэш», чтобы избежать конфликтов ввода-вывода.
-
Журнал и кэш на SSD: Твердотельные накопители могут быть выделены под журнал записи, что более чем вдвое увеличивает скорость записи в кластере. Это рекомендовано для высоконагруженных систем.
Масштабирование кластера хранилища
После того как кластера хранения развернут, его ёмкость можно в любой момент увеличить — либо добавив дополнительные диски (вертикальное масштабирование), либо добавив новые узлы хранения (горизонтальное масштабирование). Кроме того, можно заменить диски на более ёмкие. Масштабирование происходит на лету без перерыва в обслуживании и, по сравнению с классическими СХД, выполнить операцию масштабирования достаточно просто.
Конфигурация
Предположим, что кластер состоит из пяти узлов, в каждом — 12 слотов для дисков. Один диск отведен под систему и метаданные, а 9 дисков используются для хранения на уровне 0. Поверх кластера хранения развернуто хранилище резервных копий с режимом кодирования 3+2.
Вертикальное масштабирование
Емкость хранилища можно увеличить, добавив ещё по два диска в каждый узел. В итоге ёмкость хранилища вырастет на 2/9.
Горизонтальное масштабирование
Емкость хранилища и его пропускную способность можно увеличить, добавив ещё два узла такого же размера (то есть с 12 дисками). В итоге ёмкость хранилища вырастет на 2/5. Кроме того, для максимальной эффективности хранения можно обновить режим кодирования до 5+2.
Архитектура кэша: Баланс скорости и емкости
Особого внимания заслуживает архитектура кэширования, которая реализована в Кибер Хранилище. Здесь важно четко разделить термины: кэш — это само физическое быстрое устройство (SSD/NVMe), а журнал — это буфер, который служба фрагментов данных использует для временного хранения записываемых данных. Устройства, выделяемые под кэш, должны быть самыми быстрыми в кластере, иначе использование кэша потеряет практический смысл. Рекомендуется использовать под кэш диски высокого класса под кэш - серверные SSD с поддержкой DWPD (Drive Writes Per Day) and PLP (Power Loss Protection).
Внутренний vs Внешний кэш
По умолчанию служба хранит журнал на том же диске, что и основные данные (внутренний кэш). Однако для получения максимальной производительности службу можно настроить на использование внешнего кэша — специально выделенного быстрого SSD или NVMe-устройства. Одно такое устройство может обслуживать несколько служб фрагментов данных.
Поведение при чтении и записи
Кэш в этой архитектуре работает как кольцевой буфер (FIFO) и в первую очередь нацелен на ускорение операций записи:
- Новые данные сначала записываются на быстрое кэш-устройство.
- В течение некоторого времени (пока кэш не заполнится и не потребуется освободить место) данные существуют только в кэше с удаленными репликами.
- Все операции чтения этих данных также обслуживаются из быстрого кэша.
- По мере заполнения кэша, старые данные в порядке очереди вытесняются (сбрасываются) на диски емкости (HDD).
Преимущества и сценарии использования
Главное преимущество — значительный прирост производительности записи и снижение задержек при незначительном удорожании системы. Это достигается за счет гибридного подхода, где большая емкость достигается использованием недорогих HDD, а производительность — небольшим количеством быстрых SSD.
Наибольший эффект от кэширования достигается в сценариях:
- Хранение активно используемых («горячих») данных.
- Нагрузки с произвольной записью.
- Работа с небольшими блоками данных или файлами.
- Базы данных и среды с высокой многопоточностью.
В то же время, для «холодных» архивных данных, для видеонаблюдения (запись большого последовательного потока) или для рабочих нагрузок с преобладанием операций чтения выгода от кэша может быть минимальна. В таких случаях эффективнее использовать либо полностью HDD-решение, либо, при необходимости высокой производительности чтения, all-flash кластер.
Заключение
Кибер Хранилище представляет собой сбалансированную платформу для построения корпоративных систем хранения данных. Гибкая кластерная архитектура с разделением ролей MDS и Chunk Servers обеспечивает необходимую масштабируемость и отказоустойчивость, а поддержка протоколов S3, iSCSI и NFS делает ее универсальной для самых разных задач — от инфраструктуры виртуализации до облачных сервисов и резервного копирования.
Интеллектуальная система кэширования позволяет эффективно использовать современные твердотельные накопители, добиваясь высокой производительности там, где она действительно нужна, и экономя ресурсы на «холодных» данных. Интеграция с решением «Кибер Бэкап», поддержка шифрования и возможность настройки политик хранения делают этот продукт серьезным игроком на рынке СХД, предлагая ИТ-специалистам инструмент для создания надежной, быстрой и экономически эффективной системы хранения для своих организаций.
Связанные статьи
19.11.2026 11:00 МСК