Служба сведений о домене сбоя
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, версии 21H2 и 20H2
Отказоустойчивая кластеризация позволяет нескольким серверам работать вместе с целью обеспечения высокого уровня доступности или, другими словами, отказоустойчивости узла. Но современные предприятия требуют все большей доступности от своей инфраструктуры. Для обеспечения бесперебойной работы, свойственной облачной среде, необходимо настроить защиту даже от таких маловероятных событий, как поломки корпуса, простои стойки или стихийные бедствия. Именно поэтому отказоустойчивая кластеризация в Windows Server 2016 также представила отказоустойчивость корпуса, стойки и сайта.
Домены сбоя и отказоустойчивость
Домены сбоя и отказоустойчивость — тесно связанные понятия. Домен сбоя — это набор аппаратных компонентов, которые совместно используют единственную точку сбоя. Чтобы достичь отказоустойчивости конкретного уровня, необходимо использовать на нем несколько доменов сбоя. Например, чтобы обеспечить отказоустойчивость стоек, серверы и данные необходимо распределить среди нескольких стоек.
В этом коротком видео представлен обзор доменов сбоя в Windows Server 2016.
Осведомленность о домене сбоя в Windows Server 2019
Сведения о домене сбоя доступны в Windows Server 2019, но по умолчанию отключены и должны быть включены в реестре Windows.
Чтобы включить осведомленность о домене сбоя в Windows Server 2019, перейдите в реестр Windows и задайте параметр (Get-Cluster). AutoAssignNodeSite: раздел реестра с значением 1.
(Get-Cluster).AutoAssignNodeSite=1
Чтобы отключить сведения о домене сбоя в Windows 2019, перейдите в реестр Windows и задайте параметр (Get-Cluster). Раздел реестра AutoAssignNodeSite с значением 0.
(Get-Cluster).AutoAssignNodeSite=0
Преимущества
Дисковые пространства, в частности локальные, используют домены сбоя для повышения уровня безопасности данных. Устойчивость в дисковых пространствах в принципе аналогична распределенной программно определяемой системе RAID. Несколько копий всех данных синхронизируются. В случае сбоя оборудования и потери одной копии другие копируются повторно для восстановления устойчивости. Для достижения максимальной устойчивости копии следует хранить в отдельных доменах сбоя.
Служба работоспособности использует домены сбоя для предоставления дополнительных полезных оповещений. Каждый домен сбоя можно связать с метаданными расположения, которые будут автоматически включаться в любые последующие оповещения. Используя эти дескрипторы, рабочий или обслуживающий персонал могут различать оборудование, что поможет уменьшить количество ошибок.
Растянутая кластеризация использует домены сбоя для сходства хранилища. В растянутой кластеризации можно присоединить к общему кластеру отдаленные серверы. Для повышения производительности приложения или виртуальные машины следует запускать на серверах, которые расположены недалеко от серверов, на которых хранятся данные. Осведомленность о домене сбоя обеспечивает такое сходство хранилища.
Уровни доменов сбоя
Существует четыре классических уровня доменов сбоя: сайт, стойка, корпус и узел. Узлы обнаруживаются автоматически. Каждый дополнительный уровень не является обязательным. Например, если в развертывании не используются колонок-серверы, уровень корпуса может оказаться невзгодным.
Использование
Для указания доменов сбоя можно использовать PowerShell или разметку XML. Оба подхода эквивалентны и полнофункциональны.
Важно!
Перед включением локальных дисковых пространств по возможности укажите домены сбоя. Это позволяет автоматической конфигурации подготовить пул, уровни и такие параметры, как устойчивость и число столбцов для обеспечения отказоустойчивости корпуса или стойки. После создания пула и томов данные не будут перемещены обратно после изменения топологии домена сбоя. Чтобы переместить узлы между корпусами или стойками после включения локальных дисковых пространств, сначала следует исключить узел и его диски из пула с помощью Remove-ClusterNode -CleanUpDisks
.
Определение доменов сбоя с помощью PowerShell
Windows Server 2016 представлены следующие командлеты для работы с доменами сбоя:
Get-ClusterFaultDomain
Set-ClusterFaultDomain
New-ClusterFaultDomain
Remove-ClusterFaultDomain
В этом коротком видео показано использование команд PowerShell домена сбоя кластера.
Используйте Get-ClusterFaultDomain
для просмотра текущей топологии домена сбоя. Здесь перечислены все узлы в кластере, а также все корпуса, стойки или сайты, которые вы создали. Вы можете отфильтровать результаты с помощью таких параметров, как -Type или -Name, но это не обязательно.
Get-ClusterFaultDomain
Get-ClusterFaultDomain -Type Rack
Get-ClusterFaultDomain -Name "server01.contoso.com"
Используйте для New-ClusterFaultDomain
создания новых шасси, стоек или сайтов. Параметры -Type
и -Name
являются обязательными. Возможные значения для -Type
: Chassis
, Rack
и Site
. Может быть любой -Name
строкой. (Для Node
доменов сбоя типа имя должно быть фактическим именем узла, заданным автоматически.
New-ClusterFaultDomain -Type Chassis -Name "Chassis 007"
New-ClusterFaultDomain -Type Rack -Name "Rack A"
New-ClusterFaultDomain -Type Site -Name "Shanghai"
Важно!
Windows Server не может и не проверяет, соответствуют ли создаваемые домены сбоя чему-либо в реальном физическом мире. (Это может показаться очевидным, но это важно понимать.) Если в физическом мире все узлы находятся в одной стойке, то создание двух -Type Rack
доменов сбоя в программном обеспечении не обеспечивает отказоустойчивость стоек волшебным образом. Вы отвечаете за обеспечение соответствия топологии, созданной с помощью этих командлетов, фактическому расположению оборудования.
Используйте Set-ClusterFaultDomain
для перемещения одного домена сбоя в другой. Обычно для описания этого отношения вложенности используются термины "родительской" и "дочерний". Параметры -Name
и -Parent
являются обязательными. В -Name
укажите имя перемещаемого домена сбоя, а в -Parent
— имя назначения. Чтобы переместить сразу несколько доменов сбоя, перечислите их имена.
Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent "Rack A"
Set-ClusterFaultDomain -Name "Rack A", "Rack B", "Rack C", "Rack D" -Parent "Shanghai"
Важно!
При перемещении доменов сбоев их дочерние элементы перемещаются вместе с ними. Если в приведенном выше примере стойка A является родительским элементом для server01.contoso.com, этот домен не нужно отдельно перемещать на сайт Shanghai. Это уже сделано, поскольку там находится его родительский элемент: все так же, как и в реальном мире.
Отношения "родители-потомки" отображаются в выходных Get-ClusterFaultDomain
данных в ParentName
столбцах и ChildrenNames
.
Вы также можете использовать для Set-ClusterFaultDomain
изменения некоторых других свойств доменов сбоя. Например, можно указать необязательные -Location
метаданные или -Description
для любого домена сбоя. Эти сведения будут включены в оповещения службы работоспособности, касающиеся оборудования. Вы также можете переименовать домены сбоя с помощью -NewName
параметра . Не переименовывать Node
домены сбоя типа.
Set-ClusterFaultDomain -Name "Rack A" -Location "Building 34, Room 4010"
Set-ClusterFaultDomain -Type Node -Description "Contoso XYZ Server"
Set-ClusterFaultDomain -Name "Shanghai" -NewName "China Region"
Используйте для Remove-ClusterFaultDomain
удаления шасси, стоек или сайтов, которые вы создали. Параметр -Name
является обязательным. Невозможно удалить домен сбоя, содержащий дочерние элементы— сначала удалите дочерние элементы или переместите их за пределы с помощью Set-ClusterFaultDomain
. Чтобы переместить домен сбоя за пределы всех остальных доменов сбоя, присвойте ей -Parent
пустую строку (""). Вы не можете удалить Node
домены сбоя типа. Чтобы удалить сразу несколько доменов сбоя, перечислите их имена.
Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent ""
Remove-ClusterFaultDomain -Name "Rack A"
Определение доменов сбоя с помощью XML-разметки
Домены сбоя можно указать при помощи синтаксиса на основе XML. Мы рекомендуем использовать избранный текстовый редактор, например Visual Studio Code (доступен здесь бесплатно) или Блокнот, чтобы создать XML-документ, который можно сохранить и повторно использовать.
В этом коротком видео показано использование XML для указания доменов сбоя в отказоустойчивой кластеризации.
В PowerShell выполните следующий командлет: Get-ClusterFaultDomainXML
. Будет выведена текущая спецификация домена сбоя для кластера в виде XML-кода. Это отражает все обнаруженные <Node>
, заключенные в открывающий и закрывающий <Topology>
теги.
Чтобы сохранить эти выходные данные в файл, выполните следующую команду.
Get-ClusterFaultDomainXML | Out-File <Path>
Откройте файл и добавьте <Site>
теги , <Rack>
и <Chassis>
, чтобы указать, как эти узлы распределяются между сайтами, стойками и корпусами. Каждый тег должен быть идентифицирован уникальным именем. Для узлов необходимо сохранить имена, заданные по умолчанию.
Важно!
Хотя все дополнительные теги являются необязательными, они должны соответствовать транзитивной иерархии Site > Rack > Chassis > Node и должны быть правильно закрыты.
Помимо имени, в любой тег можно добавить дескрипторы свободной формы Location="..."
и Description="..."
дескрипторы.
Пример: два сайта, на каждом по одной стойке
<Topology>
<Site Name="SEA" Location="Contoso HQ, 123 Example St, Room 4010, Seattle">
<Rack Name="A01" Location="Aisle A, Rack 01">
<Node Name="Server01" Location="Rack Unit 33" />
<Node Name="Server02" Location="Rack Unit 35" />
<Node Name="Server03" Location="Rack Unit 37" />
</Rack>
</Site>
<Site Name="NYC" Location="Regional Datacenter, 456 Example Ave, New York City">
<Rack Name="B07" Location="Aisle B, Rack 07">
<Node Name="Server04" Location="Rack Unit 20" />
<Node Name="Server05" Location="Rack Unit 22" />
<Node Name="Server06" Location="Rack Unit 24" />
</Rack>
</Site>
</Topology>
Пример: два колонок-сервера корпуса
<Topology>
<Rack Name="A01" Location="Contoso HQ, Room 4010, Aisle A, Rack 01">
<Chassis Name="Chassis01" Location="Rack Unit 2 (Upper)" >
<Node Name="Server01" Location="Left" />
<Node Name="Server02" Location="Right" />
</Chassis>
<Chassis Name="Chassis02" Location="Rack Unit 6 (Lower)" >
<Node Name="Server03" Location="Left" />
<Node Name="Server04" Location="Right" />
</Chassis>
</Rack>
</Topology>
Чтобы задать новую спецификацию домена сбоя, сохраните XML-код и выполните следующую команду в PowerShell.
$xml = Get-Content <Path> | Out-String
Set-ClusterFaultDomainXML -XML $xml
В этом руководстве представлено только два примера, но <Site>
теги , <Rack>
, <Chassis>
и <Node>
можно смешивать и сопоставлять несколькими способами, чтобы отразить физическую топологию развертывания, независимо от того, что может быть. Мы надеемся, что приведенные примеры иллюстрируют гибкость этих тегов и значение произвольных дескрипторов расположения для их однозначного определения.
Необязательно: метаданные расположения и описания
Вы можете указать необязательные метаданные расположения или описания для любого домена сбоя. Эти сведения будут включены в оповещения службы работоспособности, касающиеся оборудования.
В этом коротком видео показано, как добавлять дескрипторы расположения в домены сбоя.