· 17 мин чтения

Failover Cluster на Windows Server 2022: развёртывание двухузлового кластера с нуля

Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет я собрал десятки отказоустойчивых кластеров на Windows — под файловый сервер, SQL AlwaysOn, Hyper-V, сервер печати. Принципы везде одинаковые, и я расскажу о них на примере классического двухузлового failover-кластера с общим iSCSI-хранилищем. Именно такой сценарий закрывает потребности компаний на 50–200 рабочих мест, а с правильной подготовкой разворачивается за один рабочий день.

Что даёт Failover Cluster в офисе на 50+ мест

Кластер — это два или более сервера, которые представляются одной виртуальной точкой (Cluster Name Object). Если один узел падает или перезагружается, второй автоматически подхватывает роли за 15–40 секунд. Это нужно для:

Аппаратная база и сеть

Под серьёзную нагрузку я всегда беру одинаковые сервера. У нас в дата-центре МТС стандарт — Dell с Xeon Platinum 8280, 384 ГБ RAM, двумя HBA под iSCSI, сетевыми картами Mellanox 40G под трафик приложений. Минимальные требования для офисного кластера:

КомпонентМинимумРекомендуется
Сетевые адаптеры на узел24 (Management, iSCSI, Cluster Heartbeat, LAN)
Shared storageiSCSI LUN на NASFC SAN или S2D
Свидетель (Witness)File Share на отдельной VMCloud Witness в Azure
Сеть iSCSIОтдельный L2Отдельный VLAN + Jumbo Frames 9000

Подготовка узлов

Оба сервера — Windows Server 2022 Standard/Datacenter, введены в домен, одинаковые обновления, отключены SMB1, настроены firewall-правила для кластера. Стартовый чек-лист:

Install-WindowsFeature Failover-Clustering -IncludeManagementTools
Install-WindowsFeature RSAT-Clustering -IncludeManagementTools
Install-WindowsFeature Multipath-IO

# Переименовать сетевые подключения по-человечески
Get-NetAdapter | Rename-NetAdapter -NewName "MGMT" ...

# Настроить Jumbo на iSCSI
Get-NetAdapter -Name "iSCSI-*" | Set-NetAdapterAdvancedProperty -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"

Подключение общего хранилища

На обоих узлах подключаем iSCSI-таргет с NAS или SAN-массива. Обязательно два пути (MPIO) через разные свитчи — это исключает потерю доступа к диску при сбое одного линка:

# Включить MPIO для iSCSI
Enable-MSDSMAutomaticClaim -BusType iSCSI
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR

# Подключение iSCSI-таргета
Start-Service MSiSCSI
Set-Service MSiSCSI -StartupType Automatic
New-IscsiTargetPortal -TargetPortalAddress 10.0.5.10
Connect-IscsiTarget -NodeAddress iqn.2025-06.local:target1 `
  -IsPersistent $true -IsMultipathEnabled $true

После подключения LUN видим как обычный диск в Disk Management на обоих узлах. Инициализируем GPT, создаём NTFS или ReFS, НЕ назначаем букву — кластер заберёт диск себе.

Валидация кластера

Перед созданием обязательно прогоняем Cluster Validation Wizard — это проверяет совместимость, сеть, хранилище, драйверы. Я никогда не пропускаю этот шаг, потому что без Warning-free отчёта поддержка Microsoft не будет даже разговаривать при инциденте.

Test-Cluster -Node NODE1, NODE2 `
  -ReportName "C:\Install\ClusterValidation.html" `
  -Include "Inventory","Network","Storage","System Configuration"

Открываем HTML-отчёт, устраняем все предупреждения. Только потом — создание кластера.

Создание кластера

New-Cluster -Name FSCLUS01 `
  -Node NODE1, NODE2 `
  -StaticAddress 192.168.10.50 `
  -NoStorage

# Добавить общий диск как CSV
Get-ClusterAvailableDisk | Add-ClusterDisk
Add-ClusterSharedVolume -Name "Cluster Disk 1"

В Failover Cluster Manager видим новый кластер с Heartbeat-сетью и диском в разделе Cluster Shared Volumes (путь C:\ClusterStorage\Volume1 на обоих узлах — это отказоустойчивое хранилище).

Cluster Quorum и Witness

Двухузловому кластеру для работы нужен третий голос — свидетель. Иначе при сбое одного узла второй не знает, остался ли он единственным или сеть распалась, и уходит в offline. Три варианта:

# File Share Witness на отдельном сервере
Set-ClusterQuorum -FileShareWitness "\\FS01\ClusterWitness$"

# Cloud Witness в Azure
Set-ClusterQuorum -CloudWitness -AccountName "mystorage" -AccessKey "key..."

# Disk Witness (старая схема, требует отдельный LUN 1 ГБ)
Set-ClusterQuorum -DiskWitness "Cluster Disk 2"

Я всегда рекомендую Cloud Witness — он живёт в Azure Storage, не требует отдельной инфраструктуры, ставится за 10 минут и стоит копейки.

Развёртывание ролей

После создания кластера в него добавляются роли. Примеры:

# File Server for general use
Add-ClusterFileServerRole -Storage "Cluster Disk 1" -Name "FS-SHARE-CLUS" `
  -StaticAddress 192.168.10.51

# Scale-Out File Server (для Hyper-V/SQL)
Add-ClusterScaleOutFileServerRole -Name "SOFS"

# DHCP
Add-ClusterServerRole -Name "DHCP-CLUS" -StaticAddress 192.168.10.52 `
  -Storage "Cluster Disk 3"

Мини-кейс: кластер для юридической компании

Весной 2025 мы разворачивали кластер файлового сервера для юридической компании из центра Москвы — 74 рабочих места, 8 ТБ документов, требование «максимум 5 минут простоя в квартал». Поставили два Dell с Xeon Platinum 8280, iSCSI-таргет на Synology, отдельный VLAN для Heartbeat и iSCSI, Cloud Witness в Azure. Все настройки через PowerShell-скрипт, который повторяется на обоих узлах.

Время развёртывания — 9 рабочих часов плюс 3 часа на миграцию данных. За первые 10 месяцев эксплуатации: 4 обновления Windows — ноль простоев, 1 замена блока питания — ноль простоев, 2 перезагрузки по регламенту — ноль простоев. Стоимость проекта — 240 000 руб. Клиент был доволен настолько, что заказал аналогичный кластер под SQL AlwaysOn в 2026 году.

Обслуживание кластера

Что делать регулярно:

Развернём отказоустойчивый кластер под ключ

Проектирование, закупка оборудования Dell / Supermicro, развёртывание Windows Server 2022/2025 Failover Cluster с iSCSI или S2D, валидация и обучение администратора. Москва и область, дата-центр МТС.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

Сколько узлов минимально нужно для Failover Cluster?
Два, но обязательно с внешним свидетелем. Иначе кворум развалится при первом же сбое одного узла.
Нужен ли общий диск (shared storage)?
Да для классики. Для Storage Spaces Direct — нет, там общее хранилище строится из локальных дисков.
Как создать кластер через PowerShell?
Test-Cluster → New-Cluster → Add-ClusterSharedVolume. Всё настраивается скриптом за 15 минут после валидации.
Можно ли собрать кластер из разнородных серверов?
Технически можно, но я всегда беру идентичные узлы — одинаковые CPU, память, сетевые карты, RAID.
Как протестировать failover без простоя?
Move-ClusterGroup или перевод узла в режим Drain через Cluster-Aware Updating. Пользователи не заметят.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.