髙橋 信久

髙橋 信久

ポリネシアのサモアにて、バスに乗る人々。高校生たちの瑞々しい姿が印象的だった。2000年ごろ撮影。

(写真:佐藤秀明

高速なのに安価なストレージができる「ソフトの力」

安価で高性能なストレージは、ICT利用者の誰もが求めるものだろう。一般には高性能であれば高価になり、低コストを目指せば性能が低下する。そうしたトレードオフの解消には「数学」を活用したソフトウェアが役立つとNeutrix Cloud Japanの髙橋信久CTOは指摘する。ソフトウェアの力を使うことで理想的なストレージを作り上げる方法について、髙橋CTOが解説する。

Updated by Nobuhisa Takahashi on July, 13, 2022, 9:00 am JST

ストレージの性能を左右する階層構造の最適化

ストレージは多種多様なデータを蓄積し、読み出して価値を提供する。もちろん、ほぼ蓄積する一方のバックアップ用途などもあるが、多くの場合はデータを書き込むだけではなく、必要に応じて読み出す。その際にストレージの性能が問われる。一方で、ストレージは購入するにせよ、サービスとして利用するにせよ、コストを無視することができない。高い性能を持ちながら、安価なストレージがほしいという願望はユーザーのすべてに通じる。

Neutrix Cloud Japanが提供するクラウド接続ストレージのNeutrix Cloudでは、高い性能と低コストという、ストレージへの相反する要求を満たしたサービスを提供している。INFINIDATが開発したソフトウェア技術が、その相反する要求を満たすことに貢献しているのだ。

改めて、大容量のストレージを構成することを考えてみる。その際には、高速だが高価なDRAM(ダイナミックRAM)、DRAMには及ばないが高速性があるSSD(ソリッドステートドライブ、NANDフラッシュやSCM:ストレージクラスメモリーを利用)、そして低速だが安価なHDD(ハードディスクドライブ)を階層化させて、容量や高速性とコストをバランスさせると良い。

デバイス毎に速度とコストは大きく異なる
デバイス毎に速度とコストは大きく異なる。

その中でも、高速化と低コスト化を両立させるための1つの方法が、オールフラッシュアレイである。ストレージの大部分を占めていた低速で安価なHDDを、より高速なSSDに置き換え、高速性を担保した。

アクセス頻度を分析して最適なストレージ配置を実現

一方、INFINIDATではIO(入出力)のフローを最適化することで、高速化と低コスト化を両立させている。オールフラッシュアレイは、DRAMによるキャッシュと、HDDより高速だが高価なSSDだけを使ってストレージを構成している。ハードウェアの性能を最適化させた構成と言える。INFINIDATは、DRAMによるキャッシュ、SSDに加えて、低速だが安価なHDDを適材適所に組み合わせた。大量のデータをストレージする部分には安価なHDDを使いながら、高速性を確保できるシステム構成であり、そこには数学を用いた技術が使われている。ソフトウェアの力で最適化を実現しているのだ。

例えば、10ペタのデータをストレージに蓄積していたとして、全部のデータに均等にアクセスすることはあり得ない。一部のデータには高い頻度でアクセスする一方で、多くのデータへのアクセスはほとんどないというのが現実である。

IOフローが最適化される
アクセス頻度でデータの配置を変えることにより、IOフローが最適化される。

INFINIDATでは、アクセス頻度が最も高いデータをDRAMに、次いでアクセス頻度が高いデータをSSDに、そしてほとんどアクセスがないデータをHDDにそれぞれ配置するようにストレージを構成した。このストレージ構成で、最適なデータ容量の比率を統計的に見ると、DRAMに2%、SSDに4%、HDDに94%の割合になる。これをアクセス頻度の側から見ると、90%がDRAM、9%がSSD、1%がHDDとなる。たった2%だがよく使うデータを適切にキャッシュとして使うDRAMに配置できれば、90%のアクセスがDRAMのアクセス速度で実現できる。一方で、ほとんどアクセスのない94%のデータを安価なHDDに蓄積していても、アクセスの比率は1%に過ぎず、ユーザーからすればトータルのアクセス速度は高く保たれるというわけだ。

機械学習、AIによる先読み技術で最適化

しかしどうすれば、アクセス頻度が90%に上るような最頻利用の2%という限られたデータをDRAMに上手に集められるのか?そこでは、INFINIDATが特許を取得しているTrieと呼ぶ技術をベースにした「Neuralキャッシュ」が力を発揮する。

イメージとしては、検索エンジンで検索文字の冒頭を入力すると、自動的に複数の検索候補をリストアップしてくれるようなものを思い浮かべてもらえば良い。コンピューターの世界では「プリフェッチ」と呼び、利用が予測されるデータを、あらかじめ高速なメモリーなどに読み込んでおき、性能と速度の向上を図る動作である。ここに機械学習とAIを組み合わせて、最適な予測を実現するのがNeuralキャッシュだ。

Neuralキャッシュは、次に読み込みが予測されるであろうデータを、事前にSSDやHDDからDRAMのキャッシュに的確に移動しておく機能を提供する。このプリフェッチによる最適な予測をソフトウェア中心の技術で実現していることが、Neuralキャッシュの特徴である。DRAMにどのデータを上げておけば良いのかを数学的に予測しているため、ハードウェアに依存することがない。

特許取得技術TrieをベースにしたNeuralキャッシュ
特許取得技術Trieをベースにした「Neuralキャッシュ」で最適なアクセス予測を実現。

階層化構造を使用したストレージはINFINIDAT以外からも提供されていて、プリフェッチを効率化する技術は各社が開発している。しかし、DRAMに移動させておくデータがアクセス頻度の高いデータである比率を示す「キャッシュヒット率」で、INFINIDATが優位性を持っている。

学習しながらハイパフォーマンスなキャッシュヒット率

INFINIDATのNeuralキャッシュが有効に使われていることを、実際の事例から見ていきたい。英国の通信事業者のブリティッシュテレコム(BT)の事例である。

BTは、INFINIDATを使ってマルチテナントのユーザーのデータを扱うサービスを提供している。ここで重要なことは、マルチテナントのデータを扱っていることだ。DRAMのキャッシュにあらかじめ移動する際に用いるデータの特性は、1社が単独で使っていれば分析しやすい。しかし、マルチテナントで複数の企業のデータを扱っていたら、データの特性にはばらつきが生じる。DRAMに移動した際のキャッシュヒット率が下がる可能性がある。

INFINIDATでも、BTに導入した当初は、キャッシュヒット率は80%程度だった。ところが、Neuralキャッシュが学習を重ねていくことで、キャッシュヒット率は上昇して、安定した運用では98%の数値を実現している。限られた容量のDRAMであっても、アクセス頻度が高いデータを確実にキャッシュできれば、高いアクセス速度でストレージを利用できる。それも、ストレージの実態の大部分は安価なHDDであり、ソフトウェアで制御することで汎用的な機器を使えることも相まって、コスト削減が実現できる。安価で高速なストレージという、相反する要求への答えがここにある。

他社も含めて、ストレージを高速化させるソリューションとしてはSSDを利用するケースが多い。INFINIDATでも、一部でフラッシュのストレージを提供しているほどだ。それでも、Neuralキャッシュを用いてHDDを組み合わせた構成のほうが、大容量で低価格を実現できる。パフォーマンスを保ちつつ、容量当たりの単価を抑えられるのだ。

Neutrix Cloud Japanでは、INFINIDATの技術を用いたストレージを利用して、マルチテナントのクラウド接続ストレージサービスのNeutrix Cloudを提供している。実際、Neutrix Cloudのエンドユーザーからは、「他のクラウドを使ったときに遅さを感じる」といったコメントをもらうことがある。これはNeuralキャッシュの技術があるからこその効果だ。Neutrix Cloudを提供して約2年が経過したが、システムのパフォーマンスの遅さを原因として、エンドユーザーからネットワークやストレージの調査を依頼されたことはまったくない。コスト面はもちろん、目に見えないこうした安定運用への効果にも、Neuralキャッシュの技術が寄与していると考えている。

高い性能で低コストNeutrix Cloud Japanが提供するクラウド接続ストレージのNeutrix Cloudとは?