デルが手がけるオブジェクトベース・ストレージ「Dell DX6000」【前編】
あちこちで言い尽くされていることだが、デジタルデータは急増の一途をたどっている。そして、これらのデータのほとんどは、動画や画像、音声などの非構造化データであり、しかも作成されたらほとんどアクセスされずにひたすら蓄積されている。近年、このようなデジタルデータを保管する目的で、オブジェクトベース・ストレージ(以下、オブジェクトストレージ)が登場した。
デルが手がける「Dell DX6000シリーズ」も、こうしたオブジェクトストレージ・ソリューションのひとつだ。今回は、デル株式会社 グローバルSMB本部 エンタープライズテクノロジストの桂島航氏に、デルのオブジェクトストレージ分野に対する取り組みや、その具体的なソリューションである「Dell DX6000シリーズ」についてお聞きした。
Dell DX6000シリーズ | デル株式会社 グローバルSMB本部 エンタープライズテクノロジストの桂島航氏 |
■爆発的に増大する固定コンテンツの保管に適したオブジェクトストレージ
冒頭でも述べたように、急増するデジタルデータの内訳を見ると、ユーザーがブログやソーシャルネットワークサービス(SNS)上で次々と生み出している動画や画像など、いわゆる非構造化データが多くの割合を占めるようになった。
そして、このようなコンテンツの約90%は、作成された後に再びアクセスされることがない。つまり、次々と生み出されたコンテンツは、時間が経過すればひたすら保管されるだけの運命にある。本稿では、このように変更されずに蓄積されていく「コールド」な非構造化データを固定コンテンツ(fixed content)と区別して呼ぶことにする。
一方で、従来からあるストレージシステムは、ブロックベースやファイルベースといった違いはあるにせよ、いずれもアクセス頻度がかなり高い「ホット」なデータに最適化されている点で共通している。ここで重要視されるのは、アクセス性能や可用性、データの一貫性などであり、これらはデータベースなどの構造化データ、もしくはアクセス頻度の高い非構造化データに対して意味をなすものだ。
爆発的に増えている固定コンテンツを適切に取り扱うには、以前からあるストレージではなく、まったく新しい設計思想に基づいて作られたストレージが必要だ。そして、そのようなストレージこそが今回取り上げるオブジェクトストレージである。
固定コンテンツで重視される要件にはいくつか考えられるが、まず優れたスケーラビリティとコストパフォーマンスが挙げられる。少なくとも数十億個のオブジェクト数、データ容量にしてペタバイト(PB)クラスにまで拡張できなければならない。しかも、それを適切なコストで実現する必要がある。また、こうした膨大なデータとそれを格納するストレージの双方を容易に管理できることも不可欠だ。
後述するように、固定コンテンツの中には、保管に際して法令や社内ポリシーへの順守が要求されるケースもある。このため、データ損失を防ぐデータ保護技術や、データの改ざんや消去を防止する技術なども必須となる。
従来のストレージシステムとオブジェクトストレージの使い分け(出典:デル株式会社、以下同様)。アクセス頻度の低い「コールド」な非構造化データの保管には、オブジェクトストレージが適している |
■管理ノードとストレージノードから構成されるDell DX6000シリーズ
Dell DX6000シリーズは、こうしたさまざまな要件を満たす最新のオブジェクトストレージ・ソリューションである。ハードウェアには、x86アーキテクチャに基づくデルの汎用サーバープラットフォームを採用し、その上でオブジェクトストレージの機能を提供するソフトウェアが動作する。
Dell DX6000シリーズは、複数のノード群で単一の強固なクラスタが構成されるRAIN(Redundant Array of Independent Nodes)アーキテクチャを採用している。ノードには管理ノード(DX6000)とストレージノードの2種類があり、クラスタ全体は管理ノードが1台、ストレージノードが2台以上から構成される。
オブジェクトストレージ全体のディスク容量は、クラスタを構成するストレージノードの台数に比例して増えていく。ストレージノードには、12台のHDDを搭載可能な2Uラックマウント型のDX6012Sと、4台のHDDを搭載可能な1Uラックマウント型のDX6004Sがラインアップされている。
ストレージノードに搭載可能なHDDは、2011年3月時点で250GB、500GB、1TB、2TBの4種類から選択でき、ノードあたりの最大容量はDX6012Sが24TB(=2TB×12台)、DX6004Sが8TB(=2TB×4台)となっている。
後述するように、Dell DX6000シリーズでは、オブジェクト単位でのレプリケーションによってデータの保護を行っているため、ストレージノード内のHDD群でRAIDを構成することはない。つまり、ノードに搭載されている素のディスク容量(raw capacity)が、すべてユーザーの利用できる容量となる。
桂島氏は、Dell DX6000シリーズの位置付けについて「Dell DX6000シリーズは、デルの汎用サーバーを活用したソリューションですが、あくまでもソフトウェア込みのアプライアンスとしてセットで販売する形をとっています。汎用サーバーと同様にCPU、メモリ、HDDなどのカスタマイズが可能ですが、これらのサイジングはお客さまのニーズに合わせて当社が行います。また、ストレージノードの種類や台数なども、お客さまが必要とするディスク容量や予算にあわせて適切な構成をご提案します」と説明する。
デルのオブジェクトストレージ・ソリューション「Dell DX6000シリーズ」。管理ノードとストレージノードから構成される完全クラスタ型のシステム構成をとる |
■ノード間で異なるソフトウェアバージョンを許容する優れた柔軟性
Dell DX6000シリーズでは、クラスタサービスノード(以下、CSN)と呼ばれる管理ノードが主導権を握り、クラスタを構成するほかのストレージノード群を制御する。ストレージノード群の追加や削除は、サービスを止めることなくオンラインで実行可能だ。
ストレージノードを追加すると、データの一部が新しいノードへと自動的に移動し、すべてのノードに対してデータが均一に分散される。一方、ストレージノードを削除する場合には、CSN上で削除したいノードを指定することで、このノード上のデータがすべてほかのノードへと退避される。データ退避後には、不要なノードを物理的に切り離せる。
そして、各ノード上で動作するシステムプログラム(ベースとなるOSやその上で動作するソフトウェア群)の管理もシンプルだ。CSN自体は、本体の内蔵HDDからシステムプログラムを起動するが、ストレージノード群はCSNに保管されているシステムプログラムをネットワーク経由で呼び出す。これは、多くのサーバー環境で活用されているPXE(Preboot eXecution Environment)に基づくネットワークブートである。
古くからある高可用クラスタやHPC(High Performance Computing)クラスタを見ても分かるように、通常、クラスタを構成するノード間では、システムプログラムのバージョンが完全に一致していなければならない。しかし、Dell DX6000シリーズは、ストレージノード間で異なるバージョンのシステムプログラムが稼働していてもかまわない。
ノード間で共通のソフトウェアバージョンを要求するクラスタの場合、不具合の修正や機能追加のためにバージョンアップを実施する際には、全ノードを同時に再起動しなければならない。しかし、Dell DX6000シリーズのように、ノード間で異なるバージョンを許容できるなら、1台ずつ順番にノードの再起動をかけられる。これにより、バージョンアップのスケジュールを無理なく設定でき、サービスへの影響も最小限に抑えられる。
桂島氏は、Dell DX6000シリーズの特徴と照らし合わせながら、昨今のスケールアウト型ストレージについて「最近では、ストレージの基本アーキテクチャとしてクラスタ構成によるスケールアウト型を採用するものが続々と登場しています。これまでクラスタ構成といえば、均一な性質を持ったノード群が密に結合したものを指していましたが、今後はノード間を緩く結合させることで、シンプルさとスケーラビリティを両立したものが増えていくでしょう。例えば、Hadoop Distributed File Systemのような分散ファイルシステムが良い例ですし、異なるソフトウェアバージョンを混在させられるDell DX6000シリーズも、同じような思想に基づいた製品といえます」と語っている。
■階層型のネームスペースを提供する従来型のストレージシステム
ストレージ内のデータを管理するには、何らかのネームスペース(名前空間)が必要だ。従来型のストレージシステムでは、ディレクトリ(フォルダ)に基づく階層型のネームスペースを用意し、個々のファイルに対して「場所に基づいた」IDが割り振られる。
例えば、「/MYFILES/MYFOLDER2/MYFOLDER3/MYFOLDER4」という階層下に「MAP.JPG」という画像ファイルが配置されている場合、そのファイルに割り当てられるユニークなIDは「/MYFILES/MYFOLDER2/MYFOLDER3/MYFOLDER4/MAP.JPG」といった形になる。
そして、ファイルが最終的に保管されるディスクドライブは、ブロックレベルでデータの位置を管理している。このため、ファイルを1個または複数にわたるブロック群にマッピングする操作も欠かせない。通常、ストレージ内のデータ管理に使用されるファイルシステムは、これらの操作(階層型のネームスペースとファイルからブロックへのマッピング)を包括的に提供する役割を果たしている。
DAS(Direct Attached Storage)やSAN(Storage Area Network)環境のストレージは、コンピュータ上で動作するOSがファイルシステムを持つことで、ストレージ上のデータを管理している。コンピュータとストレージ間は、Fibre ChannelやSAS(Serial Attached SCSI)、iSCSIなどを通じて、ブロックレベルでアクセスが行われる。
一方のNAS(Network Attached Storage)は、ストレージ側で自前のファイルシステムを持ち、コンピュータからストレージへのアクセスにはNFSやCIFSなど、ファイルレベルのストレージプロトコルが用いられる。
さらに、エンタープライズクラスのストレージシステムでは、ブロックレベルとファイルレベルのストレージプロトコルを同時にサポートする製品も多い。このようなケースでは、コンピュータ側でもストレージ側でも自前のファイルシステムを持ち、仕組みは少々複雑になる。ただし、ストレージにアクセスを行うコンピュータに対して階層型のネームスペースを提供している点に変わりはない。
■フラットなネームスペースを提供するオブジェクトストレージ
オブジェクトストレージでは、複数のストレージノードに分散して配置されたデータ群を単一の巨大なストレージに格納しているかのように見せる。このような仕組みを提供するのが、階層構造を取り払ったフラットなネームスペースである。
Dell DX6000シリーズでは、ファイルを書き込むと、1個のユニークなオブジェクトとして扱われ、オブジェクトごとに128ビットのUUID(Universally Unique Identifier)が割り当てられる。いったんオブジェクトが保管されたら、それ以降はデリバリープロトコル、クラスタロケーション、そしてこのUUIDの組み合わせによってアクセスが行われる。
例えば、HTTP経由で「dx-cluster1.example.com」というクラスタロケーション上にある、「ABBFEA648C2697A56FD5618CAE15D5CA」というオブジェクトにアクセスする場合、「http://dx-cluster1.example.com/ABBFEA648C2697A56FD5618CAE15D5CA」と指定すればよい。UUIDは場所に依存しないため、オブジェクトの保管場所を異なるノードに移動したとしても、同一のUUIDでアクセスが可能だ。
オブジェクトストレージのネームスペースは、従来のファイルシステムからオブジェクトの配置を階層化する機構を取り払ったものに等しい。従って、この階層化機構をオブジェクトストレージに追加することで、従来のファイルシステムのようにアクセスする経路も追加できる。
実際、オブジェクトストレージならではのスケーラビリティと、従来のアプリケーションから直接アクセスできる利便性を共存させる目的で、オブジェクトストレージと階層化機構を組み合わせたファイルシステムも登場している。HPC向けのクラスタファイルシステムであるLustreやGPFS(General Parallel File System)がその代表例だ。また、Dell DX6000シリーズにおいても、NFSやCIFS経由でアクセスできるようにするゲートウェイ製品が将来的にリリースされる予定である。
桂島氏は、オブジェクトベースであるDell DX6000シリーズのメリットについて「従来のファイルシステムは、ファイルのロック管理など、排他制御のための機構を提供していますが、オブジェクトベースのDell DX6000シリーズにはそのような機構がありません。データベースのようなものが主流だった従来のストレージには排他制御が不可欠でしたが、動画や写真をどんどんストレージに放り込んでいくような用途では、もはや排他制御を必要としません。だったら、Dell DX6000シリーズのほうが簡単に作られているぶん、高いスケーラビリティや低コストなど、さまざまな恩恵に与れます」と説明する。
■きめ細かなデータ管理とアプリケーションからの活用を支えるメタデータ
オブジェクトストレージにおいて、フラットなネームスペースと並んで特徴的なのがデータ管理のための豊富なメタデータである。
ファイルシステムでは、ファイルの作成日時、所有者情報、アクセス権限など、最低限のメタデータのみを付加できる。しかし、アプリケーションからのデータ活用(検索、分析、配信など)をいっそう進めていくには、そのアプリケーションもしくはオブジェクトを共有するすべてのアプリケーションに最適なメタデータを持たせたい。
例えば、レントゲン写真であれば、患者の名前、病院内での患者ID、診療した医師の名前、診療日時、診療した病院名などをメタデータとして付加することにより、そのレントゲン写真を使用する複数のアプリケーションから活用しやすくなる。
従来のファイルシステムでは、個々のファイルに豊富なメタデータを付与するためにリレーショナルデータベース(RDBMS)と連携させたりしているが、システム全体がどうしても複雑になりがちだ。そこで、オブジェクトストレージでは、オブジェクトそのものに豊富なメタデータを持たせることで、細やかなデータ制御と活用を可能にしている。
Dell DX6000シリーズは、後編で取り上げるオブジェクトの信頼レベルやデータ保管を制御するメタデータに加え、ユーザーが自由に使用できるカスタムメタデータを用意している。カスタムメタデータは、Dell DX6000シリーズで定められた命名規則に基づいてユーザーが自由に定義できる。ユーザーが独自のアプリケーションを開発する際には、このアプリケーションの中でカスタムメタデータをきめ細かく定義していけばよい。
なお、Dell DX6000シリーズ上で細やかなメタデータを打つためには、アプリケーションからSCSP(Simple Content Storage Protocol)経由でアクセスする必要がある。SCSPは、RESTfulな実装をベースとしたHTTPのサブセットだ。つまり、利用面からいえばHTTPそのものといってもかまわない。
SCSP経由のアクセスは、ブロックレベルのストレージプロトコルほど高速ではないが、数十KBから数百KB程度の小さなデータでも、かなり高速にアクセスできるように設計されている。このため、動画や音声のような巨大なオブジェクトだけでなく、文字情報や小さな写真など、サイズの小さなオブジェクトにも柔軟に対応できる。
オブジェクトストレージでは、ファイルの属性情報を豊富に付与できるメタデータベースの機構が充実している。豊富なメタデータは、アプリケーション上からデータを活用する際に大変役立つ |
後編では、Dell DX6000シリーズのデータ保護機構、クラウドストレージを意識した新機能、ソフトウェアベンダー(ISV)とのパートナー関係などについて取り上げる。