Reconhecimento de domínio de falhaFault domain awareness

Aplica-se a: Windows Server 2019 e Windows Server 2016Applies to: Windows Server 2019 and Windows Server 2016

Clustering de failover permite que vários servidores funcionem juntos para fornecer alta disponibilidade ou, em outras palavras, para fornecer tolerância a falhas de nó.Failover Clustering enables multiple servers to work together to provide high availability – or put another way, to provide node fault tolerance. Mas as empresas de hoje exigem disponibilidade cada vez maior de suas infraestrutura.But today's businesses demand ever-greater availability from their infrastructure. Para conseguir um tempo de atividade parecido com o da nuvem, é necessário se proteger até mesmo de ocorrências altamente improváveis como desastres naturais, interrupções de rack ou falhas de chassi.To achieve cloud-like uptime, even highly unlikely occurrences such as chassis failures, rack outages, or natural disasters must be protected against. É por isso que o Clustering de Failover no Windows Server 2016 introduziu o chassi, rack e site a tolerância a falhas também.That's why Failover Clustering in Windows Server 2016 introduced chassis, rack, and site fault tolerance as well.

Reconhecimento de domínio de falhaFault domain awareness

Domínios de falha e tolerância a falhas são conceitos bem próximos.Fault domains and fault tolerance are closely related concepts. Um domínio de falha é um conjunto de componentes de hardware que compartilham um único ponto de falha.A fault domain is a set of hardware components that share a single point of failure. Para ser tolerante a falhas em um determinado nível, você precisa de vários domínios de falha nesse nível.To be fault tolerant to a certain level, you need multiple fault domains at that level. Por exemplo, para ser rack tolerante a falhas do rack, seus servidores e seus dados devem ser distribuídos entre vários racks.For example, to be rack fault tolerant, your servers and your data must be distributed across multiple racks.

Este breve vídeo apresenta uma visão geral de domínios de falha no Windows Server 2016:This short video presents an overview of fault domains in Windows Server 2016:
Clique nessa imagem para assistir a uma visão geral de domínios de falha no Windows Server 2016Click this image to watch an overview of fault domains in Windows Server 2016

Reconhecimento de domínio de falha no Windows Server 2019Fault domain awareness in Windows Server 2019

Reconhecimento de domínio de falha está disponível no Windows Server 2019, mas é desabilitado por padrão e deve ser habilitado por meio do registro do Windows.Fault domain awareness is available in Windows Server 2019 but it's disabled by default and must be enabled through the Windows Registry.

Para habilitar o reconhecimento de domínio de falha no Windows Server 2019, vá para o registro do Windows e definir o (Get-Cluster). Chave do registro AutoAssignNodeSite como 1.To enable fault domain awareness in Windows Server 2019, go to the Windows Registry and set the (Get-Cluster).AutoAssignNodeSite registry key to 1.

    (Get-Cluster).AutoAssignNodeSite=1

Para desabilitar o reconhecimento de domínio de falha no Windows de 2019, vá para o registro do Windows e defina o (Get-Cluster). Chave do registro AutoAssignNodeSite como 0.To disable fault domain awareness in Windows 2019, go to the Windows Registry and set the (Get-Cluster).AutoAssignNodeSite registry key to 0.

    (Get-Cluster).AutoAssignNodeSite=0

BenefíciosBenefits

  • Espaços de armazenamento, incluindo espaços de armazenamento diretos, usam domínios de falha para maximizar a segurança dos dados.Storage Spaces, including Storage Spaces Direct, uses fault domains to maximize data safety.
    A resiliência nos Espaços de armazenamento é, conceitualmente, parecida com RAID distribuída e definida pelo software.Resiliency in Storage Spaces is conceptually like distributed, software-defined RAID. Várias cópias de todos os dados são mantidas em sincronia, e se o hardware falhar e uma cópia for perdida, outros são copiados novamente para restaurar a resiliência.Multiple copies of all data are kept in sync, and if hardware fails and one copy is lost, others are recopied to restore resiliency. Para obter a máxima resiliência possível, as cópias devem ser mantidas em domínios de falha separados.To achieve the best possible resiliency, copies should be kept in separate fault domains.

  • O serviço de integridade usa domínios para fornecer alertas mais úteis de falha.The Health Service uses fault domains to provide more helpful alerts.
    Cada domínio de falha pode ser associado aos metadados de local, que serão incluído automaticamente em todos os alertas subsequentes.Each fault domain can be associated with location metadata, which will automatically be included in any subsequent alerts. Esses descritores podem ajudar a equipe de manutenção ou de operações e reduzir os erros por desambiguação de hardware.These descriptors can assist operations or maintenance personnel and reduce errors by disambiguating hardware.

  • O cluster estendido usa domínios de falha para afinidade de armazenamento.Stretch clustering uses fault domains for storage affinity. O cluster estendido permite que servidores distantes ingressem em um cluster comum.Stretch clustering allows faraway servers to join a common cluster. Para obter o melhor desempenho, os aplicativos ou máquinas virtuais devem ser executadas em servidores que estão próximos àqueles que fornecem seu armazenamento.For the best performance, applications or virtual machines should be run on servers that are nearby to those providing their storage. Reconhecimento de domínio de falha permite que a afinidade de armazenamento.Fault domain awareness enables this storage affinity.

Níveis de domínios de falhaLevels of fault domains

Há quatro níveis canônicos de domínios de falha - site, rack, chassi e nó.There are four canonical levels of fault domains - site, rack, chassis, and node. Os nós são descobertos automaticamente; cada nível adicional é opcional.Nodes are discovered automatically; each additional level is optional. Por exemplo, se sua implantação não usar servidores blade, talvez o nível de chassi não faça sentido para você.For example, if your deployment does not use blade servers, the chassis level may not make sense for you.

Diagrama dos diferentes níveis de domínios de falha

UsoUsage

Você pode usar a marcação XML ou do PowerShell para especificar os domínios de falha.You can use PowerShell or XML markup to specify fault domains. Ambas as abordagens são equivalentes e fornecem a funcionalidade completa.Both approaches are equivalent and provide full functionality.

Importante

Especifique os domínios de falha antes de habilitar Espaços de Armazenamento Diretos, se for possível.Specify fault domains before enabling Storage Spaces Direct, if possible. Isso permite que a configuração automática prepare o pool, as camadas e as configurações para resiliência e número de colunas, para tolerância a falhas de chassi ou rack.This enables the automatic configuration to prepare the pool, tiers, and settings like resiliency and column count, for chassis or rack fault tolerance. Após a criação do pool e dos volumes, os dados não se movimentarão de retroativa em resposta às alterações na topologia do domínio de falha.Once the pool and volumes have been created, data will not retroactively move in response to changes to the fault domain topology. Para mover nós entre chassis ou racks depois de habilitar os Espaços de Armazenamento Diretos, você deve remover primeiro o nó e suas unidades do pool usando Remove-ClusterNode -CleanUpDisks.To move nodes between chassis or racks after enabling Storage Spaces Direct, you should first evict the node and its drives from the pool using Remove-ClusterNode -CleanUpDisks.

Definir domínios de falha com o PowerShellDefining fault domains with PowerShell

Windows Server 2016 apresenta os seguintes cmdlets para trabalhar com domínios de falha:Windows Server 2016 introduces the following cmdlets to work with fault domains:

  • Get-ClusterFaultDomain
  • Set-ClusterFaultDomain
  • New-ClusterFaultDomain
  • Remove-ClusterFaultDomain

Este breve vídeo demonstra o uso desses cmdlets.This short video demonstrates the usage of these cmdlets. Clique nessa imagem para assistir a um vídeo curto sobre o uso dos cmdlets do domínio de falha do ClusterClick this image to watch a short video on the usage of the Cluster Fault Domain cmdlets

Use Get-ClusterFaultDomain para ver a topologia de domínio de falha atual.Use Get-ClusterFaultDomain to see the current fault domain topology. Isso listará todos os nós no cluster, além de qualquer chassi, rack ou site que você criou.This will list all nodes in the cluster, plus any chassis, racks, or sites you have created. Você pode filtrar usando parâmetros como -Type ou -Name, mas isso não é obrigatório.You can filter using parameters like -Type or -Name, but these are not required.

Get-ClusterFaultDomain
Get-ClusterFaultDomain -Type Rack
Get-ClusterFaultDomain -Name "server01.contoso.com"

Use New-ClusterFaultDomain para criar novos chassis, racks ou sites.Use New-ClusterFaultDomain to create new chassis, racks, or sites. O -Type e -Name parâmetros são obrigatórios.The -Type and -Name parameters are required. Os valores possíveis para -Type estão Chassis, Rack, e Site.The possible values for -Type are Chassis, Rack, and Site. O -Name pode ser qualquer cadeia de caracteres.The -Name can be any string. (Para Node domínios de falha de tipo, o nome devem ser o nome real do nó, conforme definido automaticamente).(For Node type fault domains, the name must be the actual node name, as set automatically).

New-ClusterFaultDomain -Type Chassis -Name "Chassis 007"
New-ClusterFaultDomain -Type Rack -Name "Rack A"
New-ClusterFaultDomain -Type Site -Name "Shanghai"

Importante

Windows Server não pode e não verifica que os domínios de falha, que você cria correspondem a qualquer coisa do mundo real, físico.Windows Server cannot and does not verify that any fault domains you create correspond to anything in the real, physical world. (Isso pode parecer óbvio, mas é importante entender). Se, no mundo físico, seus nós estão todos em um rack, a criação de dois domínios de falha -Type Rack no software não fornece tolerância a falhas de rack como por mágica.(This may sound obvious, but it's important to understand.) If, in the physical world, your nodes are all in one rack, then creating two -Type Rack fault domains in software does not magically provide rack fault tolerance. Você é responsável por garantir a topologia criada por você usando esses cmdlets corresponda à organização real de seu hardware.You are responsible for ensuring the topology you create using these cmdlets matches the actual arrangement of your hardware.

Use Set-ClusterFaultDomain para mover um domínio de falha para outro.Use Set-ClusterFaultDomain to move one fault domain into another. Os termos "parent" (pai) e "child" (filho) são usados normalmente para descrever essa relação de aninhamento.The terms "parent" and "child" are commonly used to describe this nesting relationship. O -Name e -Parent parâmetros são obrigatórios.The -Name and -Parent parameters are required. Na -Name, forneça o nome do domínio de falha que está sendo movimentado; em -Parent, forneça o nome do destino.In -Name, provide the name of the fault domain that is moving; in -Parent, provide the name of the destination. Para mover vários domínios de falha ao mesmo tempo, liste seus nomes.To move multiple fault domains at once, list their names.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent "Rack A"
Set-ClusterFaultDomain -Name "Rack A", "Rack B", "Rack C", "Rack D" -Parent "Shanghai"

Importante

Ao mover domínios de falha, seus filhos os acompanham.When fault domains move, their children move with them. No exemplo acima, se um Rack A é o pai do server01.contoso.com, o último não precisa ser movido separadamente para o site Xangai – ele já existirá em virtude de seu pai, assim como no mundo físico.In the above example, if Rack A is the parent of server01.contoso.com, the latter does not separately need to be moved to the Shanghai site – it is already there by virtue of its parent being there, just like in the physical world.

Você pode ver as relações pai-filho na saída do Get-ClusterFaultDomain, no ParentName e ChildrenNames colunas.You can see parent-child relationships in the output of Get-ClusterFaultDomain, in the ParentName and ChildrenNames columns.

Você também pode usar Set-ClusterFaultDomain para modificar outras propriedades de domínios de falha.You can also use Set-ClusterFaultDomain to modify certain other properties of fault domains. Por exemplo, você pode fornecer opcional -Location ou -Description metadados para qualquer domínio de falha.For example, you can provide optional -Location or -Description metadata for any fault domain. Se forem fornecidas, essas informações serão incluídas no alerta de hardware do Serviço de Integridade.If provided, this information will be included in hardware alerting from the Health Service. Você também pode renomear domínios de falha usando o -NewName parâmetro.You can also rename fault domains using the -NewName parameter. Não renomeie Node digite domínios de falha.Do not rename Node type fault domains.

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"

Use Remove-ClusterFaultDomain para remover o chassi, rack ou site que você criou.Use Remove-ClusterFaultDomain to remove chassis, racks, or sites you have created. O parâmetro -Name é necessário.The -Name parameter is required. Você não pode remover um domínio de falha que contém filhos – primeiro, remova os filhos ou mova-os para fora usando Set-ClusterFaultDomain.You cannot remove a fault domain that contains children – first, either remove the children, or move them outside using Set-ClusterFaultDomain. Para mover um domínio de falha fora de todos os outros domínios de falha, defina seu -Parent na cadeia de caracteres vazia ("").To move a fault domain outside of all other fault domains, set its -Parent to the empty string (""). Não é possível remover Node digite domínios de falha.You cannot remove Node type fault domains. Para remover vários domínios de falha ao mesmo tempo, liste seus nomes.To remove multiple fault domains at once, list their names.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent ""
Remove-ClusterFaultDomain -Name "Rack A"

Definir domínios de falha com marcação XMLDefining fault domains with XML markup

Os domínios de falha podem ser especificados usando uma sintaxe inspirada em XML.Fault domains can be specified using an XML-inspired syntax. Recomendamos o uso de seu editor de texto favorito, como o Visual Studio Code (disponível gratuitamente aqui ) ou o Bloco de Notas, para criar um documento XML que você pode salvar e reutilizar.We recommend using your favorite text editor, such as Visual Studio Code (available for free here) or Notepad, to create an XML document which you can save and reuse.

Este breve vídeo demonstra o uso de Marcação XML para especificar os domínios de falha.This short video demonstrates the usage of XML Markup to specify fault domains.

Clique nessa imagem para assistir a um breve vídeo sobre como usar XML para especificar os domínios de falhaClick this image to watch a short video on how to use XML to specify fault domains

No PowerShell, execute o seguinte cmdlet: Get-ClusterFaultDomainXML.In PowerShell, run the following cmdlet: Get-ClusterFaultDomainXML. Isso retorna a especificação de domínio de falha atual para o cluster, como XML.This returns the current fault domain specification for the cluster, as XML. Isso reflete todo descoberto <Node>encapsulada de abertura e fechamento <Topology> marcas.This reflects every discovered <Node>, wrapped in opening and closing <Topology> tags.

Execute o seguinte para salvar essa saída em um arquivo.Run the following to save this output to a file.

Get-ClusterFaultDomainXML | Out-File <Path>  

Abra o arquivo e adicione <Site>, <Rack>, e <Chassis> marcas para especificar como esses nós são distribuídos entre sites, racks e chassi.Open the file, and add <Site>, <Rack>, and <Chassis> tags to specify how these nodes are distributed across sites, racks, and chassis. Cada marca deve ser identificada por um único Nome.Every tag must be identified by a unique Name. Para os nós, você deve manter o nome padrão do nó.For nodes, you must keep the node's name as populated by default.

Importante

Embora todas as marcas adicionais sejam opcionais, elas devem aderir à hierarquia temporária de Site > Rack > Chassi > Nó, e devem ser fechadas corretamente.While all additional tags are optional, they must adhere to the transitive Site > Rack > Chassis > Node hierarchy, and must be properly closed.
Além do nome, de forma livre Location="..." e Description="..." descritores podem ser adicionados a qualquer marca.In addition to name, freeform Location="..." and Description="..." descriptors can be added to any tag.

Exemplo: Dois sites, um rackExample: Two sites, one rack each

<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> 

Exemplo: dois chassis, servidores bladeExample: two chassis, blade servers

<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>  

Para definir a nova especificação de domínio de falha, salve o XML e execute o seguinte no PowerShell.To set the new fault domain specification, save your XML and run the following in PowerShell.

$xml = Get-Content <Path> | Out-String  
Set-ClusterFaultDomainXML -XML $xml

Este guia apresenta apenas dois exemplos, mas o <Site>, <Rack>, <Chassis>, e <Node> marcas podem ser misturadas e combinadas de várias maneiras para refletir a topologia física de sua implantação, seja ele qual for.This guide presents just two examples, but the <Site>, <Rack>, <Chassis>, and <Node> tags can be mixed and matched in many additional ways to reflect the physical topology of your deployment, whatever that may be. Esperamos que esses exemplos ilustrem a flexibilidade dessas marcas e o valor de descritores de local de forma livre para resolver a ambiguidade entre elas.We hope these examples illustrate the flexibility of these tags and the value of freeform location descriptors to disambiguate them.

Opcional: Local e uma descrição de metadadosOptional: Location and description metadata

Você pode fornecer opcional local ou descrição metadados para qualquer domínio de falha.You can provide optional Location or Description metadata for any fault domain. Se forem fornecidas, essas informações serão incluídas no alerta de hardware do Serviço de Integridade.If provided, this information will be included in hardware alerting from the Health Service. Este breve vídeo demonstra a importância de adicionar esses descritores.This short video demonstrates the value of adding such descriptors.

Clique para ver um breve vídeo que demonstra a importância de adicionar descritores de local em domínios de falhaClick to see a short video demonstrating the value of adding location descriptors to fault domains

Consulte tambémSee Also