Microsoft Hyper-V Cloudパート3:ストレージスペース

パート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つのタイプに分類されています。





プールに同じタイプのディスクが含まれている場合、作成されたCSVボリュームとその上にある仮想ハードディスクファイルに問題はありません。 さまざまなタイプのディスクがプールで結合されると、問題が始まります。 この場合、プールには512個のネイティブ(SATA)および512e(SSD)ディスクが含まれていました。 CSVボリュームは512バイトの論理セクターで作成されると考えるのが論理的です。 実際には、新しく作成されたVMについて、開発者はデフォルトで論理セクター4096を使用してCSVボリュームの作成を設定することが判明しました。



結果は次の図でした:





相互作用スキーム。 物理セクターは、ハードディスクコントローラーのレベルでのみ考慮されます。



上位のドライブの論理セクターが下位のドライブよりも小さいという状況がありました。 これにより、Read-Modify-Writeポリシーが実装されました。4Kセクターをキャッシュに読み込み、必要な512バイトを編集し、4Kをディスクに書き戻します。 その結果、記録中のディスクサブシステムのパフォーマンスが8倍になります。





4096バイトセクターのメディアに512バイトセクターを書き込むプロセス。



問題を解決する2つの方法を見つけました。


  1. 論理セクターサイズが4Kの既存の仮想ハードディスクを再作成します。 その結果、すべてのアーキテクチャコンポーネントがセクター4096のボリューム上にある仮想ディスクをサポートするわけではないため、このオプションは私たちには適していません。



  2. 既存の仮想ハードドライブを一時的な場所に移行し、512の論理セクターサイズでCSVボリュームを再作成します。このオプションを選択しました。

    次の表は、このソリューションの実装前後の速度値を示しています。 「後」の場合、テストは15台の仮想マシンでDiskSpdテストを同時に実行することで実行されました。






今後の予定:記憶域スペースダイレクト



Windows Server 2016は、記憶域スペースの更新バージョン-記憶域スペースダイレクトをリリースしました。 ベンダーが約束するように、新しいソリューションはソフトウェア定義ストレージの現在の実装の問題を排除し、新しい機能があります。





Storage Spaces Directの実験をすでに開始しており、近い将来の第一印象についてお話しします。 コメントで質問してください。



投稿者: Sergey Gruzdov



All Articles