Программно-определяемые системы хранения (SDS, Software-Defined Storage) переносят логику работы с данными в программный слой: размещение блоков по дискам, избыточность, снапшоты, тонкое выделение томов, репликацию между узлами и площадками выполняет софт на обычных серверах. Дисковые полки и контроллеры в такой схеме поставляют ёмкость, но перестают управлять данными.
Разница видна в эксплуатации. Аппаратный массив фиксированной конфигурации расширяют покупкой полок и заменой контроллеров у одного вендора. SDS-кластер расширяют добавлением узла: его диски, CPU и сеть сразу включаются в общий пул, а данные перебалансируются автоматически. На этой модели построены Ceph, GlusterFS, TrueNAS SCALE, VMware vSAN и Longhorn - их сравниваем ниже.
До выбора платформы стоит определить четыре вещи: тип доступа (блочный, файловый, объектный), требования к задержке, размер кластера и бюджет на сеть. Дальше идут принципы работы SDS, обзор пяти платформ, критерии выбора под виртуализацию, Kubernetes и файловые сервисы, риски перехода и порядок запуска пилота.
Что такое программно-определяемые системы хранения (SDS)
SDS - это архитектура, где приложение обращается к логическому тому, а физическое размещение данных определяет программный слой. Абстракция от оборудования проявляется в том, что один и тот же пул дисков может отдавать блочные устройства (LUN), сетевые файловые шары NFS/SMB и объектное хранилище с S3-совместимым API.
Не путайте SDS с SAN и NAS как таковыми. Классический SAN отдаёт блочные устройства по Fibre Channel или iSCSI, NAS - файлы по NFS и SMB, но управление ёмкостью, кэшем и избыточностью в них привязано к контроллерам конкретного массива. В SDS эти функции живут в распределённом ПО и не зависят от модели железа. Если нужно разобраться в базовой терминологии DAS, NAS, SAN и RAID, начните с обзора классификации СХД, а затем возвращайтесь к распределённым схемам.
Ключевые отличия SDS от аппаратных СХД
| Параметр | Аппаратная СХД | SDS |
|---|---|---|
| Точка управления | Контроллеры и прошивка вендора | Программный слой на серверах |
| Рост ёмкости и IOPS | Полки, контроллеры, вертикально | Новые узлы, горизонтально |
| Новые функции | Прошивка или замена железа | Обновление ПО на том же железе |
| Зависимость от вендора | Высокая, проприетарные форматы | Ниже, открытые форматы и API |
| Kubernetes | Внешний плагин, отдельный шлюз | CSI-драйвер, динамическое создание томов |
| Стартовый CAPEX | Высокий, оплата ёмкости впрок | Ниже, если серверы уже есть |
| Эксплуатация | Контракт поддержки вендора | Собственные компетенции команды |
Пример на практике. В массиве со сроком службы пять лет апгрейд контроллера на середине цикла требует денег и простоя. В SDS обновление ПО не связано с заменой серверов, а часть узлов можно менять по одному без остановки кластера. Обратная сторона: производительность и задержки становятся ответственностью вашей команды, а не вендора. Подробнее про расчёт экономики и производительности в конкретных сценариях - в материале SDS против аппаратных массивов: стратегия выбора.
Преимущества и ограничения SDS
Причины, по которым SDS выбирают:
- Масштабирование узлами: ёмкость и производительность растут вместе с числом серверов.
- Отсутствие привязки к одному вендору: данные лежат на стандартных дисках, менять серверы можно частями.
- Работа на серверах стандартной архитектуры (commodity-серверы), в том числе на тех, что уже стоят в стойке.
- Нативная интеграция с Kubernetes через CSI, поддержка снапшотов и клонов тома.
- Единый пул, из которого нарезаются блочные, файловые и объектные сервисы.
Ограничения, о которых узнают обычно после внедрения:
- Нужна команда, способная разбираться в распределённых сбоях, а не только в дисках и RAID.
- Сеть становится критичной: стабильные задержки важнее пиковой пропускной способности.
- Производительность сильно зависит от подбора дисков и уровня кэша; на SATA-дисках с медленной сетью ожидания не сойдутся.
- Для одного-двух серверов SDS часто избыточен, там проще локальное хранилище на ZFS.
- Диагностика проблем занимает больше времени из-за числа компонентов: сеть, диски, кластерные сервисы, приложения.
Гиперконвергентные сценарии, где вычислительные и хранящие узлы объединены, SDS закрывает хорошо. Малые инсталляции с одной рабочей нагрузкой - скорее зона локальных файловых систем и NAS-платформ.
Принципы работы SDS: абстракция, масштабирование, отказоустойчивость
Поведение любой SDS-платформы определяется тремя механизмами.
Абстракция от оборудования. Приложение видит том, файловую шару или бакет. Промежуточный слой знает, на каких узлах и дисках лежат блоки, ведёт карту размещения и следит за состоянием дисков. Диск выходит из строя: слой помечает его, восстанавливает утраченные копии на оставшихся носителях и продолжает обслуживать ввод-вывод.
Горизонтальное масштабирование. Добавление узла увеличивает суммарную ёмкость, число шпинделей и объём оперативной памяти под кэш. Данные перераспределяются к новому узлу, чтобы нагрузка оставалась равномерной.
Отказоустойчивость через избыточность. Данные хранят в нескольких копиях (репликация) или в виде фрагментов данных и чётности (эразинг-кодирование). В Ceph, например, пул настраивают как replica 3 либо как пул с профилем 4+2, где четыре фрагмента данных и два фрагмента чётности раскладываются по разным узлам.
Репликация vs эразинг-кодирование: что выбрать
| Схема | Накладные расходы | Полезная ёмкость | Черты |
|---|---|---|---|
| Реплика 2 | 100% | 50% | Быстро, но отказ двух узлов означает потерю данных |
| Реплика 3 | 200% | 33% | Низкая задержка, простое восстановление, дорого по ёмкости |
| Эразинг-кодирование 4+2 | 50% | 67% | Баланс ёмкости и затрат CPU, минимум шесть доменов отказа для схемы по узлам |
| Эразинг-кодирование 8+3 | 37,5% | 72,7% | Экономия ёмкости, выше задержка и цена восстановления |
| Эразинг-кодирование 10+4 | 40% | 71,4% | Для больших архивов и редко читаемых данных |
Правило выбора простое. Критичные нагрузки с высокой долей случайного чтения и записи (базы данных, диски виртуальных машин) держите на репликации: три копии дают предсказуемую задержку и быстрое восстановление. Архивы, медиатеки, резервные копии, объектные бакеты с крупными объектами выгоднее хранить на эразинг-кодировании: при схеме 4+2 на полезные данные уходит около 67% ёмкости против 33% у тройной реплики.
У эразинг-кодирования есть цена. Каждая операция чтения требует собрать несколько фрагментов, значит растёт нагрузка на CPU и сеть, а восстановление после отказа узла читает данные со всех оставшихся узлов. Мелкие объекты и файлы в некоторых системах работают с эразинг-кодированием неэффективно, там применяют гибридную схему: горячий слой на репликации, холодный на кодировании.
Горизонтальное масштабирование и консистентность данных
Распределённая система должна решать две задачи одновременно: раскладывать данные равномерно и не терять их при сбоях узлов и сети.
В Ceph размещением управляет алгоритм CRUSH. Он вычисляет позицию каждого объекта по хешу, без отдельного сервера метаданных, который стал бы узким местом. Когда в кластер входит новый узел, часть данных переезжает к нему, а карта размещения обновляется. В Longhorn консистентность каждой реплики тома обеспечивает протокол Raft: запись подтверждается, когда её приняло большинство реплик, и это защищает от расхождения копий.
Практические следствия для администратора:
- Число узлов-координаторов консенсуса держите нечётным, это упрощает выбор лидера при сбоях.
- Перебалансировку после добавления узла ограничивайте по скорости: она съедает сеть и дисковый ввод-вывод и может просадить производительность приложений.
- Задержку между узлами измеряйте заранее. Если между площадками она высокая, асинхронная репликация потерпит больше, чем синхронная.
Обзор ключевых SDS-платформ 2026 года
| Платформа | Тип доступа | Сильная сторона | Типовой сценарий |
|---|---|---|---|
| Ceph | Блочный, файловый, объектный | Масштаб и единый пул | Облако, Kubernetes, большие объёмы |
| GlusterFS | Файловый (POSIX) | Простота настройки | Файловые серверы, медиахранилища |
| TrueNAS SCALE | Файловый, блочный, объектный | ZFS и удобный веб-интерфейс | Малый бизнес, лаборатории, NAS |
| VMware vSAN | Блочный | Интеграция с vSphere | Виртуализация на ESXi |
| Longhorn | Блочный для Kubernetes | Быстрый старт в кластере K8s | Небольшие и средние кластеры |
Ceph: универсальное решение для больших кластеров
Ceph отдаёт блочные устройства через RBD, файловую систему через CephFS и объектное хранилище через RADOS Gateway с S3-совместимым API. Один кластер обслуживает все три типа доступа, что избавляет от зоопарка отдельных систем под разные задачи.
Типовые требования: минимум три узла для реплицированных пулов, сеть 10 GbE или быстрее между узлами, отдельные быстрые накопители под журналы и метаданные. Ceph хорошо ложится на OpenStack, Rook в Kubernetes и платформы виртуализации на KVM. Цена универсальности - сложность: больше сервисов, больше точек отказа, нужен мониторинг и регламент замены дисков. Пошаговое развёртывание кластера с готовыми конфигурациями разобрано в практическом руководстве по Ceph и GlusterFS.
GlusterFS: простота и файловые сервисы
GlusterFS - распределённая файловая система с POSIX-совместимым доступом и понятной моделью томов: распределённые, реплицированные, дисперсные. Настройка проще, чем у Ceph, а порог входа ниже: том собирается из бриков на нескольких серверах.
Сильные стороны - файловые серверы, медиахранилища,共享-доступ по NFS и SMB через шлюз, домашние каталоги. Слабые - развитие проекта замедлилось, часть дистрибутивов сокращает поддержку, а для контейнерных сред и блочных томов под базы данных решение уступает Ceph и Longhorn. Перед внедрением проверьте статус пакетов и сроки поддержки в вашем дистрибутиве: этот параметр меняется от релиза к релизу.
TrueNAS SCALE: NAS и виртуализация на базе ZFS
TrueNAS SCALE - открытая платформа на ZFS с веб-интерфейсом, файловыми сервисами SMB и NFS, виртуализацией на KVM и контейнерами приложений. ZFS даёт контрольные суммы, снапшоты, дедупликацию и надёжную защиту от тихих ошибок чтения, а интерфейс закрывает большую часть рутины.
Сценарии: файловое хранилище для офиса вместо Windows Server, домашняя лаборатория, площадка под резервные копии, небольшой кластер виртуальных машин. Масштабирование ограничено десятками узлов, для гипермасштаба платформа не предназначена. Кластерные функции и отказоустойчивость уровня Ceph в базовой поставке отсутствуют, поэтому высокую доступность строят на репликации между системами.
vSAN: проприетарное решение для VMware
VMware vSAN собирает пул из локальных дисков хостов ESXi и управляется из vSphere. Тесная интеграция с гипервизором даёт политики хранения на уровне виртуальной машины, простую работу со снапшотами и понятную схему поддержки.
Ограничения очевидны: привязка к VMware, требования к совместимому железу и контроллерам из списка поддержки, а стоимость зависит от пакетов лицензирования Broadcom. После изменения модели лицензирования в 2024 году расчёт TCO усложнился, поэтому перед внедрением сверяйте состав пакетов и условия у вендора. Если инфраструктура уже на VMware, vSAN остаётся самым предсказуемым вариантом по эксплуатации. Альтернативы с похожей архитектурой и разбором типовых ошибок есть в статье про Ceph, VMware vSAN и StarWind.
Longhorn: лёгкое хранилище для Kubernetes
Longhorn - распределённое блочное хранилище для Kubernetes, выросшее внутри Rancher. Устанавливается в кластер и предоставляет persistent volumes, снапшоты, резервные копии во внешнее S3-хранилище и репликацию тома между узлами.
Порог входа минимальный: разворачивание занимает минуты, интеграция с Kubernetes нативная, отдельных серверов под хранилище не требуется. Ограничения - меньшая масштабируемость и функциональность по сравнению с Ceph, повышенные требования к дисковому вводу-выводу и сети при репликации, а также осторожность при обновлениях версий. Хорошо подходит для небольших и средних кластеров, edge-площадок и тестовых сред, где важнее скорость внедрения, чем предельные показатели.
Критерии выбора SDS под виртуализацию, Kubernetes и файловые сервисы
Чек-лист, который стоит пройти до пилота:
- Тип нагрузки. Блочный доступ для дисков виртуальных машин и баз данных, файловый для общих каталогов и медиа, объектный для бэкапов и приложений с S3 API.
- Производительность. Требуемые IOPS и задержку фиксируйте числами до выбора платформы, затем проверяйте их на стенде.
- Масштаб. Число узлов сейчас и через три года: этот параметр отсекает часть решений.
- Отказоустойчивость. Допустимое число одновременных отказов и время восстановления.
- Сложность эксплуатации. Сколько инженеров готовы поддерживать систему и есть ли у них опыт с распределёнными хранилищами.
- Стоимость владения. Считайте не только диски и серверы, но и сеть, лицензии, обучение и трудозатраты на администрирование.
- Интеграция. CSI для Kubernetes, API для гипервизора, поддержка снапшотов и клонов.
SDS для виртуализации: на что обратить внимание
Диски виртуальных машин дают смешанную случайную нагрузку, поэтому важны стабильная задержка, поддержка снапшотов и клонов, интеграция с API гипервизора. Для VMware логичен vSAN, для Proxmox и KVM - Ceph RBD, для небольшой инсталляции на два-три хоста подойдёт TrueNAS SCALE с томами по iSCSI. Плотность виртуальных машин держите на NVMe или SSD; гибридный пул из SATA и SSD выдержит десятки, но не сотни активных ВМ.
SDS для Kubernetes: интеграция и динамическое выделение
Ключевое требование - CSI-драйвер с динамическим созданием томов, поддержкой снапшотов, клонированием и учётом топологии (том должен оказаться на том же узле, где запустится под). Longhorn закрывает это минимальными усилиями, Ceph через Rook даёт максимум возможностей и производительности, но требует больше ресурсов и внимания. Перед выбором проверьте поведение при потере узла: у части драйверов восстановление тома занимает минуты, и приложение всё это время недоступно.
SDS для файловых сервисов: POSIX, SMB/NFS
Для общих каталогов важны POSIX-совместимость, корректные права доступа, квоты и стабильность при большом числе одновременных клиентов. TrueNAS SCALE даёт SMB и NFS на ZFS с удобным управлением правами, CephFS подходит для крупных кластеров с высокой пропускной способностью, GlusterFS остаётся вариантом для простых файловых серверов. Если нагрузки смешанные, разумно разделить пулы: блочные тома для виртуальных машин, файловый слой для общих каталогов, объектный для резервных копий.
Пример решения. Инфраструктура на VMware с зрелой командой и бюджетом - vSAN. Кластер Kubernetes без выделенных серверов хранения - Longhorn или Ceph через Rook. Файловый сервер для офиса на 20-50 сотрудников - TrueNAS SCALE.
Риски и сложности при переходе на SDS
Основные подводные камни и способы их обойти:
- Недооценка компетенций. Распределённое хранилище требует навыков диагностики сетевых и кластерных проблем. Начните с пилота и обучения команды до переноса продуктивных данных.
- Неподходящее железо. SATA-диски без кэша, сеть 1 GbE и отсутствие резерва по CPU превращают кластер в узкое место. Сверяйте конфигурацию с рекомендованной производителем и проверяйте её на стенде.
- Миграция данных. Перенос с проприетарного массива планируют заранее: через репликацию на уровне приложения, синхронизацию объектного хранилища или поэтапный перенос ВМ с проверкой на каждом шаге. Простой на время переключения закладывайте отдельно.
- Изменения лицензирования. Проприетарные платформы меняют условия: состав пакетов и цены уточняйте у вендора перед расчётом TCO.
- Отсутствие регламента. Без правил замены диска, обновления версий и контроля заполнения пулов кластер деградирует незаметно. Мониторинг и алерты настраивайте в первый же день.
- Незапланированные обновления. Перед апгрейдом распределённой системы читайте release notes: часть версий меняет формат данных или порядок обновления сервисов.
Отдельно проверяйте поведение при отказах: выдерните диск, погасите узел, ограничьте сеть между площадками и посмотрите, как система восстанавливается. Такие проверки на стенде стоят дешевле, чем обнаружение проблемы в рабочую ночь.
Практические сценарии и тренды SDS в 2026 году
Несколько направлений, где SDS уже стал основным выбором.
Контейнерные платформы. Kubernetes вытеснил вопрос о типе тома в пользу CSI-драйверов: хранилище выбирают по поддержке снапшотов, клонов и топологии, а не по бренду массива.
AI и машинное обучение. Обучение моделей требует высокой пропускной способности и параллельного доступа к одним и тем же данным с десятков узлов. Здесь востребованы распределённые файловые слои и быстрые NVMe-уровни внутри SDS-кластеров.
Периферийные вычисления. На удалённых площадках места и обслуживания мало, поэтому используют лёгкие SDS-решения на несколько узлов с централизованным управлением.
Гибридное облако. Один и тот же протокол доступа к данным в собственном кластере и в облаке упрощает перенос нагрузок. Ceph как основа совместим с S3 API, что позволяет строить сценарии тиражирования и бэкапа между площадками.
Гиперконвергентность. Вычисления и хранение на одних серверах сокращают число стоек и упрощают рост. Для больших объёмов данных схемы сбора и миграции разобраны в руководстве по хранению больших данных.
Как начать работу с SDS: минимальные шаги
- Зафиксируйте требования. Тип доступа, объём сейчас и через три года, требуемые IOPS и задержку, допустимое число отказов, окно обслуживания.
- Выберите платформу под задачу. Kubernetes и малый масштаб - Longhorn. Универсальное хранилище с ростом до десятков узлов - Ceph. Файловые сервисы и малый бизнес - TrueNAS SCALE. Виртуализация VMware - vSAN.
- Соберите тестовый стенд. Три виртуальные машины с отдельными дисками хватит, чтобы развернуть кластер Ceph и увидеть поведение при отказе узла. Для TrueNAS SCALE достаточно одного сервера или ВМ с проброшенными дисками.
- Проверьте сеть и диски. Измерьте задержку между узлами, пропускную способность и стабильность под нагрузкой. Результаты сравните с требованиями из первого пункта.
- Проведите учения по отказам. Отключите узел, уберите диск, ограничьте канал и зафиксируйте время восстановления и деградацию производительности.
- Настройте мониторинг. Метрики дисков, заполнения пулов, состояния сервисов и задержек, с алертами на деградацию, а не только на полный отказ.
- Составьте регламент. Порядок замены диска, обновления версий, проверки бэкапов и реакции на инциденты.
- Переносите нагрузку поэтапно. Начните с некритичного сервиса, затем переводите остальные, фиксируя метрики до и после миграции.
Параметры конкретных версий, рекомендованные конфигурации и порядок обновления сверяйте с официальной документацией платформы перед продуктивным запуском: они меняются от релиза к релизу, а проверка на стенде стоит дешевле простоя.