Cluster Shared Volumes
Cluster Shared Volumes (CSV) — это технология отказоустойчивого кластера, разработанная компанией Microsoft, которая позволяет нескольким узлам кластера одновременно иметь доступ к одному и тому же логическому тому (LUN) на общем хранилище (SAN) с файловой системой NTFS. CSV обеспечивает единую точку монтирования для всех узлов, что критически важно для таких приложений, как Hyper-V и SQL Server, где требуется высокая доступность и возможность «живой» миграции виртуальных машин без простоев.
История и развитие
Технология CSV была впервые представлена в Windows Server 2008 R2 (2009 год) как часть компонента Failover Clustering. Изначально она предназначалась исключительно для рабочих нагрузок Hyper-V, позволяя нескольким узлам кластера одновременно читать и записывать данные на один том NTFS. Основной проблемой, которую решал CSV, была необходимость координации доступа к диску — в классических кластерных дисках (кластерные диски с общим доступом, SCSI-3 Persistent Reservations) доступ к тому в каждый момент времени мог иметь только один узел (владелец ресурса). CSV же ввёл механизм, при котором каждый узел может напрямую обращаться к тому через сеть хранения данных (SAN), а координацию операций записи берёт на себя специальный «координатор» (coordinator node).
В Windows Server 2012 (2012 год) CSV получили значительные улучшения: была увеличена производительность при операциях записи, добавлена поддержка ReFS (Resilient File System), улучшена интеграция с SMB (Server Message Block) для доступа к томам по сети, а также введена возможность использования CSV с любыми приложениями, а не только с Hyper-V. В Windows Server 2012 R2 (2013 год) были оптимизированы алгоритмы кэширования и снижена нагрузка на координатор.
В Windows Server 2016 (2016 год) CSV стали полностью совместимы с Storage Spaces Direct (S2D) — технологией программно-определяемого хранилища, что позволило строить отказоустойчивые кластеры без традиционной SAN. В этой версии также появилась поддержка CSV Cache (кэширование на узлах) и улучшенная обработка сбоев координатора.
В Windows Server 2019 и 2022 годов технология продолжила развиваться, получив улучшения в области производительности (например, поддержка RDMA для CSV) и интеграции с новыми версиями Hyper-V и файловых систем.
Архитектура и принцип работы
Основные компоненты
CSV функционирует в рамках отказоустойчивого кластера Windows Server. Ключевые элементы архитектуры:
- Общее хранилище (SAN или S2D) — физический или виртуальный диск (LUN), доступный всем узлам кластера.
- CSVFS (Cluster Shared Volume File System) — надстройка над NTFS или ReFS, которая обеспечивает единую точку монтирования и координацию доступа.
- Координатор (Coordinator Node) — один из узлов кластера, который управляет метаданными тома (например, списком открытых файлов, блокировками). Все операции записи проходят через координатор, хотя чтение может выполняться напрямую с диска.
- CSV Redirected Access — механизм, при котором узел, не являющийся координатором, может выполнять операции записи, перенаправляя их координатору через сеть (обычно по протоколу SMB).
Процесс работы
- Монтирование: Том CSV монтируется на всех узлах кластера в единую папку (например,
C:\ClusterStorage\Volume1). Каждый узел видит этот том как локальный диск, но фактически он является общим. - Координация: Узел, который первым смонтировал том, становится его координатором. При сбое координатора роль автоматически переходит к другому узлу.
- Доступ к данным:
- Чтение: Любой узел может читать данные напрямую с диска через SAN (прямой доступ, Direct I/O).
- Запись: Если узел не является координатором, он отправляет запрос на запись координатору через сеть (CSV Redirected Access). Координатор выполняет запись на диск и уведомляет остальные узлы об изменении метаданных.
- Блокировки: CSV использует распределённые блокировки (Distributed Lock Manager, DLM) для предотвращения конфликтов при одновременном доступе к одним и тем же данным.
CSV Cache
Начиная с Windows Server 2016, в CSV появилась возможность кэширования данных на узлах (CSV Cache). Это позволяет ускорить чтение, так как данные могут быть закэшированы в оперативной памяти узла. Кэш синхронизируется между узлами через координатора.
Классификация и виды
CSV не имеют жёсткой классификации по типам, но их можно различать по сценариям использования:
- CSV для Hyper-V — наиболее распространённый сценарий. Виртуальные машины (ВМ) хранятся на CSV-томе, и каждый узел кластера может запускать ВМ, имея прямой доступ к её дискам. Это позволяет выполнять «живую» миграцию (Live Migration) ВМ между узлами без перемещения данных.
- CSV для SQL Server — используется для размещения баз данных SQL Server в отказоустойчивом кластере. Позволяет нескольким экземплярам SQL Server одновременно читать данные, хотя запись обычно ведётся только одним экземпляром.
- CSV для файловых серверов (Scale-Out File Server, SOFS) — технология, при которой CSV используется для создания высокодоступных файловых хранилищ, доступных по протоколу SMB. Это популярное решение для хранения профилей пользователей, домашних папок и общих ресурсов в корпоративных сетях.
- CSV в Storage Spaces Direct (S2D) — CSV являются основой для S2D, где каждый узел кластера является частью распределённого хранилища. В этом случае CSV-тома создаются поверх виртуальных дисков S2D.
Характеристики и ограничения
Преимущества
- Высокая доступность: При сбое одного узла другой узел может немедленно взять на себя управление ВМ или приложением, так как данные уже доступны.
- «Живая» миграция: Возможность перемещения ВМ между узлами без остановки их работы.
- Упрощённое управление: Администратор видит единую структуру томов на всех узлах кластера.
- Масштабируемость: Поддерживается до 64 узлов в одном кластере (в зависимости от версии Windows Server).
- Производительность: Прямой доступ к чтению и кэширование снижают задержки.
Недостатки и ограничения
- Зависимость от координатора: Все операции записи проходят через один узел, что может стать узким местом при высокой нагрузке на запись.
- Сетевые задержки: Перенаправление записей через сеть (CSV Redirected Access) увеличивает задержки по сравнению с прямым доступом.
- Сложность настройки: Требуется правильно настроенная сеть хранения данных (SAN) или S2D, а также отказоустойчивый кластер.
- Несовместимость с некоторыми приложениями: Не все приложения корректно работают с CSV, особенно те, которые требуют эксклюзивного доступа к диску.
- Ограничения на размер тома: Максимальный размер CSV-тома ограничен возможностями файловой системы (NTFS — до 256 ТБ, ReFS — до 35 ПБ).
Применение
CSV широко используются в корпоративных ИТ-инфраструктурах, где требуется высокая доступность и отказоустойчивость:
- Виртуализация серверов (Hyper-V): Основное применение — размещение виртуальных машин на общем хранилище, что позволяет реализовать отказоустойчивость и «живую» миграцию.
- Базы данных (SQL Server, Exchange): Обеспечение отказоустойчивости критических баз данных.
- Файловые серверы (Scale-Out File Server): Создание высокодоступных файловых хранилищ для пользовательских данных.
- Резервное копирование: Использование CSV для хранения резервных копий виртуальных машин (например, с помощью System Center Data Protection Manager).
- Среда разработки и тестирования: Быстрое развёртывание и миграция тестовых сред.
Интересные факты
- CSV не являются файловой системой в чистом виде — это надстройка (фильтр) над NTFS или ReFS, которая добавляет кластерную координацию.
- В Windows Server 2012 R2 была добавлена возможность использования CSV с любыми приложениями, но Microsoft рекомендует использовать её только с теми, которые сертифицированы для работы с CSV (например, Hyper-V, SQL Server, Exchange).
- Технология CSV является ключевым компонентом Microsoft Azure Stack HCI — гибридного облачного решения для развёртывания локальных кластеров.
- В некоторых конфигурациях CSV могут использовать протокол SMB Direct (RDMA) для ускорения перенаправленных операций записи.
Источники
- Microsoft Docs: «Failover Clustering Overview» (Windows Server)
- Microsoft Docs: «Cluster Shared Volumes (CSV)»
- Microsoft Docs: «Storage Spaces Direct Overview»
- Windows Server 2012 R2: Inside CSV (TechNet Blog)
- Windows Server 2016: CSV Cache Improvements (Microsoft Tech Community)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →