Hyper-V Failover Cluster 2026: 2-узловой кластер для офиса 30–100 человек
Меня зовут Семёнов Евгений Сергеевич, я директор АйТи Фреш. За 15 лет я построил больше 30 Hyper-V Failover Cluster для офисов в Москве и МО — от 2 узлов с 4 ВМ для бухгалтерии до 4 узлов с 60 ВМ для производственной компании. В этой статье разберу 2-узловую конфигурацию, которая закрывает 80% задач среднего бизнеса, с реальными командами PowerShell и подводными камнями.
Когда нужен кластер, а когда можно одиночным сервером
Я часто отговариваю клиентов от кластера, если задача позволяет. Кластер — это две точки отказа вместо одной (всё работает в паре, любой компонент должен быть отказоустойчивым), плюс лицензии Datacenter, плюс СХД или S2D. Простая математика: одиночный сервер 800 тыс. руб. vs 2-узловой кластер 2.8 млн руб. с СХД.
Кластер обязателен, если:
- 1С с 30+ пользователями и простой = потеря дневной выручки.
- Терминальный сервер на 50+ человек, без которого офис не работает.
- Корпоративная почта Exchange/MS365-гибрид с локальным сервером.
- Производство с MES/SCADA-системами, где остановка = простой цеха.
Для офиса в 15 человек с 1С на 5 пользователей и файлами кластер избыточен — берём один нормальный сервер с двумя БП, RAID-10, NAS для бэкапов и спим спокойно.
Архитектура 2-узлового кластера, которую я ставлю
┌───────────────────┐ ┌───────────────────┐
│ HV01 (Node 1) │ │ HV02 (Node 2) │
│ Server 2022 DC │ │ Server 2022 DC │
│ 2 × Xeon 6338 │ │ 2 × Xeon 6338 │
│ 256 GB DDR4 RDIMM│ │ 256 GB DDR4 RDIMM│
│ 2 × NVMe 1.92 TB │ │ 2 × NVMe 1.92 TB │
│ 4 × SSD 3.84 TB │ │ 4 × SSD 3.84 TB │
└────┬─────┬────────┘ └────┬─────┬────────┘
│ │ │ │
│ └─── Cluster heartbeat (1 GbE) ──┘
└───── Live Migration / S2D (25 GbE RDMA) ──┘
Quorum witness: File Share на NAS или Cloud Witness в Azure Blob
Сетевая схема — обязательно отдельные физические сети для Live Migration, кластерного heartbeat и продуктивного трафика. На одном свитче через VLAN — допустимо, но рискованно: один сбой свитча = развалившийся кластер.
Подготовка узлов
На обоих серверах ставлю Windows Server 2022 Datacenter Core (без GUI), полностью обновляю, ввожу в домен, даю одинаковые имена сетевых адаптеров:
# На обоих узлах
Install-WindowsFeature -Name Hyper-V, Failover-Clustering, Multipath-IO, Data-Center-Bridging `
-IncludeManagementTools -Restart
# После перезагрузки — проверка ролей
Get-WindowsFeature Hyper-V*, Failover*, Multipath* | Where-Object Installed
# Переименование адаптеров
Rename-NetAdapter -Name "Ethernet" -NewName "MGMT"
Rename-NetAdapter -Name "Ethernet 2" -NewName "CLUSTER"
Rename-NetAdapter -Name "Ethernet 3" -NewName "STORAGE"
Rename-NetAdapter -Name "Ethernet 4" -NewName "VM-TRAFFIC"
# Включение Jumbo Frames на STORAGE и CLUSTER
Set-NetAdapterAdvancedProperty -Name "STORAGE","CLUSTER" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
Создание Virtual Switch
# На обоих узлах одинаково
New-VMSwitch -Name "vSwitch-VM" -NetAdapterName "VM-TRAFFIC" `
-AllowManagementOS $false -EnableEmbeddedTeaming $false
# Если используем SET (Switch Embedded Teaming) — несколько физических адаптеров
New-VMSwitch -Name "vSwitch-VM" -NetAdapterName "VM-TRAFFIC1","VM-TRAFFIC2" `
-EnableEmbeddedTeaming $true -AllowManagementOS $false
Хранилище: iSCSI или Storage Spaces Direct
Раньше я почти всегда ставил отдельный iSCSI-NAS (Synology, QNAP, Dell). С 2022 года всё чаще выбираю S2D — выходит дешевле и быстрее, не нужно отдельное железо.
Вариант 1. iSCSI с Synology RS3621xs+ (2× 10 Gbit, 12 × 4 TB SSD):
# На каждом узле
Set-Service -Name MSiSCSI -StartupType Automatic
Start-Service MSiSCSI
New-IscsiTargetPortal -TargetPortalAddress 10.10.20.10 -TargetPortalPortNumber 3260
Get-IscsiTarget | Connect-IscsiTarget -IsPersistent $true -IsMultipathEnabled $true
# MPIO для отказоустойчивости
Enable-MSDSMAutomaticClaim -BusType iSCSI
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy LQD
Вариант 2. Storage Spaces Direct на локальных NVMe + SSD:
# Создаём кластер сначала, потом включаем S2D
Test-Cluster -Node HV01,HV02 -Include "Storage Spaces Direct","Inventory","Network","System Configuration"
New-Cluster -Name CLU01 -Node HV01,HV02 -StaticAddress 192.168.10.100 -NoStorage
Enable-ClusterStorageSpacesDirect -CacheState Enabled -Confirm:$false
# Создание тома Cluster Shared Volume на S2D
New-Volume -StoragePoolFriendlyName "S2D on CLU01" `
-FriendlyName "CSV-Production" `
-FileSystem CSVFS_ReFS `
-StorageTierFriendlyNames Performance,Capacity `
-StorageTierSizes 1TB,8TB
Создание кластера и настройка кворума
# Валидация перед созданием
Test-Cluster -Node HV01,HV02 -ReportName "C:\ClusterValidation.html"
# Создание (если не S2D)
New-Cluster -Name CLU01 -Node HV01,HV02 -StaticAddress 192.168.10.100
# Cluster Shared Volume для iSCSI
Get-ClusterAvailableDisk | Add-ClusterDisk
Add-ClusterSharedVolume -Name "Cluster Disk 1"
# Кворум: File Share Witness на NAS
Set-ClusterQuorum -FileShareWitness "\\nas01\witness$"
# Или Cloud Witness в Azure Blob (для геораспределённых узлов)
# Set-ClusterQuorum -CloudWitness -AccountName "stcluwitness" -AccessKey "..."
Настройка Live Migration
# Включаем Live Migration на 25 GbE сети
Enable-VMMigration
Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos `
-VirtualMachineMigrationPerformanceOption SMB `
-MaximumVirtualMachineMigrations 4 `
-MaximumStorageMigrations 4
Add-VMMigrationNetwork -Subnet 10.10.30.0/24 -Priority 1
Remove-VMMigrationNetwork -Subnet 192.168.10.0/24
# Делегирование Kerberos для Live Migration через PowerShell на DC
Get-ADComputer HV01 | Set-ADAccountControl -TrustedForDelegation $true
Get-ADComputer HV02 | Set-ADAccountControl -TrustedForDelegation $true
Создание первой ВМ в кластере
# Папка для ВМ — на CSV
$vmPath = "C:\ClusterStorage\Volume1\VMs\1C-Server"
New-Item -Path $vmPath -ItemType Directory
New-VM -Name "1C-Server" -Generation 2 -MemoryStartupBytes 32GB `
-Path $vmPath -NewVHDPath "$vmPath\1C-Server.vhdx" `
-NewVHDSizeBytes 500GB -SwitchName "vSwitch-VM"
Set-VM -Name "1C-Server" -ProcessorCount 8 `
-DynamicMemory -MemoryMinimumBytes 16GB -MemoryMaximumBytes 64GB `
-AutomaticStartAction Start -AutomaticStopAction Save
# Регистрация в кластере
Add-ClusterVirtualMachineRole -VirtualMachine "1C-Server" -Cluster CLU01
# Включение защиты от падения узла (auto-failover)
Get-ClusterResource "Virtual Machine 1C-Server" | Set-ClusterParameter `
-Name "FailoverThreshold" -Value 1 -Create
Hyper-V Replica для Disaster Recovery
Кластер защищает от падения одного узла. Чтобы выжить при сгоревшей серверной — настраиваю Hyper-V Replica на сервер в другой локации (резервный офис, ДЦ):
# На целевом сервере (DR-site)
Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Kerberos `
-KerberosAuthenticationPort 80 -DefaultStorageLocation "D:\Replicas"
# На исходной ВМ в кластере
Enable-VMReplication -VMName "1C-Server" -ReplicaServerName "DR-HV01" `
-ReplicaServerPort 80 -AuthenticationType Kerberos `
-CompressionEnabled $true -ReplicationFrequencySec 30
Start-VMInitialReplication -VMName "1C-Server"
RPO 30 секунд — потеряем максимум полминуты данных при катастрофическом сбое. Для бухгалтерии и 1С это приемлемо.
Тестирование failover и обслуживание
# Проверка работы кластера
Get-ClusterNode
Get-ClusterResource | Where-Object {$_.State -ne "Online"}
Get-ClusterLog -TimeSpan 10 -Destination "C:\ClusterLogs"
# Перевод ВМ на другой узел (Live Migration)
Move-ClusterVirtualMachineRole -Name "1C-Server" -Node HV02 -MigrationType Live
# Перевод узла в режим обслуживания
Suspend-ClusterNode -Name HV01 -Drain
# ... обновляем, перезагружаем ...
Resume-ClusterNode -Name HV01 -Failback Immediate
Подводные камни, которые я ловил в продакшене
- Антивирус на хосте — Defender ASR-правила могут блокировать Live Migration. Исключаем папки CSV, VHDX-файлы и сам Hyper-V из сканирования.
- Time skew между узлами — расхождение больше 5 минут разваливает Kerberos. Жёстко синхронизируем по NTP с DC.
- Один свитч — клиент сэкономил, поставил один Mikrotik CRS на всё. Свитч умер ночью — и кластер, и оба DC, и СХД одновременно. Минимум 2 свитча с разводкой.
- Витрина ВМ vs Cluster Shared Volume — забыли разместить vhdx на CSV, ВМ не мигрирует. Всё хранилище ВМ должно быть на C:\ClusterStorage\.
- RAM overcommit — Hyper-V не любит сильно перегружать память. Считаю запас 25% от суммарной RAM кластера на случай падения узла.
Построение Hyper-V Failover Cluster под ключ
Поднимаю 2-узловой кластер за 5–7 рабочих дней: подбор железа, лицензии, развёртывание, миграция текущих ВМ, документация и обучение вашего админа. Бесплатный аудит существующей виртуализации.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по Hyper-V Failover Cluster
- Сколько стоит лицензирование Hyper-V для кластера в 2026 году?
- Windows Server 2022 Standard на каждый узел кластера (право на 2 ВМ). Если ВМ больше 2 на узел — Datacenter (неограниченные ВМ). Для 15 ВМ на 2-узловом кластере выгоднее 2 × Datacenter (~1.7 млн руб.) чем 8 × Standard.
- Можно ли использовать локальные диски вместо iSCSI?
- Да — Storage Spaces Direct (S2D) объединяет локальные NVMe/SSD узлов в распределённое хранилище. Требует Datacenter, минимум 2 узла, RDMA-сеть для нормальной производительности. Я для офисов чаще ставлю S2D — нет отдельного NAS, выше скорость.
- Какая сеть нужна для Live Migration?
- Минимум 10 Гбит/с выделенная сеть, идеально 25 Гбит/с с поддержкой RDMA (RoCE или iWARP). На 1 Гбит/с миграция ВМ с 32 ГБ RAM занимает 4-5 минут — это уже не Live, а долгий пересет.
- Что произойдёт, если оба узла кластера выйдут из строя?
- Все ВМ остановятся. Для защиты — Hyper-V Replica на отдельный сервер в другом помещении или дата-центре. При полном отказе кластера администратор вручную запускает реплики на DR-узле. RPO 30 секунд - 15 минут в зависимости от настроек.
- Имеет ли смысл 2-узловой кластер для офиса 50 человек?
- Да — стоимость одного дня простоя 1С и почты в офисе на 50 человек (~150-250 тыс. руб.) перекрывает разницу в стоимости с одиночным сервером уже на первом инциденте. Окупается за 3-5 лет даже без аварий за счёт live migration при обновлениях.