Windows HLK で記憶域スペース ダイレクト (S2D) のクラスター テストを実行
概要
このドキュメントには、Windows Hardware Lab Kit (HLK、旧 HCK) に含まれるテストを使用して、記憶域スペース ダイレクト (S2D) の基本的な機能と信頼性について特定のハードウェア構成を検証する方法に関するパートナーおよび OEM 向けの手順が含まれています。
重要
このドキュメントの手順は、テストのみを目的とするものです。 エンド ユーザーを対象にしたり、実稼働環境で使用するシステムを構成したりすることを目的としていません。
前提条件
- ハードウェア構成は S2D 要件を満たす必要があり、S2D に追加された新しいテストを含め、まずすべてのクラスター検証テストに合格している必要があります。
- 最新の Windows Server Technical Preview をサポートする最新の Windows HLK をダウンロード、インストール、構成する必要があります。 Windows HLK についての知識がある方にお勧めします。 Windows HLK に関する詳細をダウンロードするには、「Windows Hardware Lab Kit」を参照してください。
- まず、HLK コントローラー (HLKC) と HLK Studio をテスト サーバーにインストールします。 クラスター ノードへのインストールは避けます。 管理者は、このサーバーを使用してその他のマシンのテストを実行し、管理します。 HLKC を使用すると複数のクラスターを同時に管理できるため、別のクラスターですでに構成された既存の HLKC を使用できます。
- 次に、HLK クライアントを次の場所にインストールします。
- 記憶域クラスター ノードとしての使用を目的とするすべてのサーバー (個別の S2D 要件でも説明されているノードの数は、少なくとも 4 つである必要があります) と
- テスト コントローラー (TC) として機能するクラスターに属さないサーバー。 この環境でテストが実行されます。
- テストに使用されるマシン (HLK コントローラーを含む) はすべて同じドメインに参加し、すべてのマシンに対する管理者特権を持つ共通のドメイン ユーザーを持つ必要があります。 このユーザーの資格情報は、テストを実行するためにテスト フレームワークに提供されます。 ユーザーのパスワードは、クリア テキストとして送信および保存できます。
- すべてのクラスター ノードでは、接続されているネットワーク インターフェイスで DHCP が有効になっている必要があります。DHCP は、接続されているネットワークで構成されている必要があります。
セットアップ
HLK を構成する
HLK のインストール方法の詳細な手順については、「HLK ユーザー ガイド」を参照してください。 すべてのマシンに HLK をインストールして構成した後、マシン プールとプロジェクトを次のとおり作成します。
- HLKC の HLK Studio で、使用するクラスター名など、後でクラスターを簡単に識別できる名前を持つ新しいマシン プールを作成します (このドキュメントでは「クラスター」 を使用します)。 TC とすべてのクラスター ノードをマシン プールに追加します。 マシンが [準備完了] 状態になっている必要 があります。
- HLK Studio を開き、[スタート] を選択して、[All Apps>Windows Kits>HLK Studio] を選択します。
- 右上隅 にある [構成] を選択します。
- $(Root) を右クリックして、[マシン プールの作成] を選択し、名前を指定します。 (このドキュメントでは、「クラスター」を使用します。)
- マシンを新しいプールに移動します。 HLK Studio では現在、複数選択がサポートされていないため、マシンを 1 つづつ移動する必要があります。
- プール内のすべてのマシンを選択したら、右クリックして [マシンの状態を>準備完了に変更する] を選択します。 マシンはまず初期化状態に変わります。
- マシンが [準備完了] 状態に達した状態であることを確認 します。 HLK Studio では、表示状態は自動的に更新されません。 数秒待ってから、[既定のマシン プール] を選択します。 クラスター マシン プールに戻り、マシンの状態を更新します。 すべてのマシンが準備完了状態ならば、引き続きプロジェクトを作成します。
- 同じ名前の新しいプロジェクトを作成します。
- [構成] ビューが表示 されている場合は、タイトルの [構成] の左側にある左矢印状の [戻る] をクリックしてメイン ビューに戻ります。
- [プロジェクト]タブで、[プロジェクトの作成] を選択します。
- プロジェクト名には「S2D」と指定します。 この名前をそのまま使用する必要はありませんが、この名前を使用すると、プロジェクトの識別が容易になります。
テストを実行するマシンを準備する
この手順では、必要なテスト バイナリとドライバーをクラスター ノードとテスト コントローラーにデプロイして、S2D テストを実行する準備をします。 実際の S2D テストを複数回実行する場合でも、このテスト ジョブを実行する必要があるのは、クラスターごとに 1 回のみです。 このジョブによってマシンが再起動されます。
重要
このテスト ジョブを実行する前に、テストに使用されるすべてのマシンでセキュア ブートと BitLocker の両方が無効になっていることを確認します。 テスト コントローラーに仮想マシンを使用している場合は、既定で有効になっている可能性があるため、セキュリティで保護されたブートと BitLocker を手動で無効にする必要がある場合があります。
HLK テストを実行するには、次の 2 つの方法があります。
S2D が構成されていないセットアップ (つまり、テストで S2D を構成する) では、次の手順を実行します。
- Run S2D – テスト用のマシンを準備します
- Run S2D – ストレージ クラスターをセットアップします
- Run S2D – 基本的な検証テスト
- Run S2D – ストレス テスト
既存の S2D クラスターの場合:
- 256 GB のボリューム (仮想ディスク) が 1 つプロビジョニングされている必要があります。このボリュームは、テストで使用されます。
- 2 ノード クラスターの場合は、クォーラム監視が必要です。
- Run S2D – テスト用のマシンを準備します
- Run S2D – 基本的な検証テスト
- Run S2D – ストレス テスト
HLK Studio で次を実行します。
[プロジェクト] タブで、以前に作成したプロジェクトをダブルクリックします (まだ選択されていない場合)。 プロジェクト名は、選択した後にビュー タイトルとして表示されます。
[選択] タブをクリックします。
クラスターとテスト コントローラーを含む、以前に作成したマシン プールを選択します。
左側 の [システム] を選択し、一覧に表示される最初のクラスター ノードを確認します。
1 つのノードのみが選択されていることを確認します。誤ってテスト コントローラーを選択しないように注意します。
選択したマシンを右クリックし、[機能の追加/変更] を選択しま。
ダイアログ ボックスが開いたら、[デバイス機能リスト] で System.Solutions.StorageSpacesDirect 機能を選択して、[OK] を選択します。
[ テスト ] タブで、テスト S2D - テスト用のマシンの準備を選択し、[ 選択したテストの実行] を選択します。
必要なパラメーターを指定します。
- ドメイン、ユーザー名、パスワードには、マシン プール内のすべてのマシンに対して管理者アクセス権限を持つドメイン ユーザーの適切な情報を入力します。
- [ロール] ドロップダウン リストでは、「PrimaryNode」 を選択する必要があります。 マシンの一覧で、[選択] タブで選択したノードがオンに設定されていることを確認します。 さらに:
- [ロール] ドロップダウン リストで「TestController」を選択して、マシンの一覧でテスト コントローラーを選択します。
- [ロール] ドロップダウン リストで「OtherNodes」選択して、クラスターの残りのノードを選択します。
- 続行する前に、すべてのマシンが選択されている必要があります。
[OK] を選択してジョブを実行します。 これでマシンの準備が整いました。
進行状況バーが HLK Studio ウィンドウの下部に表示されます。 プロセスが完了すると、テスト ジョブの [状態] 列 に緑色のチェック マークが表示されます。 その代わりに [状態] に赤色の「X」が表示されている場合、テスト ジョブは失敗しています。 詳細については、「トラブルシューティング」を参照してください。
このプロセスの所要時間は約 10 分です。 マシンの再起動に 5 分以上かかる場合は、さらに時間がかかる場合があります。
クラスター、記憶域プール、および仮想ディスクを作成する
テスト用にマシンを準備した後、関連するテストを実行する前に S2D も構成する必要があります。 次のジョブで、クラスターを作成し、S2D を有効にして、プールとスペースを構成します。
重要
このジョブは、既存のクラスター、記憶域プール、または仮想ディスクがすでに作成されていない場合にのみ成功します。 このジョブを実行する前に、まずすべての仮想ディスク、記憶域プール、およびクラスターの役割を削除します。 クラスター自体も削除します。 クラスターをすでに作成して、S2D を有効にし、プールとスペースを構成して検証している場合は、この手順をスキップしてテストの実行に進みます。
HLK Studio の [テスト] タブで、「S2D - 記憶域クラスターのセットアップ」のテストを選択して、[選択したテストの実行] を選択し、必要となるパラメーターと役割を指定します。
- パラメーター ClusterName に、作成するクラスター名を値として入力します。 (この後のテストでは、同じクラスター名を指定する必要があります。)
- 静的 IP アドレスがクラスターに割り当てられている場合は、[ClusterStaticIP] フィールドに IP アドレスを入力することもできます。 入力しない場合は、このパラメーターを空白のままにすると、 クラスター名にはアドレスが割り当てられます。
- 特に指示がない限り、その他のパラメーターは空白のままにします。
- [ロール] ドロップダウン リストでは、「PrimaryNode」 を選択する必要があります。 マシンの一覧で、[選択] タブで選択したノードがオンに設定されていることを確認します。 さらに:
- [ロール] ドロップダウン リストで「TestController」を選択して、マシンの一覧でテスト コントローラーを選択します。
- [ロール] ドロップダウン リストで「OtherNodes」選択して、マシンの一覧でクラスターの残りのノードを選択します。
- 続行する前に、すべてのマシンが選択されている必要があります。
[OK] を選択してジョブを実行します。 これによりクラスターが作成され、S2D が設定されます。
進行状況バーが HLK Studio ウィンドウの下部に表示されます。 プロセスが完了すると、テスト ジョブの [状態] 列 に緑色のチェック マークが表示されます。 その代わりに [状態] に赤色の「X」が表示されている場合、テスト ジョブは失敗しています。 詳細については、「トラブルシューティング」を参照してください。
このジョブの所要時間は約 15 分です。 マシンの再起動に 5 分以上かかる場合、またはディスクの数が多い場合は、さらに時間がかかる場合があります。
テストの実行
基本的な検証テスト (BVT) の実行
BVT では、次の 2 種類のテストを実行します。
- 1 つ目のテストでは、ランダム書き込み I/O を実行している間、ノード間で記憶域スペース ダイレクトにクラスター共有ボリューム (CV) が移動されます。 また、I/O が中断されず、CV が失敗しないという検証も実行されます。
- 2 番目の種類のテストは、クラスター サービスの停止、クラスター サービスの強制終了、ノードの削除、マシンの正常な再起動、マシンの正常な再起動で、ノードを停止します。 (各アクションはランダム ノードを対象とします)。また、ノード障害時に適切な CSV をターゲットとするランダム書き込み I/O を実行し、I/O が失敗しないことを検証します。
HLK でこれらのテストを実行する方法:
[テスト] タブで、「S2D - 基本的な検証テスト」のテストを選択して、[選択したテストの実行] を選択し、必要となるパラメーターを次のとおり指定します。
- ClusterName パラメーターにはクラスター名を入力します。 これは、以前にクラスターお設定で指定したものと同じ名前である必要があります。
- 特に指示がない限り、他のパラメーターを変更したり、入力したりすることは避けます。
- [ロール] ドロップダウン リストでは、「PrimaryNode」 を選択する必要があります。 その下のマシンの一覧で、[選択] タブで選択したノードがオンに設定されていることを確認します。 さらに:
- [ロール] ドロップダウン リストで「TestController」を選択して、マシンの一覧でテスト コントローラーを選択します。
- [ロール] ドロップダウン リストで「OtherNodes」選択して、クラスターの残りのノードを選択します。
- 続行する前に、すべてのマシンが選択されている必要があります。
[OK] を選択してジョブを開始します。 これにより、BVT が実行されます。
進行状況バーが HLK Studio ウィンドウの下部に表示されます。 プロセスが完了すると、テスト ジョブの [状態] 列 に緑色のチェック マークが表示されます。 その代わりに [状態] に赤色の「X」が表示されている場合、テスト ジョブは失敗しています。 詳細については、「トラブルシューティング」を参照してください。
通常、このジョブの実行には 30 から 60 分かかります。 プレビュー リリースの場合、BVT の予想パス レートは少なくとも 80% です。
ストレス テストの実行
ストレス テストでは、(クラスター サービスを停止または強制終了することにより) ノードの障害を繰り返しランダムに発生させます。 構成で許容される場合、複数のノードが失敗する可能性があります。 ノードの障害時、このテストでは、適切な CSV を対象とする複数のノードから複数の I/O ストリームを実行します。 (各ストリームは、読み取りデータ検証を使用して順次読み取り/ランダム読み取り/書き込みを実行します)。
このテストの実行方法:
HLK Studio の [テスト] タブで、「S2D - ストレス テスト」のテストを選択して、[選択したテストの実行] を選択し、必要となるパラメーターを次のとおり指定します。
- ClusterName パラメーターにはクラスター名を入力します。 これは、以前にクラスターお設定で指定したものと同じ名前である必要があります。
- 特に指示がない限り、他のパラメーターを変更したり、入力したりすることは避けます。
- [ロール] ドロップダウン リストでは、「PrimaryNode」 を選択する必要があります。 その下のマシンの一覧で、[選択] タブで選択したノードがオンに設定されていることを確認します。 さらに:
- [ロール] ドロップダウン リストで「TestController」を選択して、マシンの一覧でテスト コントローラーを選択します。
- [ロール] ドロップダウン リストで「OtherNodes」選択して、クラスターの残りのノードを選択します。
- 続行する前に、すべてのマシンが選択されている必要があります。
[OK] を選択してジョブを実行します。 これにより、ストレス テストが実行されます。
進行状況バーが HLK Studio ウィンドウの下部に表示されます。 プロセスが完了すると、テスト ジョブの [状態] 列 に緑色のチェック マークが表示されます。 その代わりに [状態] に赤色の「X」が表示されている場合、テスト ジョブは失敗しています。 詳細については、「トラブルシューティング」を参照してください。
プレビュー リリースの場合、ストレス テストの予想パス レートは少なくとも 60% です。 既定のパラメーターを使用した場合、このテスト ジョブの所要時間は、通常、45 分から 1 時間です。 ただし、既定のパラメーターで 1 回成功した後、TestRunTime に大きな値を指定して、より長い実行時間をでもう一度テストを実行することをお勧めします。 (これはコアの実行時間を秒単位で指定します。通常、テストのセットアップとクリーンアップのため、ジョブはこれより 15 分から 30 分長く実行されます)。このジョブは、最大 24 時間の実行時間をサポートします。
トラブルシューティング
ジョブまたはテストが失敗した場合、適切なログを確認して、失敗した理由を検出できます。 必要に応じて、調査に役立つ適切なユーザーにログを転送できます。 これらのドキュメントでは、それぞれのジョブの実行が結果として参照 されます。
テスト ログの取得
テストを実行したのと同じ S2D プロジェクトが開いている間に、HLK Studio で [結果] タブを選択します。
テスト名の左側にある三角形を選択して、トラブルシューティングを行うテストを展開します。
テストを複数回実行した場合は、複数の結果が表示されています。 各結果にはタイムスタンプが表示され、実行されたマシンが識別されています。 トラブルシューティングの結果を右クリックして、[追加のファイル>] [すべて表示] の順に選択します。 これにより、テスト ログと関連ログを含むウィンドウがエクスプローラーに開きます。
テスト ログのファイル名は「TST-」で始まります。テスト ジョブで複数のテスト タスクが実行されている場合は、複数のテスト ログ ファイルがある場合があります。 たとえば、BVT には、CSV の移動を実行するテスト タスクと、ストレージ スケール ユニット (SSU) の障害を実行するテスト タスクがある場合があります。 (直接接続ストレージ トポロジのため、各ノードとそのストレージは 1 つの SSU と見なされます)。バリエーション名は、ファイル名 (記憶域スペース ダイレクトのコード名である Calabria と共に) にあります。
複数のテスト ログ ファイルがある場合に失敗したタスクをすばやく確認するには、まず結果を展開してタスクを表示します。 その後、赤い "X" を表示するタスクを探すことができます。
以前の例では、タスクのアイコンには 、CSV による IO の移動の確認が失敗した (赤色の「X」のみ表示) と示されています。 また、以前の障害により SSU 障害のある IO の確認が実行されずにスキップされたことが示されています (曲線の矢印の上に赤色の X が表示)。
テキスト エディターでテスト ログ ファイルを開いた後、"SEV2" を検索して、テストが失敗したかどうか、そして失敗した場合はその理由を確認します。 次の例では、ラックの回復後にスペースが正常な状態になっていないことが確認できます。 このエラーの詳細については、「一般的な既知の問題」を参照してください。
1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST]スペース ID: 19CFCDFCC19EB54AAA780436B2B1D859 Pool ID: 5D12DF6A5D4DB444AA3407AFA5749578 フレンドリ名: TestSpace は手動接続? クラスター化されている? はい 回復性の種類: 2 プロビジョニングの種類: 2 コピーの数: 3 列の数: 1 フォールト トレランス: 2 健全性: 1 (警告) 状態: 11 (InService/再生成中) ノードに接続: RR1FSC2623N05-1 Visible on nodes: RR1FSC2623N05-1 RR1FSC2623N05-2 RR1FSC2623N28-1 RR1FSC2623N28-2 このスペースで使用されるドライブ: [base\cluster\testsrc\common\storagewrapper\swvirtualdisk.cpp@66: ctsw::SWVirtualDisk::QuerySpInfo()] [orchestrator.cpp@192]
エラー: 1940.1404 2015/01/09-16:36:14.867 [ SEV2] 0 : [TST]状態=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' - 予期しない動作: ラックの回復後、スペースは正常な状態になっていません。 [base\cluster\testsrc\calabriabvt.cpp@1359 briaBVT::VerifyIOWithRackFailure()][calabriabvt.cpp@1379]
1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST] エラーのメッセージ 2147549183 (0x8000ffff): 致命的なエラー [wttlog.cpp@1237]
エラー: TAEF: 'TerminateOnFirstFailure' セット - 次のすべてのテストを無視して正常に終了しようとしました。
EndGroup: (EndGroup: EdbriaBVT::VerifyIOWithRackFailure) [失敗]
エラー: 1940.1404 2015/01/09-16:36:14.867 [ SEV2] 0 : [TST]状態=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' - 予期しない動作: ラックの回復後、スペースは正常な状態になっていません。 [base\cluster\testsrc\calabriabvt.cpp@1359 briaBVT::VerifyIOWithRackFailure()][calabriabvt.cpp@1379]
ストレス テストからのこの問題のサンプル出力:
1148.035C 2015/01/12-14:41:10.489 [INFO] 0 : [TST] すべてのスペースが正常になるのを待機しています。Space 19CFCDFCC19EB54AAA780436B2B1D859 状態が InService/再生成中 [calabriastress.cpp@938]
エラー:1148.035C 2015/01/12-14:41:10.489 [SEV2] 0 : [TST]Status=258(102H) Fail validation: 1,200,000 ミリ秒のタイムアウト内に正常な状態にならないスペースがあります。 待機タイムアウトまで待機し続ける場合があります。 [calabriastress.cpp@962]
1148.035C 2015/01/12-14:41:10.505 [INFO] 0 : [TST] エラーのメッセージ 258 (0x102): 待機操作がタイムアウトしました。 [wttlog.cpp@1237]
クラスターとストレージの診断ログを取得する
失敗した結果のクラスターとストレージの診断ログを取得する方法:
失敗した結果を展開すると、テスト タスクが表示されます。
「RunJob-クラスターとストレージの診断ログの生成」のタスクを右クリックして、[タスク ログ]>[すべて表示]を選択すると、 クラスターとストレージの診断ログ エクスプローラー ウィンドウが開きます。 このログでは、テストが失敗した理由に関する追加情報が提供されます。
失敗したテストの分析のために Microsoft にログを送信する
テスト エラー分析のヘルプのためにログを Microsoft に送信する必要がある場合は、HLKX 結果パッケージを作成する手順について「結果のパッケージ」セクションを参照してください。 このパッケージには、テストによって生成および収集された関連ログが含まれており、エラーの分析に役立ちます。
共通の既知の問題
テスト エラーの最も一般的な原因は、ノードまたはノードがダウンして復旧した後、データの再生成時に 1 つ以上のスペースで時間がかかりすぎる (サービスの状態/再生成の時間が長すぎる) ことによるものです。 記憶域のパフォーマンスが一定しない場合、再生成がタイムアウト時間を超過して、テストが失敗する場合があります。 この問題が頻繁に発生する場合は、現在の構成がパフォーマンスのボトルネックとなっている場合があります。 その場合は、記憶域、ネットワーク パフォーマンス、リモート ダイレクト メモリ アクセス (RDMA) を確認することをお勧めします。
この問題の BVT からの出力サンプル:
1940.1404 2015/01/09-16:36:14.867 [INFO] 0 : [TST]スペース ID: 19CFCDFCC19EB54AAA780436B2B1D859 Pool ID: 5D12DF6A5D4DB444AA3407AFA5749578 フレンドリ名: TestSpace は手動接続? クラスター化されている? はい 回復性の種類: 2 プロビジョニングの種類: 2 コピーの数: 3 列の数: 1 フォールト トレランス: 2 健全性: 1 (警告) 状態: 11 (InService/再生成中) ノードに接続: RR1FSC2623N05-1 Visible on nodes: RR1FSC2623N05-1 RR1FSC2623N05-2 RR1FSC2623N28-1 RR1FSC2623N28-2 このスペースで使用されるドライブ: [base\cluster\testsrc\common\storagewrapper\swvirtualdisk.cpp@66: ctsw::SWVirtualDisk::QuerySpInfo()] [orchestrator.cpp@192]
エラー: 1940.1404 2015/01/09-16:36:14.867 [ SEV2] 0 : [TST]状態=-2147418113(8000FFFFH) 'CalabriaBVT::VerifyIOWithRackFailure' - 予期しない動作: ラックの回復後、スペースは正常な状態になっていません。 [base\cluster\testsrc\calabriabvt.cpp@1359 briaBVT::VerifyIOWithRackFailure()][calabriabvt.cpp@1379]
ストレス テストからのこの問題のサンプル出力:
1148.035C 2015/01/12-14:41:10.489 [INFO] 0 : [TST] すべてのスペースが正常になるのを待機しています。Space 19CFCDFCC19EB54AAA780436B2B1D859 状態が InService/再生成中 [calabriastress.cpp@938]
エラー:1148.035C 2015/01/12-14:41:10.489 [SEV2] 0 : [TST]Status=258(102H) Fail validation: 1,200,000 ミリ秒のタイムアウト内に正常な状態にならないスペースがあります。 待機タイムアウトまで待機し続ける場合があります。 [calabriastress.cpp@962]
1148.035C 2015/01/12-14:41:10.505 [INFO] 0 : [TST] エラーのメッセージ 258 (0x102): 待機操作がタイムアウトしました。 [wttlog.cpp@1237]
結果をパッケージ化する
すべてのテストが正常に完了した後、HLK Studio の同じプロジェクトで、[パッケージ] タブを選択して、右下隅にある [パッケージの作成] を選択します。 [署名オプション] のプロンプトが表示された場合は、「署名しない」を選択します。 結果をファイルに保存します。 このファイルは、S2D 認定申請に含める必要があります。
用語
期間 | 説明 |
---|---|
BVT | 基本的な検証テスト |
CSV | クラスター共有ボリューム |
DAS | 直接接続型記憶域 |
HCK | (Windows) ハードウェア認定キット、認定テスト用の以前のキット |
HLK | (Windows) Hardware Lab Kit は、Windows のハードウェア構成の検証に役立つテスト フレームワークです。 このトピックで説明するテストの実行にも使用されます。 |
HLKC | 管理者がテストの実行やその他のマシンの管理に使用するサーバーである HLK コントローラーです。 これをクラスターの一部にすることはできません。 |
TC | テスト コントローラーであり、クラスター対象とするいくつかのテストが実行されるサーバーです。 これをクラスターの一部にすることはできません。 |
S2D | 記憶域スペース ダイレクト |