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

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

2021年07月30日 08時00分 公開
[Adrian BridgwaterComputer 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 マーケティング新着記事

news068.jpg

社会人1年目と2年目の意識調査2024 「出世したいと思わない」社会人1年生は44%、2年生は53%
ソニー生命保険が毎年実施している「社会人1年目と2年目の意識調査」の2024年版の結果です。

news202.jpg

KARTEに欲しい機能をAIの支援の下で開発 プレイドが「KARTE Craft」の一般提供を開始
サーバレスでKARTEに欲しい機能を、AIの支援の下で開発できる。

news136.png

ジェンダーレス消費の実態 男性向けメイクアップ需要が伸長
男性の間で美容に関する意識が高まりを見せています。カタリナ マーケティング ジャパン...