vSphereホストサイドのキャッシュとしてのSSD選択ベストプラクティス[VirtuCache]


VirtuCacheは専用のハードウェアを必要としていませんが、キャッシュによるVM高速化パフォーマンスはキャッシュメディアに使用するハードウェアの性能や特性に依存します。本記事では、SSDをキャッシュメディアとして利用する場合にどのような観点からハードウェアを選択すべきかといったプラクティスを紹介します。

まず、結論としては、価格と性能の観点から、エンタープライズNVME SSDが、VMware内のホストキャッシングメディアとして現状では最適な選択肢です。NVME SSDは、性能の低いSATA SSDに比べて、性能が高く、価格も少しだけ高くなっています。また、Samsung PM1735(PCIeフォームファクタ)とIntel P4610(2.5″U.2フォームファクタ)のNVME SSDがVirtuCacheとして現状(2020年)推奨しているものとなります。

ESXiホストに予備のU.2 NVMEスロットや従来のPCIeスロットがなく、NVME SSDを使用できない場合は、エンタープライズSATA SSDを使用することができます。SATA SSDを選択した場合は、ESXiホストにキュー深度の高いRAIDコントローラが必要になります。エンタープライズSATA SSDのカテゴリーでは、Intel S4610またはSamsung SM883が良い選択といえます。ホストにSSDを搭載するスロットがない場合は、高価だが高性能なホストRAMをキャッシュメディアとして使用する方法があります。

このブログ記事では、以下のトピックについて説明します。

どのような問題を解決しようとしていますか?

VMレベルでのレイテンシーが常に5ミリ秒(ms)以下であれば、通常、ストレージのパフォーマンスに問題はありません。このような問題がない場合は、この項目は基本的に不要です。

VMwareの世界では、2種類のストレージ パフォーマンスの問題があります。1つのESXiホスト上のすべてのVMからのピークストレージMBpsの集約が100MBps以上であれば、あなたが経験している高レイテンシーは、高スループットの直接的な結果です。しかし、このような高スループットは稀であり、お客様でこの問題に遭遇することはあまりありません。

より一般的な問題は、低いスループット(例えば1MBps以下のピークスループット)でもVMのレイテンシーが高い(ピークレイテンシーが20ms以上)場合です。アプライアンスやデータストアレベルの統計ではなく、VMレベルの統計を追跡することに注意してください。

これらの問題は、ホストサイドキャッシングソフトウェアがVMware内のホストSSDにキャッシングすることで解決できます。低いスループットで高いレイテンシーを経験している場合は、SATAまたはNVME SSDのいずれかが機能します。ただし、非常に高いストレージ スループットで低いレイテンシーを必要とする場合(例えば、ホストあたりのストレージIOが100MBpsを超える場合)は、SATA SSDではなく、書き込みの多いエンタープライズNVME SSDを使用してください。SSDの選択については、後のセクションで詳しく説明します。

最も重要な2つのSSD選択基準 – 書込みIOPSと耐久性

4KBのランダムなブロック・サイズに対する書き込みIOPSは、VMware内のホストSSDを選択する上で最も重要なパラメータです。これは、VMware内からのストレージIOのほとんどがランダムで、小さなブロック・サイズを使用するためです。すべてのエンタープライズSSDは読み込みに優れていますが、小さなブロック(4KB)のランダムなワークロードで書き込みに優れているのはごく少数です。また、ランダムな書き込みのIOPSが高いSSDは、ランダムな読み込みのIOPSも高いというのがほとんどのケースです。最後に、VirtuCache は読み取りと書き込みの両方を高速化するため、SSD の書き込み IOPS スペックにも注目しています。

次に重要なパラメータは、SSDの耐久性です。耐久性は、SSDのOEMがSSDを保証するペタバイト単位の生涯書き込みの総量で測定されます。すべてのエンタープライズSSDは5年間保証されているため、このパラメータは5年間に書き込まれたペタバイトで表されるか、DWPD(Drive Writes Per Day)と呼ばれるパラメータで表されます。DWPDは、ドライブの全容量が1日に書き込まれる回数で、OEMによって5年間保証されています。ホスト側のキャッシングでは、使用頻度の低い古いデータを使用頻度の高い新しいデータに継続的に置き換えることになりますが、削除も新規書き込みも書き込み操作なので、高耐久性のSSDが必要になります。SSDのOEMは、5年間またはSSDの書き込み耐久性の限界に達したときのいずれか早い方についてSSDを保証します。

VirtuCacheが推奨するSATAとNVME SSD(2020年現在)

VirtuCacheとして現在お勧めしているSSDは、Samsung PM1735 NVME SSD(PCIe x8フォームファクタ)またはIntel P4610 NVME SSD(2.5″U.2フォームファクタ)です。データセンター用のNVME SSDには、2.5インチU.2フォームファクタと従来のPCIeフォームファクタがあります。お使いのサーバーにこれらのスロットがなく、予備のSATA/SASスロットがある場合は、Intel S4610 SATA SSDまたはSamsung SM883 SATA SSDを使用することができます。ただし、SATA SSDを使用する場合は、ホストのRAIDコントローラが高キュー深度であることを確認してください。サーバーにSSD用のスロットがない場合は、より高価で高性能なホストRAMをキャッシュメディアとして使用方法があります。

以下の表は、VirtuCacheがテストしたこれらのSSDとホストRAMの主要な指標を比較したものです。VMware VM内で生成されたストレージIOについて、4KBのブロックサイズを使用したランダム100%のリードテストを行い、VirtuCacheがIometerテストファイル全体をVMware内のホストキャッシュメディアにキャッシュした場合の結果です(100%のキャッシュヒット率)。

vSphereホスト上のキャッシュメディア読み取り速度(MBps)読み取りレイテンシ(ms)コスト $/GB(2020年現在)耐久性(ペタバイト書き込み)レイテンシの標準偏差
ホスト上のRAM6300.4$7考慮不要とても低い
Intel  P4610 NVME 1.6TB、U.2フォームファクタ4000.5$0.4012.3とても低い
Samsung PM1735 NVME 1.6TB、PCIeフォームファクタ3000.7$0.3014.6低い
Intel S4610 SATA 1.9TB 1205$0.2010.8低い
Samsung SM883 SATA 1.9TB 1106$0.2010.5高い

SAS SSDに関して

SAS SSD は、他の SSD よりも優れたエラー制御と低い故障率を謳っています。ただし、SSD の故障率を低くするために VirtuCache 内にエラー制御技術を実装しているため、SAS SSDのメリットは、安価な SATA または NVME SSD に対して付加価値を与えません。したがって、新しいSSDを購入する場合は、NVME SSDまたはSATA(NVME / PCIスロットがない場合)のSSDを購入することをお勧めします。しかし、すでにSAS SSDをお持ちの場合は、SAS SSDはほとんどの場合、非常に優れているので、それらを使用してください。

高IOPSなコンシューマ向けSSDはなぜ推奨されないのか?

まず、コンシューマ向けSSDの耐久性は低く(ほとんどの場合、100TB以下)、コンシューマー向けSSDの保証期間は3年で、エンタープライズ向けのような5年ではありません。

次に、一部のコンシューマ向けSSDのIOPSを見ると、エンタープライズ用SSDよりも高性能であるという印象を受けるかもしれません。しかし、VMware環境では、SSD間のIOPSを単純に比較するよりも、レイテンシーが低く、レイテンシーの標準偏差が低い方が良い結果をもたらします。残念ながら、SSDのOEMはレイテンシーを記載せず、IOPSやMBpsのスループットのみを記載しています。例えば、Samsung PM871b(コンシューマー向けSSD)は、Samsung SM883よりも高いスループット/IOPSを実現していますが、SM883はPM871bよりもはるかに低レイテンシーであり、はるかに安定しています(レイテンシーの標準偏差が低い)。

SSDをどこから購入できますか?

ホスト側のSSDは、サーバーベンダーから購入することもできますし、小売店から購入することもできます。小売業者から購入した場合、同じSSDをサーバーベンダーから購入した場合に比べて、SSDの価格ははるかに安くなります。また、販売店では、SSDのOEM保証が5年であるのに対し、同じSSDをサーバーベンダーが再ブランド化した場合は、サーバーベンダーの保証が3年であることを伝えています。サーバー・ベンダー・ブランドのSSDの1つの「利点」は、サーバー管理コンソールのランプが緑色に点灯することです。

SSDのサイズは?

一般的なITワークロードにおける経験則では、ストレージ使用量の10~20%がストレージリクエストの80~90%を提供します。したがって、ホスト上のすべてのVMで使用されるストレージ使用量の20%をSSDの容量とする必要があります。VirtuCache を評価しているときに(VirtuCache の統計画面を使用して)、キャッシュヒット率が低く、SSD がいっぱいになっていることに気づいた場合、キャッシュヒット率が 90% 以上になるように SSD の容量を増やす必要があります。そのためには、既存のSSDを1台のより大容量のSSDに交換するか(推奨)、2台の小さいが同じサイズのSSDを用意し、2台のSSDでRAID 0アレイを作成するとよいでしょう。

なお、2020年7月時点では、NVME SSD用のRAIDコントローラの使用はお勧めできません。まず、NVME SSD用のRAIDコントローラがサーバーに搭載されることはほとんどありません。これは、1台のNVME SSDが8TBの大容量になったことと、NVME SSDもかなり高速だからです。したがって、容量と性能の両方の理由から、NVME SSDにRAIDは必要ありません。第二に、現世代のNVME RAIDコントローラはあまり良くありません。これらのコントローラは、基盤となるNVME SSDのレイテンシーを大幅に増加させます。

SSDの数量は?

VirtuCache では、読み取りのみをキャッシングする場合 (ライトスルー キャッシング) は、ホストごとに 1 台の SSD が必要で、高速化が必要なホストにのみ必要となります。書き込みもキャッシングする場合(ライトバックキャッシング)は、ホストごとに1台のSSDが必要となり、VMwareクラスタ内のすべてのホストに必要となります。これは、ライトキャッシングの場合、VirtuCacheがローカルSSDに書き込みをコミットし、その同じ書き込みのコピーが同じESXiクラスター内の別のホストの別のSSDにも同期的にコピーされるためです。このように2つのホスト間で書き込みをミラーリングすることで、ホスト障害時のデータ損失を防ぎます。

また、1つのホストで複数のSSDを使用する代わりに1つのSSDを使用することをお勧めします。これは、複数のSSDで構成されたRAID 0アレイよりも、単一のSSDで構成されたRAID 0アレイの方が高性能だからです。

なぜキュー深度が重要なのか?

キュー深度とは、デバイスベンダーがストレージデバイス(またはソフトウェア)に割り当てる数字であり、ストレージのIOパスにおいてデバイスの上位に位置するコンポーネントに、デバイス(またはソフトウェア)が並行して処理できるIOリクエストの最大数を通知するものです。ストレージIOパス内のすべてのデバイスまたはソフトウェアコンポーネントは、それに関連する キュー深度を持っています。そのデバイスに送られたIOリクエストのうち、 キュー深度を超えるものは、キューに入れられます。ストレージIOパスのどのデバイスでもキューイングが発生しないようにする必要があり、そうしないとレイテンシーが高くなります。 キュー深度が大きいということは、そのデバイスが低レイテンシーで、一般的に高性能であることを意味します。

SATA SSD を使用する場合は、SSD デバイスと RAID コントローラのキュー深度を確認してください。ESXiのEsxtopコマンドで、RAIDコントローラのアダプタ キュー深度 (AQLEN)と、RAID0 SSDデバイスのディスクキュー深度 (DQLEN)を確認できます。安価な( キュー深度が低い)RAIDコントローラの場合、RAIDコントローラが背後のRAID0 SSDのボトルネックになります。このような自体を避けるため、RAID0 SSDデバイスとRAIDコントローラのAQLENとDQLENの両方が512よりも大きいことが非常に重要です。

NVME SSDの場合、 キュー深度はほとんどの場合900よりも大きくなります。しかし、NVME SSDのキューデプス(AQLENとDQLEN)を確認することは、常に良いアイデアです。

SSDにRAIDは必要ですか?

このセクションは、NVME SSDには適用されません。

各ホストのSATA/SAS SSDをRAIDする必要がありますが、データを保護するという従来の理由ではありません。SATA / SAS SSDをRAID-0にして、SSDにデフォルトのVMware SATAドライバが割り当てることができるキュー深度よりも高いキュー深度を割り当てる必要があります。SATA SSDに高いキュー深度を割り当てることで、より多くのリクエストをSSDで処理することができるため、スループットが向上し、レイテンシーが減少します。デフォルトのVMware SATAドライバで可能なものよりも高いキュー深度は、この方法でのみSATA SSDに割り当てることができます。

VirtuCache がデータ損失の保護を行うため、 SSD やホストに障害が発生した場合に備えて、RAID-1 またはそれ以上の RAID レベルを使用するべきではありません。リードキャッシュの場合は、ローカルSSDとストレージアレイの間で常にリードが同期しています。また、ライトキャッシュの場合は、VirtuCacheがネットワーク経由で別のホストのSSDに書き込みをミラーリングすることで、SSDへの書き込みを保護します(ライトキャッシュレプリケーション)。そのため、万が一ホストに障害が発生しても、データを失うことはありません。また、複数のSSDをRAID1(またはそれ以上のRAIDレベル)にすると、SSDのレイテンシーがかなり悪化します。

まとめ

  • コンシューマ向けではなく、エンタープライズ用のSSDを使用します。
  • サーバーに予備のPCIeスロットまたはU.2 NVMEスロットがある場合は、NVME SSDを使用します。これらのスロットがない場合は、キュー深度の高いRAIDコントローラのバックエンドでSATA SSDを使用してください。さらに、予備のSATAまたはSASスロットがない場合は、ホストRAMをキャッシュメディアとして使用する方法があります。
  • SATA / SAS SSDを使用する場合は、RAIDコントローラのキュー深度が512以上であることを確認します。NVME SSDの場合、キュー深度を考慮する必要はありません。
  • 読み取りと書き込みを高速化するためには、ESXiクラスタ内のすべてのホストにキャッシュメディア(ホストRAM / SSD)が必要です。読み取りのみを高速化する場合は、高速化が必要なホストのみにキャッシュメディアが必要となります。
  • SATA / SAS SSDを使用する場合は、1台のSSDをRAID 0で使用します。複数の SSD を RAID 1(またはより高い RAID レベル)で使用しないでください。NVME SSDを使用している場合は、RAIDを構成する必要はありません。
  • ホストで複数の SSD を使用することは可能ですが、1 台の SSD のみを使用することが推奨されます。

免責事項:筆者およびVirtunetは、Samsung、Intel、またはその他のSSD OEMとは一切関係ありません。SamsungやIntelからの金銭的な補償やSSDの無料サンプルの提供はありませんでした。

開発元記事URL:https://virtunetsystems.com/how-to-select-ssds-for-host-side-caching-for-vmware-type-model-size-source-and-raid-level/

関連トピックス

コメントを残す

メールアドレスが公開されることはありません。

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください