パート1:コントロールパネルを理解するパート2:Exchange Serverの展開パート3:ストレージスペース
Microsoft Hyper-Vの仮想インフラストラクチャに関する一連の記事を続けます。
今日は、記憶域スペースに基づいた記憶域の配置方法と、それを構築する際に直面した困難について説明します。
内容ストレージアーキテクチャ
ストレージスペースのストレージパフォーマンスの問題
今後の予定:記憶域スペースダイレクト

ストレージアーキテクチャ
Cloud-Vクラウドを作成する際の最も困難なタスクは、Microsoft Storage Spacesに基づいて高速のソフトウェア定義ストレージを作成することでした。
ストレージは、Dell PowerVault 3060eディスクアレイが接続された2台のDell PowerEdge 730サーバーに基づくクラスターに基づいています。
記憶域アーキテクチャ従来のSANストレージネットワークの代わりに、40 Gbの帯域幅を持つコンバージドLANを構築しました。 SMBダイレクトおよびSMBマルチチャネルコンポーネントをサポートするスケールアウトファイルサーバーの役割がクラスターに展開されました。
SMBマルチチャネルを使用すると、サーバー上に複数のネットワークアダプターがある場合に、コンピューティングクラスターノードとストレージリソースの接続のバランスを取ることができます。 ROCE(RDMA over Converged Ethernet)機能をサポートするMellanox ConnectX-3 Pro 40GbEネットワークアダプターを使用しました。
SMBダイレクトコンポーネントはROCEを使用してリモートサーバーのメモリに直接アクセスするため、ネットワークの待ち時間が短縮されます。 あるノードからのアプリケーションは、オペレーティングシステムのネットワークスタックをバイパスして、別のノードのアプリケーションメモリに直接アクセスします。 その結果、ノード間のデータ転送が大幅に加速されます。
アプリケーションとディスクストレージの相互作用:RDMAなし(左)とRDMAあり(右)。さまざまなタイプのドライブ(SATA、SAS、SSD)を使用することにより、ソフトウェア定義のストレージスペースの高性能が実現されます。 実際、マルチレベルストレージがあり、使用の強度に応じてデータがさまざまなタイプのディスクに分散されます。 記憶域スペースはデータをフィルター処理し、ほとんど使用されないデータを下位レベル(HDD)に送信し、ホットデータを上位レベルの高速SSDディスクに送信します。 このタイプのストレージにより、リソースをより効率的に使用できます。
階層ストレージでデータを記録およびフィルタリングします。ストレージスペースのストレージパフォーマンスの問題
このようなスマートなストレージを取得して機能させるには、戦わなければなりませんでした。 私たちが直面している問題は、処理速度が遅いことです。 SSDの書き込みパフォーマンスは100 Mbpsを超えませんでした。これは、通常のパフォーマンスに必要な10倍です。 この問題は、テンプレートからVMを展開するとすぐに現れました。1つの10 GB VMの展開には30〜40分かかり、2つのVMの展開には約2時間かかりました。
ディスクのファームウェアに疑念が生じました。デフォルトでは、クラスターの異なるノードからの同時アクセスがサポートされていませんでした。 ファームウェアの更新後、いくつかのVMの展開が停止し、パフォーマンスが大幅に低下しました。 しかし、すべてがまだ長い間続いていました。
最下位レベルのアーキテクチャで問題を探し続け、OSドライバーデータをディスクと交換するプロセス、つまり、セクターをディスクに読み書きするプロセスの分析を開始しました。 セクターには、論理と物理の2つの定義があります。 論理セクターはオペレーティングシステムのドライバーによって、物理的には-ハードディスクコントローラーによって直接操作されます。 現在、ハードドライブは、論理/物理セクターのサイズ比に応じて3つのタイプに分類されています。
- 512ネイティブ-論理512、物理512。
- 512e-論理512、物理4096;
- 4096ネイティブ-論理4096、物理4096。
プールに同じタイプのディスクが含まれている場合、作成されたCSVボリュームとその上にある仮想ハードディスクファイルに問題はありません。 さまざまなタイプのディスクがプールで結合されると、問題が始まります。 この場合、プールには512個のネイティブ(SATA)および512e(SSD)ディスクが含まれていました。 CSVボリュームは512バイトの論理セクターで作成されると考えるのが論理的です。 実際には、新しく作成されたVMについて、開発者はデフォルトで論理セクター4096を使用してCSVボリュームの作成を設定することが判明しました。
結果は次の図でした:
相互作用スキーム。 物理セクターは、ハードディスクコントローラーのレベルでのみ考慮されます。上位のドライブの論理セクターが下位のドライブよりも小さいという状況がありました。 これにより、Read-Modify-Writeポリシーが実装されました。4Kセクターをキャッシュに読み込み、必要な512バイトを編集し、4Kをディスクに書き戻します。 その結果、記録中のディスクサブシステムのパフォーマンスが8倍になります。
4096バイトセクターのメディアに512バイトセクターを書き込むプロセス。問題を解決する2つの方法を見つけました。
- 論理セクターサイズが4Kの既存の仮想ハードディスクを再作成します。 その結果、すべてのアーキテクチャコンポーネントがセクター4096のボリューム上にある仮想ディスクをサポートするわけではないため、このオプションは私たちには適していません。
- 既存の仮想ハードドライブを一時的な場所に移行し、512の論理セクターサイズでCSVボリュームを再作成します。このオプションを選択しました。
次の表は、このソリューションの実装前後の速度値を示しています。 「後」の場合、テストは15台の仮想マシンでDiskSpdテストを同時に実行することで実行されました。

今後の予定:記憶域スペースダイレクト
Windows Server 2016は、記憶域スペースの更新バージョン-記憶域スペースダイレクトをリリースしました。 ベンダーが約束するように、新しいソリューションはソフトウェア定義ストレージの現在の実装の問題を排除し、新しい機能があります。
- マルチスレッド重複排除。重複排除プロセスに特定のプロセッサコアを割り当てることができます。 現在、ストレージスペースで利用できるのは、1つのプロセッサコアに基づくシングルスレッドの重複排除のみです。 リアルタイムの重複排除は不可能であり、プロセス自体に多くの時間がかかります。
- リバランス。 すべてのデータをボリューム全体に再配布できます。 これにより、ディスクサブシステムのパフォーマンスを向上させることができます。 記憶域スペースでは、新しいハードドライブをプールに追加すると、最初に割り当てられたドライブがいっぱいになって初めて、追加されたハードドライブにデータが到達し始めます。
- さまざまなスケーリングオプション。 記憶域スペースでは、新しいディスクシェルフを追加することによってのみスケーリングが行われますが、これは高価で不便です。
Storage Spaces Directの実験をすでに開始しており、近い将来の第一印象についてお話しします。 コメントで質問してください。
投稿者:
Sergey Gruzdov