ダブルレイヤーL2-SSDキャッシュ
InfiniCloud株式会社のクラウドシステムは、データの保全性を最重視するため、逆に書き込み速度が劣化する傾向があります。
一般に、共有SANストレージを使ったクラウドシステムにおいて、ストレージサーバの応答遅延は、仮想サーバ群に対して深刻なダメージを与えます。あるサーバがストレージに対して大きなインパクトを与えたとき、同一収容されている仮想サーバはストレージに遅延が発生します。
ハイパーバイザ型の仮想化システムの場合、仮想化OSから見たときのストレージはローカルストレージのように見えるため、仮想サーバにとってのストレージの応答遅延は、ディスクが不安定のように見えます。
コンテナ型の仮想化システムの場合、ディスクアクセスはグローバルゾーン(ベアメタル上のOS内)で行うため、準ネットワークストレージとして利用し、仮想サーバのプロセスがからみてディスクの応答性の劣化に見えます。
ハイパーバイザ型にくらべてコンテナ型の方がSANストレージの応答劣化には(ゆるやかに)強いのですが、いずれにしてもSANストレージの応答性劣化が仮想サーバに与える影響は深刻です。
そこでInfiniCloud株式会社のクラウドシステムでは、ストレージの高速化のために、2段階の高速なSSDを用いたストレージのオフロードを行っています。
1つは、仮想サーバの収容機上に存在するL2ARCとSLOG、もう1つはSANストレージ層に用意したL2ARCとSLOGです。
左図のうち、下の方からデータを読み出すほど遅延が発生しますが、データ自体が確実に保持されているのは、一番下のストレージのみです。
仮想サーバがデータを読み出す時、次のような流れで読み取ります。
- 収容サーバのメモリ上にデータがキャッシュされていた場合、メモリ上のキャッシュから応答します(収容サーバのARCヒット)
- 収容サーバのメモリに無かった場合、収容サーバに接続されているSSDを用いたL2ARCからデータを読み込み応答します(収容サーバのL2ARCヒット)
- 収容サーバのメモリにもL2ARCにも無い場合、SANストレージに照会、SANストレージ内のメモリ上にデータがキャッシュされていた場合、SANストレージ内のメモリ上のキャッシュから応答します(SANストレージのARCヒット)
- 収容サーバのメモリにもL2ARCにも無く、SANストレージのメモリにも無い場合、SANストレージに接続されているSSDを用いたL2ARCからデータを読み込み応答します。
- どのキャッシュにもない場合、実際のディスクアレイからデータを読み取ります。
一方、書き込みの場合は、次のような流れとなります。
まず、通常の書き込みは、ある程度まとめてスケジューリングされたタイミングにて、ディスクアレイに直接、書き込みします。
しかしアプリケーションなどから、SYNC要求(ディスクに書き出しなさいという指令)が発生した場合、下記のような手順で書き込みを行います。
- 収容サーバ上のSLOGに対して、書き込みが要求を出す。書き込みが終了した場合は正常終了を返す。
※収容サーバ上のL2ARCとSLOGは、仮想サーバ単位に接続されております。また、全てのお客様の仮想サーバに接続されるものではありません。一定の条件を満たすご契約が必要になります。※