フォールト ドメインの認識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:
Click イメージをクリックして、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 レジストリに移動し、(クラスターの取得) を設定します。自動割り当てのレジストリキーを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 レジストリに移動し、(クラスターの取得) を設定します。レジストリキーが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 イメージをクリックすると、クラスター障害ドメインのコマンドレットの使用に関する短いビデオが見ていきます。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"

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

1つの障害ドメインを別の障害ドメインに移動するには、Set-ClusterFaultDomain を使用します。Use Set-ClusterFaultDomain to move one fault domain into another. "親" と "子" という用語は、この入れ子の関係を説明するのに一般的に使用されます。The terms "parent" and "child" are commonly used to describe this nesting relationship. @No__t-0 および -Parent パラメーターが必要です。The -Name and -Parent parameters are required. @No__t-0 で、移動する障害ドメインの名前を指定します。-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.

@No__t-0 の出力では、ParentNameChildrenNames の列に親子関係が表示されます。You can see parent-child relationships in the output of Get-ClusterFaultDomain, in the ParentName and ChildrenNames columns.

@No__t-0 を使用して、障害ドメインの他の特定のプロパティを変更することもできます。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. @No__t-0 パラメーターを使用して、障害ドメインの名前を変更することもできます。You can also rename fault domains using the -NewName parameter. @No__t-0 の種類の障害ドメインの名前を変更しないでください。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"

@No__t-0 を使用して、作成したシャーシ、ラック、またはサイトを削除します。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 (""). @No__t 0 の種類の障害ドメインを削除することはできません。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.

Click 画像をクリックして、XML を使用して障害ドメインを指定する方法に関する短いビデオをご覧くださいClick this image to watch a short video on how to use XML to specify fault domains

PowerShell で、次のコマンドレットを実行します: Get-ClusterFaultDomainXMLIn 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.

 クリックすると、障害ドメインに位置記述子を追加するための短いビデオが表示されます。Click to see a short video demonstrating the value of adding location descriptors to fault domains

関連項目See Also