IT業界にはERPやCRMなどアルファベット略語で表した用語が多数登場する。その中でも最近よく目にするのは、SDDCやSDNなど「SD」で始まる用語だ。これらは「Software Defined xxx」の略で、SDDCはSoftware Defined Data Center、SDNはSoftware Defined Networkingとなる。

この「Software Defined ≒ ソフトウェアで定義された(?)」の意味はシンプルに見えて実は奥が深い。今回はこの「Software Defined xxx」のストレージ版であるSDS(Software Defined Storage)を題材に連載をスタートする。サーバ、ネットワーク、ストレージというITインフラの3つの構成要素においてIT技術者の多くが「最もなじみが薄い」ものとしてストレージを選択するであろう昨今、SDSというトピックを通じてストレージ技術や操作を身近に感じてもらおうというのが、この連載の目的だ。

1. そもそも「ソフトウエアで定義」って何のこと?

ITの技術が誕生した1950~60年代当時、アプリケーションとハードウェアは密接な関係にあり、アプリケーション開発者はメモリや記憶装置の空間(アドレス)、各種周辺機器、制御装置の動作まで把握する必要があった。その後、1980~90年代にかけてUNIXやWindowsといった汎用OS(オペレーションシステム)ソフトウェアが普及し始めると、アプリケーション開発者はOSが提供する共通のAPIやシステムコールを通じてハードウェアを制御可能となった。

つまり、OSというソフトウエアがハードウエアを抽象化する機能を提供することでアプリケーション開発者の負担を軽減し、より多様なアプリケーションを迅速に開発することが可能となった。2000年代以降に急速に進歩・普及したサーバ仮想化の技術(ソフトウエア)は、ハードウエアとアプリケーションの結びつきをさらに緩めることで、ITシステムの柔軟性や俊敏性の向上に大きく寄与している。(図1)

図1. アプリケーションとハードウエアの結びつきの変遷

前置きが長くなったが、今回の連載のテーマであるSDSをはじめとした「Software Defined xxx」については、前述したIT技術の進歩に沿ったものと理解するのが良い。OSや仮想化技術の登場・進歩と並行するかたちで急速に高性能化したCPUの活用により、これまで専用のハードウエアで動作させる必要があったネットワークやストレージなどITインフラ機能を、ソフトウエアや仮想アプライアンスとしてサーバ上で動作させることが可能となった。

この技術革新を前提に、ITインフラ全体をソフトウエアで制御できる仕組みを提供することで、ネットワークやストレージ専任の技術者ではないアプリケーション開発者やIT利用者が、必要な時に簡単にかつ迅速にITインフラリソース(CPU,ネットワーク,ストレージ)を手に入れる世界を実現する。これが「Software Defined xxx」の大きなゴールだ。(図2)

図2. Software Defined xxxの目指す世界

2. SDSとはどんなもの?

実はSDSにはいくつかの種類があり、「SDSとは?」という問いに対して説明を難しくしている。現在、製品化されているSDSは大きく以下の3つに分類できる。

  1. サーバベースストレージソフトウエア(図3の①)
    主にソフトウエアとして提供され、複数の汎用サーバとその内蔵もしくは直結ストレージを束ねて大きな共有ストレージとして構成する。ストレージ専用ハードウエアを使用せず、サーバ(ノード)の追加により簡単にスケールアウトできるため、システムやサービスをスモールスタートで迅速に立ち上げたいような場合に適している。製品やソフトウエアによって、ブロック/ファイル/オブジェクトといったアクセス形態をそれぞれもしくは複数同時にサポートする。オープンソースとして開発、提供されているものが多いのも特徴だ。

  2. 仮想ストレージアプライアンス(図3の②)
    ハードウエアとして提供されているストレージのOS/ソフトウエアを、仮想化技術を用いて仮想アプライアンスとして提供した製品。最近のストレージ製品の多くが、コントローラにIntelアーキテクチャのCPUを用いている。そのためストレージベンダーは、VMware vSphereサーバなどのハイパーバイザ上で動作する仮想アプライアンスを比較的簡単に作成可能だ。ハードウエアベースのストレージとほぼ同じ機能が利用できるため、テスト環境での利用や操作や技術の習熟、災害対策目的などのストレージ間のデータ複製先として活用されるケースが多い。

  3. ストレージコントローラ(図3の③)
    ストレージ機能そのものは、従来のハードウエア製品を通じて提供するが、異なる機種のストレージの制御(ボリュームの作成や割り当てなど)を一元管理することで、ストレージプールなどのリソースの抽象化や運用自動化を促進しITインフラの俊敏性を高めることを目的とした製品。サーバやネットワークリソースの割り当てを自動化する「オーケストレーションソフトウエア」と連携することで、セルフサービス(IT利用者が自らリソースをリクエスト/獲得する)を可能とし、いわゆる「プライベートクラウド」環境を実現する目的で利用されるケースが多い。

図3. SDSの種類と代表的な製品

3. SDSの最大のメリットは「手軽さ」

前章で紹介した3つのSDSカテゴリ製品のうち、①と②についてはある程度の規模のサーバさえ用意できれば簡単に構築できる。実際、多くのストレージベンダーは①と②に該当する製品について、無償でダウンロードできる評価版や、サポートに一定の制限を設け無償で自由に使えるコミュニティ版を提供している。

今回の連載では、この無償で入手でき構築が容易な「手軽さ」を体感し、ストレージに対する理解をより深める内容を中心とする。EMCの複数のSDS製品を題材にして、具体的なユースケースや構築手順を紹介していく。

これまでIT技術者の多くは、「アプリケーション開発」や「ネットワーク構築」といった技術の専門性を求められ、その分野のエキスパートになることを目標としていた。

しかし、今回採り上げた「Software Defined xxx」のコンセプトは、アプリケーション開発者やITの利用者自らが、ネットワークやストレージといったITインフラ構築に直接関わり、柔軟性や俊敏性を向上させることを目的としている。このSDSの連載を通じて、読者の皆さんが「Software Defined xxx」の世界の一端を感じることができれば幸いである。

(EMCジャパン株式会社 竹内 博史)