Короткий ответ: как выбрать SDS-хранилище для виртуальных машин
SDS выбирают по существующей платформе виртуализации, профилю нагрузки, числу узлов и возможностям команды. VMware vSAN логичен для инфраструктуры на vSphere, StarWind VSAN часто подходит для компактных кластеров Hyper-V и VMware, а Ceph оправдан там, где нужны масштабирование, блочный RBD, файловый CephFS и объектный интерфейс.
Для отказоустойчивого SDS-кластера обычно нужны минимум три узла или двухузловая схема со свидетелем, предсказуемая сеть хранения, резерв емкости на отказ и восстановление, совместимые диски и регулярный мониторинг. SDS собирает storage из локальных дисков стандартных серверов, однако не заменяет backup и не исправляет проблемы слабой сети.
Окончательный выбор проверяют по актуальной версии ПО, лицензии, HCL, требованиям к прошивкам и фактической нагрузке. Перед закупкой измерьте IOPS, latency, throughput, объем данных, RPO и RTO. Практические критерии выбора между SDS и аппаратной СХД собраны в сравнении SDS и аппаратных массивов.
Матрица выбора: Ceph, VMware vSAN или StarWind VSAN
| Решение | Типовой сценарий | Минимально разумная схема | Доступ к данным | Сложность | Ключевое ограничение |
|---|---|---|---|---|---|
| Ceph | KVM, Kubernetes, OpenStack, масштабируемые платформы | 3 storage-узла, обычно 3 MON | RBD, CephFS, S3-совместимый объектный интерфейс | Высокая | Требует зрелого мониторинга, планирования CRUSH и регулярного сопровождения |
| VMware vSAN | Кластер ESXi под управлением vCenter Server | 3 хоста; двухузловая схема требует witness | Нативный vSAN datastore для vSphere | Средняя | Зависит от экосистемы vSphere, лицензии и HCL |
| StarWind VSAN | Компактные кластеры Hyper-V и VMware | 2 хоста со свидетелем или 3 хоста | Часто iSCSI, варианты зависят от версии и редакции | Средняя | Нужно отдельно проверить поддерживаемые платформы, режимы репликации и witness |
Ceph выбирайте при наличии команды, которая готова сопровождать распределенную систему и планировать ее рост. vSAN снижает операционную сложность в среде vSphere, потому что storage policy, datastore и состояние кластера управляются через знакомые инструменты VMware. StarWind VSAN удобен для небольших инсталляций, где требуется зеркальная репликация локальных дисков и понятная схема доступа.
Когда SDS не стоит внедрять
- В инфраструктуре есть один хост, а требования к высокой доступности отсутствуют. В такой конфигурации распределенный storage добавит сетевой и операционный слой без практической пользы.
- Между узлами нет выделенной или предсказуемой сети. Потери пакетов, переменная задержка и перегруженные uplink-порты вызовут деградацию записи и длительный resync.
- У команды нет ресурса для круглосуточного контроля состояния дисков, узлов, quorum и восстановления объектов.
- Критичная нагрузка использует функции, которые выбранный SDS не поддерживает или поддерживает с ограничениями. Такой риск проверяют до миграции тестовой виртуальной машиной.
- Рабочая внешняя СХД уже дает нужные IOPS, latency, емкость, поддержку и запас роста. Замена только ради модного архитектурного подхода не оправдывает стоимость перехода.
- Проект требует резервного копирования, а команда рассчитывает закрыть эту задачу репликацией или snapshot.
Что такое SDS и как работает программно-определяемое хранилище
Программно-определяемое хранилище, SDS, отделяет функции хранения от специализированного аппаратного массива. Локальные SSD, NVMe и HDD устанавливают в стандартные серверы, а программный слой объединяет их в storage-пул, размещает данные по правилам защиты и предоставляет тома, datastore или файловые ресурсы потребителям.
Внешняя СХД обычно скрывает диски за контроллерами и готовыми сервисами массива. SDS распределяет эту логику между узлами. За доступность отвечают репликация, erasure coding, quorum, контроль состояния компонентов и автоматическое восстановление. При этом серверы, контроллеры, сетевые адаптеры и прошивки становятся частью единой системы, поэтому совместимость проверяют до установки.
Слои SDS: диски, сеть, сервисы хранения и потребители данных
Путь записи виртуальной машины состоит из нескольких этапов:
- Виртуальная машина отправляет блок записи через гипервизор. На этом уровне формируются очереди, размер операций и профиль чтения или записи.
- Гипервизор направляет запрос в datastore, RBD, LUN или другой интерфейс, который предоставляет SDS.
- Сервис управления определяет размещение данных. В Ceph эту задачу выполняют карта кластера и CRUSH, в vSAN решение связано с storage policy и объектной моделью, в других продуктах используются собственные правила.
- Сетевой слой передает данные между узлами, если политика требует копии на другом сервере или выбранный storage отделен от вычислительных хостов.
- Локальные сервисы записиют данные на SSD, NVMe или HDD. Система подтверждает операцию после достижения состояния, которое задает политика защиты.
Итоговую производительность определяют IOPS дисков, latency сети, пропускная способность, CPU, память, размер блока, доля записи, число копий и текущие операции resync. Быстрый NVMe не даст ожидаемого результата, если storage-трафик проходит через перегруженный 10GbE-порт вместе с резервным копированием и миграцией виртуальных машин.
HCI и disaggregated SDS: где размещаются вычисления и данные
В HCI гипервизор и storage-контроллеры работают на одних узлах. Виртуальные машины используют локальные диски своих хостов, а SDS синхронно или асинхронно передает копии между серверами. Масштабирование получается простым: добавляется узел, и вместе с вычислительными ресурсами растет storage.
В disaggregated SDS storage-узлы отделены от вычислительных хостов. Серверы с виртуальными машинами подключают к ним по iSCSI, NFS, NVMe-oF или нативному протоколу конкретной платформы. Такая схема позволяет независимо увеличивать вычисления и емкость, но сетевой путь становится частью каждой операции ввода-вывода.
| Критерий | HCI | Раздельный SDS-кластер |
|---|---|---|
| Масштабирование | Растут вычисления и storage вместе | Вычислительные и storage-узлы масштабируются раздельно |
| Отказ узла | Теряются CPU, память и локальная часть storage одновременно | Вычисления и storage могут переживать отказ независимых узлов |
| Сетевой трафик | Высокий east-west трафик между HCI-узлами | Высокий трафик между вычислительными хостами и storage |
| Управление | Единая платформа и единый жизненный цикл узлов | Раздельные циклы обновления compute и storage |
Перед выбором архитектуры оцените соотношение CPU, памяти и дисковой емкости. Если виртуальным машинам нужны CPU, но storage еще заполнен наполовину, HCI может привести к покупке лишних дисков. Если требуется много емкости при небольшом числе вычислений, отдельный storage-кластер дает более точное масштабирование. Базовые различия DAS, NAS, SAN и HCI разобраны в руководстве по архитектурам хранения.
Репликация, erasure coding и кворум
Репликация хранит несколько полных копий блока или объекта. При двух копиях полезная емкость близка к половине raw-емкости, при трех копиях, примерно к одной трети. Запись требует передачи данных на нужное число узлов, поэтому сетевой трафик и требования к дискам растут вместе с уровнем защиты.
Erasure coding делит данные на фрагменты и добавляет проверочные части. Для схемы k+m теоретическая эффективность по емкости близка к k / (k + m). Схема 4+2 использует шесть фрагментов и сохраняет данные при потере двух фрагментов, но запись и восстановление создают больше CPU, сетевого трафика и операций чтения. Для небольших кластеров и активных виртуальных машин зеркальная репликация часто дает более предсказуемую latency.
Кворум разрешает кластеру принимать решения только при наличии достаточного числа голосов. Он защищает от split-brain, когда изолированные части кластера считают себя единственными рабочими. Кворум не хранит резервную копию данных. MON в Ceph, witness в двухузловых схемах vSAN и StarWind решают задачу согласованности, но конкретная логика зависит от продукта.
Определение требований виртуальных машин к SDS
Проектирование начинайте со списка виртуальных машин и реальных измерений. Название гипервизора не определяет требования к storage. Две одинаковые по размеру ВМ могут создавать разную нагрузку: база данных генерирует случайную запись с низкой latency, файловый сервер создает последовательный поток, а тестовая среда часто работает с непредсказуемыми пиками.
Зафиксируйте список ВМ, объем каждого диска, фактическую занятость, IOPS, latency, throughput, долю чтения и записи, средние и пиковые значения, операции backup и snapshot. Добавьте RPO, RTO, требования к доступности и прогноз роста на 12-36 месяцев.
IOPS, задержка и пропускная способность
IOPS показывают число операций за секунду. Latency показывает время ответа одной операции. Throughput измеряется в MB/s или GB/s и описывает объем переданных данных. Эти показатели связаны размером блока: 10 000 IOPS при блоке 4 KiB дают примерно 39 MiB/s, а при блоке 256 KiB, около 2,5 GiB/s, если сеть и диски выдерживают такой поток.
Разделяйте случайные и последовательные операции, чтение и запись. Нагрузка 70/30 read/write с блоком 8 KiB требует иной схемы дисков и кэша, чем последовательное чтение больших файлов. Средняя latency скрывает пики, поэтому фиксируйте p95 и p99. Пример приемочного условия для базы данных может выглядеть как p95 latency записи < 2 мс при 20 000 IOPS, но это пример требования конкретной нагрузки, а не универсальная норма SDS.
Измеряйте текущую среду в рабочие часы и во время backup. Снимите показатели до миграции, в тестовой ВМ и после переноса. Материал о VMFS, iSCSI, NFS, multipath и нагрузочных проверках собран в руководстве по storage для VMware, Hyper-V и KVM.
| Метрика | Что измерять | Зачем |
|---|---|---|
| IOPS | Среднее, пик, чтение, запись, случайные и последовательные операции | Выбрать диски, кэш и запас производительности |
| Latency | Среднее, p95, p99, задержка при backup и resync | Понять влияние сети, очередей и восстановления |
| Throughput | MB/s или GB/s по каждому узлу и сетевому пути | Проверить пропускную способность дисков и uplink |
| Очередь | Глубина очереди на дисках, контроллерах и VMkernel | Найти перегруженный слой |
Емкость, резерв и рост данных
Расчет начинайте с raw-емкости, затем вычитайте защиту, резерв на отказ, свободное место для resync, snapshot, служебные данные и плановый рост. Упрощенная формула выглядит так:
usable = raw x efficiency - reserve_for_failure - resync_space - overhead
Пример: шесть дисков по 7,68 ТБ дают 46,08 ТБ raw. При зеркальной схеме с двумя копиями остается около 23,04 ТБ до учета служебных расходов. Резерв 20 процентов уменьшит рабочую емкость примерно до 18,43 ТБ. Если кластер должен пережить отказ одного узла, резерв считают по фактическому объему дисков, который потеряется вместе с этим узлом, а не фиксируют произвольным процентом.
Thin provisioning увеличивает гибкость размещения, но создает риск overcommit. Хранилище может выдать виртуальным машинам больше логического объема, чем физически доступно. При заполнении пула до критического уровня запись, snapshot и resync начинают конкурировать за свободное место. Порог заполнения задают заранее, например 70-80 процентов для интенсивной нагрузки, а точное значение проверяют тестами конкретной платформы.
Свободное пространство нужно для восстановления. После отказа узла SDS переносит копии на оставшиеся диски. Если кластер заполнен почти полностью, resync затянется или не начнется. В расчет закладывают рост данных, временный объем snapshot и дополнительную емкость для плановой замены дисков.
Классы виртуальных машин и политики хранения
Разделите ВМ по критичности и профилю, затем назначьте каждой группе собственную storage policy. Одинаковая защита для всех объектов часто приводит к расходу емкости без пользы для тестовых данных.
| Класс ВМ | Пример | Политика | Контроль |
|---|---|---|---|
| Критичные | База данных, платежный сервис, каталог пользователей | Высокая доступность, заданное число отказов, производительные диски | p95 latency, backup, тест восстановления |
| Инфраструктурные | DNS, мониторинг, CI, средства управления | Репликация с умеренным резервом | Доступность сервисов и зависимостей |
| Прикладные | Web, API, внутренние сервисы | Профиль по фактической нагрузке | IOPS, throughput, состояние объектов |
| Тестовые | Стенды разработки и приемки | Минимальная защита при наличии независимого backup | Заполнение и срок жизни snapshot |
| Архивные | Редко изменяемые данные | Емкость важнее низкой latency | Целостность и периодическая проверка чтения |
Для каждой политики укажите допустимое число отказов, тип защиты, QoS, thin или thick размещение, класс дисков и ограничения по snapshot. В vSAN policy назначают объектам и проверяют compliance. В Ceph параметры задают через pool, репликацию или erasure-coded pool. В StarWind настройки зависят от способа публикации storage.
Проектирование отказоустойчивого SDS-кластера
Отказоустойчивость проектируют до установки программного слоя. Сценарий отказа включает сервер, диск, HBA, сетевой адаптер, коммутатор, питание и плановое обслуживание. Кластер, который переживает один отказ диска, может не пережить отказ узла вместе с сетевым путем.
Количество узлов, домены отказа и резерв N+1
Три узла дают базовую основу для кворума и размещения копий. В трехузловой схеме один сервер можно вывести на обслуживание, если политика и емкость это допускают. Для двух узлов требуется witness, размещенный в независимом домене отказа. Свидетель не хранит полную копию данных, поэтому его доступность и сетевой путь все равно нужно контролировать.
N+1 означает, что после потери одного узла оставшиеся серверы сохраняют доступ к данным и имеют ресурсы для восстановления. Проверяйте сразу три условия:
- Оставшиеся узлы выдерживают CPU и память работающих ВМ.
- На них хватает дисков и свободного места для копий после отказа.
- Сеть выдерживает обычную нагрузку и дополнительный поток resync.
Размещайте узлы в разных стойках или зонах, если отказ стойки реален для вашей площадки. Разные домены питания и сетевые коммутаторы снижают общий риск. Распределение копий по серверам в одной стойке не защищает от потери этой стойки.
Диски, RAID и контроллеры
SDS нужен предсказуемый доступ к накопителям. Одни продукты ожидают прямой доступ к каждому диску, другие поддерживают определенные RAID-контроллеры и режимы кэширования. HBA в режиме passthrough или IT часто предпочтительнее аппаратного RAID, но окончательное решение принимают по HCL выбранной платформы.
Аппаратный RAID может скрыть состояние отдельного диска, изменить порядок записи и добавить второй слой защиты. Если SDS уже реплицирует данные, RAID поверх него увеличит операции записи и усложнит диагностику. Для vSAN проверяйте допустимые контроллеры и режимы через список совместимости. Для Ceph контролируйте поведение OSD, latency журналов и состояние каждого устройства.
- SSD и NVMe с защитой от потери питания используйте для активной записи, кэша и журналов, если это поддерживает платформа.
- HDD подходят для емкостного слоя при умеренной нагрузке и достаточном времени восстановления.
- Проверяйте endurance SSD по DWPD или TBW. Резкий рост записи во время resync может ускорить износ.
- Не смешивайте диски с сильно разной latency в одной политике без измерений. Медленный диск может ограничить весь объект.
- Проверьте запасные диски, прошивки, SMART, температуру и защиту кэша от потери питания.
Сеть хранения: VLAN, MTU, пропускная способность и отказоустойчивость
Сеть хранения должна иметь предсказуемую latency, достаточный запас bandwidth и резервный путь. Для кластера с NVMe и интенсивной синхронной записью 10GbE может стать ограничением; 25GbE и выше часто выбирают при высокой плотности дисков. Число портов определяют расчетом трафика, а не шаблоном производителя.
Выделите storage-трафик в отдельный VLAN и проверьте резервирование адаптеров, коммутаторов и uplink. Разделяйте storage, управление, миграцию ВМ и backup там, где общий канал создает очереди. VLAN изолирует широковещательный домен, но не заменяет контроль доступа и мониторинг.
MTU 1500 дает безопасную исходную конфигурацию. Jumbo frames включайте только после сквозной проверки хостов, коммутаторов, маршрутов и интерфейсов. Смешанный MTU приводит к фрагментации, потере пакетов или нестабильному соединению. Для каждой пары узлов проверьте связность, допустимый размер пакета, latency и отсутствие потерь.
vmkping -I vmkX -s 1472 -d PEER_IP
vmkping -I vmkX -s 8972 -d PEER_IP
Вторая проверка подходит только для трассы с MTU 9000 и корректным размером служебных заголовков. Если она не проходит, оставьте MTU 1500 или исправьте весь путь. Не включайте jumbo frames на одном хосте для эксперимента в рабочем кластере.
Ceph, VMware vSAN и StarWind VSAN: сравнение архитектуры и сценариев применения
Все три продукта решают задачу распределенного хранения, но требуют разного подхода к управлению. Ceph предоставляет набор storage-интерфейсов и масштабируется как самостоятельная платформа. vSAN тесно связан с vSphere. StarWind VSAN ориентирован на компактные кластеры и зеркалирование storage между узлами.
Ceph: распределенное хранилище для масштабируемых платформ
Ceph состоит из нескольких ролей:
- MON хранит карту кластера и участвует в quorum. Для отказоустойчивого control plane обычно используют три или пять MON.
- MGR предоставляет управление, метрики и модули мониторинга.
- OSD управляет данными на диске, репликацией, recovery и обменом с другими OSD.
- MDS нужен для CephFS и обслуживает метаданные файловой системы.
RBD предоставляет блочные устройства для KVM и платформ, которые умеют работать с Ceph. CephFS дает файловое пространство. Object Gateway предоставляет S3-совместимый интерфейс для объектных данных. Такая универсальность полезна в Kubernetes, OpenStack и больших средах, где один storage-кластер обслуживает разные типы потребителей.
Ceph требует дисциплины эксплуатации. До запуска спланируйте CRUSH hierarchy, failure domain, классы устройств, pools, размер репликации и правила recovery. Отдельно контролируйте public network и cluster network, если архитектура использует раздельные пути. Следите за заполнением OSD, slow operations, health warnings, состоянием MON и скоростью восстановления.
Для виртуальных машин Ceph выбирайте при наличии трех и более storage-узлов, быстрой сети и команды, которая готова разбирать причины деградации. Практическая последовательность развертывания Ceph, настройки репликации и мониторинга приведена в руководстве по кластерам Ceph и GlusterFS.
VMware vSAN: нативный datastore для vSphere
vSAN объединяет локальные диски ESXi-хостов и публикует единый datastore для кластера vSphere. Управление идет через vCenter Server: администратор создает storage policy, назначает ее виртуальным машинам и отслеживает compliance объектов.
В архитектуре vSAN OSA используются disk group с cache tier и capacity tier. В ESA применяется другая модель хранения, поэтому понятие disk group и набор поддерживаемых устройств зависят от конкретной версии. Одинаковое название функции в интерфейсе не гарантирует одинаковый набор параметров в разных релизах.
Сильные стороны vSAN:
- Единый datastore для ESXi без отдельной внешней СХД.
- Политики защиты назначаются на уровне виртуальной машины или виртуального диска.
- Состояние объектов, resync и здоровье компонентов доступны через vCenter Server.
- Кластер можно расширять добавлением хостов и дисковых групп при соблюдении HCL.
Риски связаны с зависимостью от vSphere, лицензирования, совместимого оборудования и сетевых требований. До покупки проверьте HCL для сервера, контроллера, SSD, NVMe, прошивок и версии ESXi. Не переносите конфигурацию из старого релиза vSAN в новую без повторной проверки ограничений.
StarWind VSAN: SDS для компактных кластеров
StarWind VSAN часто используют в двухузловых и трехузловых средах Hyper-V или VMware. Локальные диски зеркалируются между хостами, а гипервизор получает storage через поддерживаемый протокол, часто iSCSI. Для решения quorum в двухузловой архитектуре применяют witness.
Такой подход подходит филиалу, небольшой серверной или тестовой площадке, где три полноценных storage-узла экономически избыточны. Двухузловой кластер требует независимого witness, резервных сетевых путей и четкого плана поведения при потере одного хоста или связи между серверами.
Перед настройкой проверьте поддерживаемую версию гипервизора, формат дисков, режим синхронной репликации, сетевые требования, MPIO и ограничения лицензии. Нельзя оценивать StarWind VSAN только по числу узлов: результат определяют latency между копиями, скорость дисков и состояние witness.
Практическая настройка VMware vSAN: пример трехузлового отказоустойчивого кластера
Ниже приведена последовательность VMware vSAN настройки для трех хостов ESXi под управлением vCenter Server. Конкретные имена пунктов интерфейса, поддерживаемые архитектуры, лицензии и требования к HCL зависят от релиза vSphere и vSAN. Перед работой зафиксируйте версию, проверьте совместимость оборудования и убедитесь в наличии актуального backup.
Пример предполагает три хоста, отдельный VLAN для vSAN, резервные сетевые адаптеры, одинаковый профиль дисков и политику с одним допустимым отказом. Все действия сначала выполняйте в тестовой среде или в утвержденное окно изменений.
Подготовка хостов ESXi и сети vSAN
- Сверьте версии. Проверьте совместимое сочетание vCenter Server, ESXi, vSAN, firmware серверов, BIOS, сетевых карт, контроллеров и дисков. Хосты должны работать на поддерживаемых версиях и иметь согласованные настройки времени.
- Настройте DNS и NTP. Проверьте прямое и обратное разрешение имен, синхронизацию времени и одинаковые часовые пояса там, где этого требует процесс эксплуатации. Ошибки DNS и NTP осложняют подключение хостов и диагностику.
- Подготовьте диски. Удалите старые сигнатуры только после проверки данных. Для модели с disk group назначьте cache tier и capacity tier по требованиям HCL. Для ESA подготовьте устройства по другой процедуре, которую задает выбранный релиз.
- Создайте VMkernel-адаптеры. На каждом ESXi назначьте отдельный адаптер для vSAN traffic, привяжите его к нужному VLAN и uplink. Если политика сети использует несколько адаптеров, проверьте active/standby или другой поддерживаемый режим.
- Проверьте MTU. Оставьте 1500, если нет проверенной сквозной jumbo-конфигурации. При MTU 9000 проверьте каждую пару хостов через правильный размер пакета и убедитесь, что коммутаторы не меняют значение.
- Проверьте связность. Измерьте latency, throughput и потери между всеми хостами по vSAN VMkernel. Тестируйте каждый сетевой путь, а не только адрес одного интерфейса.
- Проверьте отказ пути. В тестовом окне отключите один сетевой путь по согласованному плану и убедитесь, что storage traffic продолжает проходить через резервный адаптер. Возвращайте кабель или порт до следующей проверки.
До включения vSAN зафиксируйте результаты:
- Все три хоста видны в vCenter Server и имеют совместимые версии.
- DNS, NTP и управление ESXi работают без ошибок.
- vSAN VMkernel-адаптеры видят друг друга.
- MTU одинаков на всей трассе.
- Диски определяются в поддерживаемом режиме.
- В кластере есть резерв CPU, памяти, дисков и сетевой bandwidth.
- Есть backup тестовых ВМ и план возврата конфигурации.
Создание кластера и включение vSAN
- В vCenter Server создайте новый vSphere Cluster или выберите существующий, если его состав и настройки соответствуют проекту.
- Добавьте три ESXi-хоста и дождитесь завершения проверки совместимости, состояния лицензий и сетевых параметров.
- Откройте настройку vSAN и выберите архитектуру, которую поддерживает ваш релиз и оборудование. Не выбирайте ESA или OSA по названию без проверки HCL.
- Укажите vSAN VMkernel traffic, параметры сети, failure domain и дополнительные службы, которые нужны вашей версии.
- Организуйте диски автоматически или вручную. Для disk group проверьте состав cache и capacity, а для другой архитектуры, состояние storage pool и доступных устройств.
- Дождитесь создания кластера и проверьте health services. Ошибка на этом этапе обычно связана с HCL, сетью, дисками, DNS, лицензией или несовместимой версией.
Не переносите продуктивные ВМ сразу после появления кластера. Сначала проверьте, что все хосты участвуют в vSAN, диски видны, vSAN datastore создан, health-проверки не содержат критичных предупреждений, а резервные сетевые пути работают.
Создание datastore и политики отказоустойчивости
- Проверьте появление vSAN datastore в выбранном vSphere Cluster и доступность datastore со всех ESXi-хостов.
- Создайте storage policy для критичных ВМ. Для трехузловой схемы типовой пример, FTT=1 и RAID-1, если эта комбинация поддерживается выбранной архитектурой и хватает емкости.
- Создайте отдельную политику для тестовых или архивных объектов с меньшим расходом емкости, если требования доступности это допускают.
- Проверьте размер объекта с учетом копий, witness-компонентов, snapshot и свободного места для resync. Политика не должна заполнять кластер до уровня, при котором отказ узла блокирует восстановление.
- Назначьте policy тестовой ВМ и проверьте compliance всех виртуальных дисков. Несоответствие означает, что объект не может сейчас выполнить заданные правила.
- Создайте тестовую ВМ, проверьте загрузку, чтение, запись, snapshot и удаление snapshot. Зафиксируйте latency и состояние кластера до теста.
FTT=1 означает сохранение доступности при одном допустимом отказе согласно возможностям политики. Это не универсальная гарантия при одновременной потере узла, сетевого пути и стойки. Для RAID-5, RAID-6, stretched cluster и других вариантов число узлов, емкость и правила размещения отличаются.
Проверка отказа узла и восстановления данных
- Снимите исходное состояние: health кластера, список объектов, compliance, заполнение datastore, latency и активные resync.
- Убедитесь, что тестовая ВМ имеет backup и может быть восстановлена отдельно от vSAN.
- Переведите один хост в режим обслуживания поддерживаемым способом. Выберите режим эвакуации объектов по плану изменения и проверьте его влияние на емкость.
- Проверьте доступность тестовой ВМ, datastore и управляющих сервисов. Зафиксируйте latency в деградированном состоянии.
- Не имитируйте отказ отключением питания или выдергиванием кабелей в продуктивном кластере без отдельного согласованного теста.
- Верните хост, дождитесь выхода из maintenance mode и проконтролируйте resync.
- После восстановления проверьте health, compliance политик, заполнение дисков, ошибки сети и отсутствие зависших объектов.
Успешный тест означает доступность сервисов и корректное восстановление, но не отменяет аварийный план. Запишите время resync, максимальную latency, объем переданных данных и состояние ВМ. Эти значения помогут оценить реальный RTO при следующем отказе.
Подключение и размещение нагрузок: datastore, iSCSI, NFS и multipath
Способ подключения зависит от архитектуры SDS. vSAN предоставляет нативный datastore для vSphere. Внешний SDS может публиковать блочные LUN по iSCSI, файловый datastore по NFS или собственный интерфейс для KVM, Kubernetes и других потребителей. Правила VMFS, MPIO и multipath нельзя автоматически переносить на HCI с локальным доступом к дискам.
Когда использовать нативный datastore, iSCSI или NFS
| Способ | Где уместен | Что проверить |
|---|---|---|
| Нативный vSAN datastore | ВМ на ESXi в vSphere Cluster | Storage policy, compliance, object health, resync и емкость |
| iSCSI LUN | Внешний SDS, Hyper-V, VMware и другие поддерживаемые потребители | IQN, VLAN, CHAP, MPIO, path policy, latency и резерв путей |
| NFS | Файловый datastore, образы ВМ, KVM и приложения с файловым доступом | Версия NFS, права, сетевые пути, snapshot и семантика блокировок |
| RBD или CSI | KVM, Kubernetes и облачные платформы при поддержке Ceph | Pool, доступы, репликация, topology, reclaim policy и recovery |
VMware vSAN не требует отдельного iSCSI-подключения для обычного datastore. Внешний iSCSI-массив обычно форматируют в VMFS на стороне vSphere. NFS подключают как файловый datastore. Для каждой модели заранее определите, где создаются snapshot, кто отвечает за репликацию и какие инструменты видят состояние storage.
Критичные ВМ не размещайте на протоколе, который команда не умеет диагностировать. При проблеме нужно быстро определить, задержка возникла в гостевой ОС, гипервизоре, сетевом пути, SDS-контроллере или физическом диске. Подробная матрица программных хранилищ для виртуализации и контейнеров приведена в руководстве по NAS, NFS, SMB, iSCSI и CSI.
Multipath, MPIO и единая конфигурация хостов
Для блочного storage настройте несколько независимых путей. На VMware проверьте VMkernel adapters, обнаружение target, число активных путей и Path Selection Policy. На Windows настройте MPIO, discovery и политики для всех LUN. На Linux проверьте multipath, WWID, тайм-ауты и правила именования.
- Каждый хост должен видеть одинаковые LUN и одинаковые идентификаторы.
- Пути должны проходить через независимые сетевые адаптеры и коммутаторы.
- Один отказ порта не должен закрывать доступ к datastore.
- После изменения zoning, VLAN или MPIO выполните rescan и проверьте пути на каждом хосте.
- Не создавайте разные параметры timeout и path policy вручную на отдельных хостах без документированной причины.
В HCI с локальными дисками multipath может отсутствовать в привычном виде, потому что гипервизор обращается к локальному storage-контроллеру, а SDS сам передает копии по east-west сети. Сначала определите модель доступа, затем выбирайте инструменты диагностики.
Проверка производительности и мониторинг SDS после настройки
Приемка SDS состоит из проверки доступности, производительности, отказа и восстановления. Один успешный запуск ВМ не подтверждает готовность кластера. Нужно увидеть поведение при backup, snapshot, resync, заполнении пула и отключении одного сетевого пути.
Какие метрики контролировать ежедневно и при инциденте
| Область | Метрики | Когда реагировать немедленно |
|---|---|---|
| Узлы | Health, CPU, память, температура, состояние сервисов | Узел недоступен, растет нагрузка, сервис storage остановлен |
| Диски | Ошибки, media wear, latency, температура, SMART, заполнение | Ошибки чтения или записи, резкий рост latency, деградация устройства |
| Сеть | Bandwidth, packet loss, ошибки интерфейса, drops, p95 latency | Потери пакетов, переполнение очередей, отказ резервного пути |
| Объекты | Compliance policy, недоступные компоненты, resync, recovery | Объект не соответствует policy или resync не продвигается |
| Емкость | Raw, usable, snapshots, thin allocation, свободное место | Пул приближается к порогу, overcommit растет без контроля |
| ВМ | IOPS, latency, throughput, очередь, ошибки гостевой ОС | Latency выше согласованного значения, растет очередь операций |
Пороговые значения задайте для каждой группы ВМ. Для критичной базы данных допустимый p95 latency будет ниже, чем для архивной ВМ. В уведомлениях указывайте узел, диск, объект, время начала, текущий resync и влияние на сервис. Одно сообщение storage health без привязки к ВМ редко помогает быстро определить приоритет.
Тесты производительности без риска для продуктивных данных
- Создайте отдельную тестовую ВМ или выделенный набор дисков. Не запускайте benchmark на продуктивном datastore без согласованного окна.
- Зафиксируйте базовую линию: IOPS, block size, read/write ratio, latency, throughput, queue depth и загрузку CPU.
- Начните с небольшой нагрузки и постепенно увеличивайте ее. Остановите тест при росте latency, ошибок сети или заполнения кэша.
- Повторите измерение при обычной работе, backup, snapshot и resync. Эти операции меняют результат.
- Сравните p95 и p99, а не только среднее значение. Запишите версию ПО, политику хранения, состав дисков и сетевую схему.
- Удалите тестовые данные и snapshot, затем убедитесь, что свободная емкость и health вернулись в штатное состояние.
Синтетический benchmark показывает возможности выбранного сценария, но не заменяет тест реальной нагрузки. База данных, файловый сервер и Kubernetes используют разные размеры блоков и модели очередей. Приемочные критерии связывайте с пользовательским сервисом: временем ответа приложения, длительностью backup и фактическим RTO.
Для временной лаборатории можно арендовать серверы или VDS, но характеристики виртуализированного storage и сетевой latency нужно подтвердить измерениями. Облачная инфраструктура Timeweb Cloud подходит для учебного стенда и тестирования процедур, если условия размещения разрешают запуск нужных компонентов. Результаты такой лаборатории нельзя напрямую переносить на продуктивный кластер с локальными NVMe.
Типовые ошибки при внедрении SDS и итоговый чек-лист
Ошибки, которые приводят к высокой latency и потере производительности
- Проектирование только по емкости. Диски дают нужные терабайты, но не выдерживают пиковые IOPS и запись после отказа.
- Перегруженная сеть. Storage, backup, vMotion и пользовательский трафик конкурируют за один uplink.
- Несогласованный MTU. Jumbo frames включены на хосте, но не настроены на коммутаторе или соседнем узле.
- Недостаток производительных дисков. Все ВМ размещены на HDD, хотя профиль нагрузки требует низкой latency записи.
- Переполнение пула. Thin provisioning и overcommit скрывают фактический дефицит свободной емкости.
- Неподдерживаемые диски и контроллеры. HCL проигнорирован, а нестандартная прошивка меняет поведение устройств.
- Слишком много snapshot. Долгоживущие snapshot увеличивают метаданные, запись и потребление емкости.
- Одновременные backup и resync. Восстановление после отказа конкурирует с тяжелой резервной операцией.
- Отсутствие QoS. Одна шумная ВМ занимает очередь и повышает latency для соседних сервисов.
- Тестирование только в штатном состоянии. После отказа узла или сетевого пути производительность может упасть ниже требований приложения.
При расследовании начинайте с временной шкалы. Сопоставьте рост latency с изменением policy, запуском backup, заполнением пула, отказом диска или началом resync. Затем разделите путь на гостевую ОС, гипервизор, сеть, SDS-сервис и физическое устройство.
Почему репликация и snapshot не заменяют backup
Репликация поддерживает доступность копии при отказе компонента. Если пользователь удалил данные, приложение записало поврежденную информацию или вредоносная программа зашифровала том, ошибка может попасть во все реплики.
Snapshot ускоряет короткий откат перед изменением, но зависит от основного storage и потребляет его свободное место. Snapshot не дает независимую копию, не закрывает риск потери кластера и не заменяет проверку восстановления.
- Храните backup в независимом домене отказа и по возможности на другой платформе.
- Определите RPO, например допустимую потерю данных за 15 минут.
- Определите RTO, например восстановление сервиса за 60 минут.
- Проверяйте восстановление целой ВМ, отдельных файлов и прикладных данных.
- Контролируйте срок хранения, шифрование, доступы и успешность каждого задания.
- Не удаляйте старые копии только потому, что основная ВМ работает.
Чек-лист перед переносом продуктивных виртуальных машин
До запуска кластера:
- Проверены версии vCenter Server, ESXi, SDS, прошивки и HCL.
- Собраны фактические IOPS, latency, throughput, емкость и профиль чтения и записи.
- Рассчитаны защита, резерв на отказ, resync, snapshot и рост.
- Определены failure domains, quorum, witness и сценарий N+1.
- Сеть хранения имеет отдельный VLAN, резервные пути и проверенный MTU.
- Диски, контроллеры, cache и защита кэша соответствуют требованиям платформы.
После создания:
- Все узлы видны в панели управления, health не содержит критичных ошибок.
- Datastore, pool, LUN или другой интерфейс доступен всем нужным хостам.
- Storage policy назначена тестовой ВМ и соответствует объектам.
- Проверены IOPS, latency, throughput и поведение при backup.
- Выполнен тест сетевого пути и плановый вывод одного узла в обслуживание.
- После возврата узла resync завершился, а объекты снова соответствуют policy.
Перед миграцией продуктивных ВМ:
- Есть актуальный backup и подтвержденный тест восстановления.
- Согласованы окно изменений, план отката и ответственные за каждый этап.
- Свободной емкости хватает для штатной работы и отказа одного узла.
- Мониторинг получает метрики узлов, дисков, сети, объектов, snapshot и resync.
- Документированы адреса, VLAN, роли узлов, disk group, policy, witness и зависимости.
- Первые ВМ перенесены поэтапно, после каждой группы проверены latency и состояние приложений.
SDS дает управляемый способ собрать отказоустойчивое хранилище из стандартных серверов, но результат зависит от инженерного расчета. Выбирайте Ceph для масштабируемой независимой storage-платформы, vSAN для тесно связанной с vSphere инфраструктуры, StarWind VSAN для компактных кластеров при соблюдении требований к witness и синхронной репликации. Перед продуктивной миграцией подтвердите цифры тестами, проверьте восстановление и оставьте резерв емкости для отказа и resync.