2021年07月30日 08時00分 公開
特集/連載

コンピュテーショナルストレージに移行するには何が必要なのか「Linuxが動く」SSDをどうする?

「ストレージに実装されたCPU」でLinuxが動く製品も登場したコンピュテーショナルストレージ。これを利用するには何が必要なのか。ソフトウェアの変更が必要なのか。研究者に話を聞いた。

[Adrian Bridgwater,Computer Weekly]

 本稿では、英エディンバラ大学情報学科のアントニオ・バーバレース氏(Institute for Computing Systems Architectureの上級講師)との質疑応答の一部を紹介する。

――ソフトウェアエンジニアはワークロードの中からコンピュテーショナルストレージに配置すべき要素をどのように特定し、設計する必要があるでしょうか。

バーバレース氏:素晴らしい質問だ! それはアプリケーションによって異なる。例えばSQLクエリの一部をストレージにオフロードできる。よく知られている手法であり、AWS(Amazon Web Services)の「Amazon S3 Select」がその例だ。これはSQLのselect文を「Amazon S3」にオフロードする。

 コンピュテーショナルストレージドライブ(CSD)は、データの圧縮/展開、暗号化/復号などの機能を提供する。この場合はアプリケーション全体がオフロードされ、CSDがその機能を提供する。

 アプリケーションのどの部分をCSDにオフロードするかを判定する汎用(はんよう)的かつ自動的な方法はまだ確立されていないが、そのための学術研究は行われている。

 現時点では、アプリケーションのどの部分をオフロードできるのかをプログラマーが手作業で判断する必要がある。

リファクタリングの要因

――コンピュテーショナルストレージのデプロイを成功させるにはどの程度のリファクタリングが必要でしょうか。特に古いレガシーシステムの場合はどの程度困難になるでしょうか。

バーバレース氏:その質問に一般的な答えを示すのは非常に難しい。市場区分やハードウェアとソフトウェアの古さのレベルによって異なる。多くの中小企業は(多くの大企業も)オンプレミスのハードウェアを最小限に抑え、インフラを大規模IT企業に依存するようになっていることにも注意が必要だ。

 いずれにせよ、CSDへの切り替えは「通常の」ドライブをCSDに置き換えるだけの簡単な作業だ。複雑なのはユーザーがCSDを使えるようにする方法だ。製品が市場に登場したばかりなので、使い慣れるには数年かかるかもしれない。IT部門はCSDの使用に際してセキュリティが確保されており、CSD自体に害がないことを確認する必要がある。CSDはフラッシュストレージなので、書き込み回数に制限があることも忘れてはならない。

 コンピュテーショナルストレージは万能ではない。解決できる問題もあれば、解決できない問題もある。GPUと同じだ。GPUは特定のタスク(HPCなど)には最適だが、使う価値のないタスクもある。

――「Journal of Big Data(https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0265-5)」によると、アプリケーションにファイルシステムレベルのデータアクセスを提供する本格的なOSを実行する専用プロセッサを装備した最初のCSDはNGD Systemsの「Catalina」だとされています。Catalinaについて何を知っておく必要があるでしょうか。

バーバレース氏:研究レベルでは以前から同様の概念はあったが、実際にCSDで「通常」のLinuxを最初に実行したのはCatalinaだ。

 個人的には、Catalinaには以下の非常に興味深い概念があると考えている。

  • NVMeプロトコルでイーサネットパケットをトンネリングすることで、ホストCPUを接続する方法(CSDはイーサネットネット内のノードのように見える)
  • CSD上でNANDを公開する方法
  • ホストCPUとCSDのCPU間で分散ファイルシステムを使用するという事実

 NGD SystemsのCSDアーキテクチャが最有力の標準と考えるべきではない。他にもアーキテクチャがあり、標準化は現在初期段階にある。

 CSDはイーサネットではなくPCIeに接続することを忘れてはならない。Armの一部の人々はCSDを低速イーサネットに接続するのは良い考えだと思っている。だが、それは大きな間違いだ。CSDをイーサネットに接続するとデータセンターのスイッチに追加の費用が発生する。スイッチは高価で、それに見合う高密度のボリュームは提供できない。その上、CSDごとに冗長電源用のスペースが必要になる。

 CSDは、古いドライブを新しいドライブに交換する以外にハードウェアを一切変更する必要がないという素晴らしい技術だ。以前と同じように機能し続ける上に、機能が追加される。CSDは他のインフラを更新する必要がなく、以前と同じネットワーク/スイッチ、サーバを維持できる。

 NGD Systems製品の場合、あまりソフトウェアを変更する必要はない。NGD Systemsの技術について私が理解している範囲では、分散システム用に開発されたシステムは(多かれ少なかれ)そのまま実行できる。ただし私の考えでは、CSDを完全に活用するためにはソフトウェアの変更が必要だ。だが既存のソフトウェアをそのまま利用できるという考えとそれほど懸け離れているわけではない。

 SQLの場合、ソフトウェアを変更する必要は全くない。オフロードをサポートするために変更しなければならないのはSQLエンジンだ。

 FaaS(Function as a Service)の場合、(言語)ランタイムで実行され、イベントインフラによって調整されるコードのごく一部を使ってアプリケーションを構築できる。この種のアプリケーションなら、一部をホストCPUで実行して他の部分をストレージのCPUで実行する準備は既に整っている。

 確かに、レガシーソフトウェアは書き直さなければならない。少なくとも今のところはね……。

ITmedia マーケティング新着記事

news084.jpg

2021年の国内動画広告市場は前年比142.3%の成長、コロナ禍の落ち込みから反転――サイバーエージェント調査
インターネットを通して配信される動画広告の年間広告出稿額推計とこれからの市場規模推...

news053.jpg

対Amazon包囲網も? ポストCookieにおけるCriteoの勝算
Criteoが3億8000万ドルでIPONWEBを買収する。サードパーティーCookie廃止はアドテク企業...