フォールト ドメインの認識Fault domain awareness

適用対象:Windows Server 2019 と Windows Server 2016Applies to: Windows Server 2019 and Windows Server 2016

フェールオーバー クラスタリングでは、複数のサーバーが連携して高可用性 (言い換えれば、ノードのフォールト トレランス) を実現できます。Failover Clustering enables multiple servers to work together to provide high availability – or put another way, to provide node fault tolerance. 今日の企業が、インフラストラクチャからさらに高い可用性を要求します。But today's businesses demand ever-greater availability from their infrastructure. クラウドのようなアップタイムを達成するには、シャーシの障害、ラックの停止、自然災害など、発生する可能性が極めて低い事態であっても対策を講じる必要があります。To achieve cloud-like uptime, even highly unlikely occurrences such as chassis failures, rack outages, or natural disasters must be protected against. その理由はシャーシ、ラック、およびサイトのフォールト トレランスも導入された Windows Server 2016 のフェールオーバー クラスタ リングします。That's why Failover Clustering in Windows Server 2016 introduced chassis, rack, and site fault tolerance as well.

フォールト ドメインの認識Fault domain awareness

障害ドメインとフォールト トレランスは、密接に関連する概念です。Fault domains and fault tolerance are closely related concepts. 障害ドメインとは、単一障害点を共有するハードウェア コンポーネントのセットです。A fault domain is a set of hardware components that share a single point of failure. 特定のレベルのフォールト トレランスを実現するには、そのレベルに複数の障害ドメインが必要です。To be fault tolerant to a certain level, you need multiple fault domains at that level. たとえば、ラックのフォールト トレランスを実現するには、サーバーとデータが複数のラックに分散されている必要があります。For example, to be rack fault tolerant, your servers and your data must be distributed across multiple racks.

この短いビデオでは、Windows Server 2016 での障害ドメインの概要を示します。This short video presents an overview of fault domains in Windows Server 2016:
Windows Server 2016 での障害ドメインの概要を見るには、この画像をクリックします。Click this image to watch an overview of fault domains in Windows Server 2016

Windows Server 2019 の障害ドメインの認識Fault domain awareness in Windows Server 2019

障害ドメインの認識は Windows Server 2019 で使用できますが、既定で無効にし、Windows レジストリを使用して有効にする必要があります。Fault domain awareness is available in Windows Server 2019 but it's disabled by default and must be enabled through the Windows Registry.

Windows Server 2019 の障害ドメインの認識を有効にするには、Windows レジストリに移動し、(Get クラスター) を設定します。レジストリ キーを AutoAssignNodeSite を 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

Windows 2019 の障害ドメインの認識を無効にするには、Windows レジストリに移動し、(Get クラスター) を設定します。AutoAssignNodeSite のレジストリ キーを 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

利点Benefits

  • 記憶域スペースを含む記憶域スペース ダイレクトでは、障害ドメインを使用して、データの安全性を最大化します。Storage Spaces, including Storage Spaces Direct, uses fault domains to maximize data safety.
    記憶域スペースの回復性は、分散型の、ソフトウェアで定義される RAID と概念的に似ています。Resiliency in Storage Spaces is conceptually like distributed, software-defined RAID. すべてのデータの複数コピーは、同期されて保持されます。ハードウェアで障害が発生して、1 つのコピーが失われると、回復性を復元するために、他のコピーが再びコピーされます。Multiple copies of all data are kept in sync, and if hardware fails and one copy is lost, others are recopied to restore resiliency. 回復性を最適化するには、別個の障害ドメイン内にコピーが保持される必要があります。To achieve the best possible resiliency, copies should be kept in separate fault domains.

  • ヘルス サービス使用の障害より役立つアラートを提供するドメイン。The Health Service uses fault domains to provide more helpful alerts.
    各障害ドメインを場所のメタデータと関連付けることができます。これは後続のアラートに自動的に含まれるようになります。Each fault domain can be associated with location metadata, which will automatically be included in any subsequent alerts. これらの記述子は、運用や保守の担当者の役に立ちます。これらの記述子でハードウェアを明確にすることにより、エラーを減らすこともできます。These descriptors can assist operations or maintenance personnel and reduce errors by disambiguating hardware.

  • ストレッチ クラスタ リング、ストレージ関連の障害ドメインが使用されます。Stretch clustering uses fault domains for storage affinity. ストレッチ クラスタリングにより、遠隔地のサーバーを一般的なクラスターに参加させることができます。Stretch clustering allows faraway servers to join a common cluster. 最高のパフォーマンスのためには、記憶域を提供するサーバーの近くにあるサーバーでアプリケーションまたは仮想マシンを実行する必要があります。For the best performance, applications or virtual machines should be run on servers that are nearby to those providing their storage. 障害ドメインの認識は、この記憶域のアフィニティを使用できます。Fault domain awareness enables this storage affinity.

障害ドメインのレベルLevels of fault domains

障害ドメインには、サイト、ラック、シャーシ、ノードという 4 つの標準的なレベルがあります。There are four canonical levels of fault domains - site, rack, chassis, and node. ノードは自動的に検出されます。追加の各レベルはオプションです。Nodes are discovered automatically; each additional level is optional. たとえば、展開でブレード サーバーを使用しない場合、シャーシ レベルは合理的でない可能性があります。For example, if your deployment does not use blade servers, the chassis level may not make sense for you.

障害ドメインのさまざまなレベルの図

使用方法Usage

PowerShell または XML マークアップを使用すると、障害ドメインを指定します。You can use PowerShell or XML markup to specify fault domains. どちらの方法も同等であり、完全な機能が提供されます。Both approaches are equivalent and provide full functionality.

重要

障害ドメインを指定してから、可能であれば、記憶域スペース ダイレクトを有効にします。Specify fault domains before enabling Storage Spaces Direct, if possible. これにより、シャーシまたはラックのフォールト トレランスのためにプール、階層、および設定 (回復性や列の数など) を準備する自動構成が可能になります。This enables the automatic configuration to prepare the pool, tiers, and settings like resiliency and column count, for chassis or rack fault tolerance. プールとボリュームが作成された後に、障害ドメイン トポロジの変化に応じてデータが遡及的に移動することはありません。Once the pool and volumes have been created, data will not retroactively move in response to changes to the fault domain topology. 記憶域スペース ダイレクトを有効にした後に、シャーシ間やラック間でノードを移動するには、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.

PowerShell を使用した障害ドメインの定義Defining fault domains with PowerShell

Windows Server 2016 には、障害ドメインを使用する次のコマンドレットが導入されています。Windows Server 2016 introduces the following cmdlets to work with fault domains:

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

このショート ビデオでは、これらのコマンドレットの使用法を説明します。This short video demonstrates the usage of these cmdlets. クラスターの障害ドメインのコマンドレットの使用状況に関する短いビデオを視聴するには、この画像をクリックします。Click this image to watch a short video on the usage of the Cluster Fault Domain cmdlets

使用Get-ClusterFaultDomainを現在の障害ドメイン トポロジを確認します。Use Get-ClusterFaultDomain to see the current fault domain topology. これにより、クラスター内のすべてのノードと、作成したシャーシ、ラック、またはサイトが一覧表示されます。This will list all nodes in the cluster, plus any chassis, racks, or sites you have created. -Type-Name といったパラメーターを使用して、フィルター処理できます。ただし、これらのパラメーターは必須ではありません。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"

使用New-ClusterFaultDomain新しいシャーシ、ラック、またはサイトを作成します。Use New-ClusterFaultDomain to create new chassis, racks, or sites. -Type-Nameパラメーターが必要です。The -Type and -Name parameters are required. 使用可能な値を-TypeChassisRack、およびSiteします。The possible values for -Type are Chassis, Rack, and Site. -Name任意の文字列を使用することができます。The -Name can be any string. (のNode名前、種類の障害ドメインはセットとして、実際のノード名を自動的にする必要があります)。(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"

重要

Windows Server では、ことはできず、作成するすべての障害ドメインが実際の物理的な世界では何もに対応していることを確認しません。Windows Server cannot and does not verify that any fault domains you create correspond to anything in the real, physical world. (当然のことが理解することが重要)。現実の世界で 1 つのラックにすべてのノードが含まれる場合に、ソフトウェアで 2 つの -Type Rack 障害ドメインを作成しても、ラックのフォールト トレランスが魔法のように実現することはありません。(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. 上記のコマンドレットを使用して、ハードウェアの実際の配置と一致するトポロジを作成する必要があります。You are responsible for ensuring the topology you create using these cmdlets matches the actual arrangement of your hardware.

使用Set-ClusterFaultDomain別に 1 つの障害ドメインを移動します。Use Set-ClusterFaultDomain to move one fault domain into another. "親" と "子" という用語は、この入れ子の関係を説明するのに一般的に使用されます。The terms "parent" and "child" are commonly used to describe this nesting relationship. -Name-Parentパラメーターが必要です。The -Name and -Parent parameters are required. -Name、移動する障害ドメインの名前を指定-Parent、変換先の名前を指定します。In -Name, provide the name of the fault domain that is moving; in -Parent, provide the name of the destination. 複数の障害ドメインを一度に移動するには、それらの名前を列記します。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"

重要

障害ドメインが移動するときは、その子も一緒に移動します。When fault domains move, their children move with them. 上記の例で、Rack A が server01.contoso.com の親である場合、server01.contoso.com は、現実の世界と同様に、親 (Rack A) の移動先 (Shanghai サイト) にすでに存在するため、別途 Shanghai サイトに移動する必要はありません。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.

出力に親子関係を確認できますGet-ClusterFaultDomainParentNameChildrenNames列。You can see parent-child relationships in the output of Get-ClusterFaultDomain, in the ParentName and ChildrenNames columns.

使用することもSet-ClusterFaultDomain障害ドメインの他の特定のプロパティを変更します。You can also use Set-ClusterFaultDomain to modify certain other properties of fault domains. たとえば、行うことができます省略可能な-Locationまたは-Description障害ドメインのメタデータ。For example, you can provide optional -Location or -Description metadata for any fault domain. この情報を指定すると、ヘルス サービスからのハードウェアのアラートにこの情報が含まれるようになります。If provided, this information will be included in hardware alerting from the Health Service. 使用して、障害ドメインの名前を変更することもできます、-NewNameパラメーター。You can also rename fault domains using the -NewName parameter. 名前を変更しないNode障害ドメインを入力します。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"

使用Remove-ClusterFaultDomainシャーシ、ラック、または作成したサイトを削除します。Use Remove-ClusterFaultDomain to remove chassis, racks, or sites you have created. -Name パラメーターは必須です。The -Name parameter is required. できませんの子を含む障害ドメインの削除 – 最初に、削除する子かを使用して外部に移動Set-ClusterFaultDomainします。You cannot remove a fault domain that contains children – first, either remove the children, or move them outside using Set-ClusterFaultDomain. その他のすべての障害ドメインの外部での障害ドメインを移動するに次のように設定します。 その-Parentを空の文字列 ("")。To move a fault domain outside of all other fault domains, set its -Parent to the empty string (""). 削除することはできませんNode障害ドメインを入力します。You cannot remove Node type fault domains. 複数の障害ドメインを一度に削除するには、それらの名前を列記します。To remove multiple fault domains at once, list their names.

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

XML マークアップによる障害ドメインの定義Defining fault domains with XML markup

XML を基にした構文を使用して、障害ドメインを指定できます。Fault domains can be specified using an XML-inspired syntax. Visual Studio Code ( こちら から無料で入手できます) やメモ帳など、使い慣れたテキスト エディターを使用して、保存して再利用できる XML ドキュメントを作成することをお勧めします。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.

このショート ビデオでは、障害ドメインを指定するための XML マークアップの使用法を説明します。This short video demonstrates the usage of XML Markup to specify fault domains.

XML を使用して、障害ドメインを指定する方法に関する簡単なビデオを視聴するには、この画像をクリックします。Click this image to watch a short video on how to use XML to specify fault domains

PowerShell では、次のコマンドレットを実行します:Get-ClusterFaultDomainXMLします。In PowerShell, run the following cmdlet: Get-ClusterFaultDomainXML. これにより、クラスターの現在の障害ドメインの詳細が XML として返されます。This returns the current fault domain specification for the cluster, as XML. これを反映してすべて検出<Node>を開いたり閉じたりでラップされた、<Topology>タグ。This reflects every discovered <Node>, wrapped in opening and closing <Topology> tags.

次のコマンドレットを実行して、この出力をファイルに保存します。Run the following to save this output to a file.

Get-ClusterFaultDomainXML | Out-File <Path>  

ファイルを開くし、追加<Site><Rack>、および<Chassis>サイト、ラック、シャーシにわたってこれらのノードを分散する方法を指定するタグ。Open the file, and add <Site>, <Rack>, and <Chassis> tags to specify how these nodes are distributed across sites, racks, and chassis. すべてのタグは、一意の Name で識別される必要があります。Every tag must be identified by a unique Name. ノードについては、既定で設定された名前をそのまま保持する必要があります。For nodes, you must keep the node's name as populated by default.

重要

すべての追加タグはオプションですが、推移的な Site > Rack > Chassis > Node の階層に従って、適切に閉じられる必要があります。While all additional tags are optional, they must adhere to the transitive Site > Rack > Chassis > Node hierarchy, and must be properly closed.
自由形式の名前だけでなくLocation="..."Description="..."記述子は、任意のタグに追加できます。In addition to name, freeform Location="..." and Description="..." descriptors can be added to any tag.

以下に例を示します。2 つのサイトでは、1 つのラックExample: 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> 

例: 2 つのシャーシ、ブレード サーバーExample: 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>  

新しい障害ドメインの詳細を設定するには、XML を保存し、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

このガイドは 2 つの例を表示しますが、 <Site><Rack><Chassis>、および<Node>タグの混在し、展開の物理トポロジを反映するようにその他多くの方法で照合できますは。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. 上記の例は、これらのタグの柔軟性と、タグを明確にするための自由形式の Location 記述子の価値を説明しています。We hope these examples illustrate the flexibility of these tags and the value of freeform location descriptors to disambiguate them.

省略可能: メタデータの場所および説明Optional: Location and description metadata

オプションを指定する場所または説明障害ドメインのメタデータ。You can provide optional Location or Description metadata for any fault domain. この情報を指定すると、ヘルス サービスからのハードウェアのアラートにこの情報が含まれるようになります。If provided, this information will be included in hardware alerting from the Health Service. この短いビデオでは、このような記述子の追加の値を示します。This short video demonstrates the value of adding such descriptors.

クリックすると、障害ドメインに location 記述子を追加する値を示す短いビデオを参照してください。Click to see a short video demonstrating the value of adding location descriptors to fault domains

関連項目See Also