Відмов кластер Windows Server 2016 в робочій групі (без домена)

У версіях Windows Server, що передують Windows Server 2016, створити відмовостійкий кластер з декількох серверів можна було тільки між серверами одного домену Active Directory. У новій версії тепер можна створювати двох (і більше) вузловий failover кластер між серверами в різних доменах, і навіть між серверами робочої групи (взагалі без домену Active Directory).

Природно, що на всіх вузлах кластера потрібно устаровіть Windows Server 2016. Підтримуються наступні сценарії кластеризації:

службастатускоментар
SQL serverпідтримуєтьсяРекомендується використовувати вбудовану аутентифікацію SQL Server
файловий сервер

Підтримується, але не рекомендуєтьсяЧи не підтримується Kerberos-аутентфікація для SMB
Hyper-V

Підтримується, але не рекомендуєтьсяЧи не підтримується режим Live Migration, доступна тільки Quick migration
Message Queuing (MSMQ)Не підтримуєтьсяMSMQ зберігає свої властивості в Active Directory.

На всіх майбутніх вузлах кластера потрібно

  1. встановити роль Failover Clustering: Install-WindowsFeature Failover-Clustering -IncludeManagementTools
  2. На кожній кластерної ноді потрібно створити локальну обліковий запис з правами адміністратора (або використовувати вбудовану учетку адміністратора) з однаковими паролями.
    net user / add clustadm Pa $$ word!
    net localgroup administrators clustadm / add
  3. При появі помилки Requested Registry access is not allowed, необхідно змінити в реєстрі параметр віддаленого UAC - Даний ключ дозволяє віддалений доступ до адміністративних кулях.
    New-ItemProperty -Path HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System -Name LocalAccountTokenFilterPolicy -Value 1
  4. На всіх вузлах кластера потрібно задати однаковою первинний DNS суфікс (Primary DNS suffix). Це потрібно для того, щоб сервера кластера могли звертатися один до одного по FQDN іменах
  5. Також потрібно зняти галку Register DNS connection addresses
  6. У файл hosts на всіх вузлах кластера потрібно внести зміни, щоб сервера могли отрезолвіть імена інших членів кластера, а також ім'я кластера (в тому числі FQDN імена). Додати імена в файл c: \ windows \ system32 \ drivers \ etc \ hosts можна так:
    Set file = "% windir% \ System32 \ drivers \ etc \ hosts"
    echo 192.168.1.21 clust-host1 >>% file%
    echo 192.168.1.21 clust-host1.mylocal.net >>% file%
    echo 192.168.1.22 clust-host2 >>% file%
    echo 192.168.1.22 clust-host2.mylocal.net >>% file%
    echo 192.168.1.20 cluster1 >>% file%
    echo 192.168.1.20 cluster1.mylocal.net >>% file%

Для попередньої валідації вузлів кластера можна скористатися командою:

test-cluster -node "clust-host1.mylocal.net", "clust-host2.mylocal.net"

Для створення кластера через PowerShell, потрібно виконати таку команду:

New-Cluster -Name cluster1 -Node clust-host1.mylocal.net, clust-host2.mylocal.net -AdministrativeAccessPoint DNS -StaticAddress 192.168.1.20

Тепер можна перевірити статус кластера і його компонентів Командлети get-cluster і get-clusterresource.

Для підключення (і віддаленого управління) кластером через GUI потрібно скористатися оснащенням Failover Cluster Manager (Входить до складу) RSAT для Windows 10.

Тепер за допомогою пункту меню Connect to cluster можна підключатися до створеного кластеру. У тому випадку, якщо в кластері парна кількість серверів, доведеться налаштувати ресурс-свідок. Відзначимо, що в якості кворумного свідка не можна використовувати мережеву папку SMB. підтримується режим Disk Witness - загальний диск (з одночасним доступом до нього з обох вузлів), або Cloud Witness - хмарний дисковий ресурс в Azure.