クラウド&データセンター完全ガイド:特集

本格稼働するオブジェクトストレージサービス

さくらインターネットのオブジェクトストレージへの取り組み――さくらのオブジェクトストレージサービス(仮)

さくらのオブジェクトストレージサービス(仮)

さくらインターネット

 さくらインターネットでは、2013年の秋に新たなオブジェクトストレージのサービス提供開始を予定している。現時点ではまだ詳細な発表は行われていないが、サービス提供開始に当たって、さくらインターネットのオブジェクトストレージサービスの展開についての概要を紹介する。

RAIDの限界

 さくらインターネットで、オブジェクトストレージ導入の経緯としてまず挙げたのが、RAIDによるデータ保護の限界だった(さくらインターネット研究所 所長 鷲北 賢氏)。

 RAIDは、信頼性の低い安価なディスクドライブを多数集めることで、個々のドライブの最大容量を超える大サイズのボリュームを作り出し、かつ高い保護レベルを実現する。長い実績を持つ枯れた技術であり、特にRAID 5以上のレベルであればドライブの容量効率や保護レベル、I/Oパフォーマンスなどの面で十分満足できる水準に達していると一般に認知されている。しかし、RAIDは完璧なのかといえば、そうではない。データセンターのような膨大な数のシステムを運用する環境であれば、RAID起因のトラブルで、大変な苦労をした経験があることは珍しくはないだろう。RAIDの最大の弱点は、コントローラーの障害だ。多数のディスクドライブを一元的に管理するRAIDコントローラーが障害を起こせば、最悪の場合は全データ喪失に繋がる重大トラブルになり得る。データを失わないまでも、対応完了までの時間、そのシステムが稼働停止することは避けられないため、サービスレベルで無停止を保障しようと思ったら、システム全体を二重化/多重化して備えるしか手はない。これは単純に投資額の増大に繋がり、最終的にはユーザーが負担するサービス利用価格を押し上げる要因になる。

 また、RAIDによるデータ保護は無制限ではなく、同時多発的な障害には耐えきれないこともあり得る。たとえばRAID 5の場合では、アレイを構成するディスクドライブのうち1台が故障してもデータは失われず、運用も継続できるが、この状態でさらにもう1台のディスクドライブが故障したら全データ喪失になる。ほぼ同時に2台のドライブが相次いで故障する確率は極めて低い、という考え方もあるが、実際には1台が障害を起こしたことが引き金になって次々と障害が連鎖することはさほど珍しいことではない。アレイを構成するドライブはたいていは同一ロットで、製造時期も同じなので寿命も似たようなもの、という理由もあるし、1台が障害を起こしたことで他のドライブの負荷が高まり、それが次の障害に繋がる場合もある。障害を起こしたドライブをアレイから取り除いて新しいドライブに交換し、アレイの再構築を行う場合はアレイの全ドライブに対して膨大なディスクI/Oが発生することになるので、これが連鎖障害に繋がることもある。アレイの再構築中にもう1台が障害を起こせば、その時点で全データ喪失になるので、適切なバックアップが取られていない状態でアレイの再構築に取り掛かるのは自殺行為だともいえる。

 このように、RAIDによるデータ保護はいわば「障害を起こしたディスクドライブを即座に発見し、交換することが前提で、その交換完了までをしのぐためのもの」といえる。もちろん、RAID 5以上の保護を提供するために同時2ドライブの障害まで保護可能なRAID 6なども広く利用されているが、弱点を根本的に解消したとまではいえない。そのため、RAIDアレイを活用する場合、無停止が求められる重要なサービスを担うストレージの場合には、ミラーリングなどによる二重化が必要になり、その分までを含めて容量効率を考えれば、実は意外に容量効率が低く、高コストなソリューションだという評価もできる。

 もちろん、RAIDにも強みは多くある。多数のディスクドライブを並列動作させることで高いI/Oパフォーマンスを実現している点は、オブジェクトストレージでは容易には代替できない強みであり、データベースなどを稼働させるプラットフォームとしては、今後も使われ続けることになるだろう。ただし、こうしたRAIDの高いI/O性能を必要としない用途もあるので、その場合はむしろオーバークオリティであり、コストを押し上げる問題とみることもできる。

クラウドで望まれる高効率ストレージ

 仮想化やクラウドサービスの普及によってサーバーのコストは大幅に下がった。一方、ストレージは従来のRAIDを利用する限り相対的に高コストなままで、サーバーと歩調を合わせてコストが下がっているわけではない。そのため、クラウド環境を前提にすれば、サーバーと同様に安価に利用可能なクラウドストレージが求められることになる。こうした需要に応えるように出現したクラウド型のストレージサービスやオブジェクトストレージは、RAIDとは異なるアプローチでデータ保護を実現し、用途に見合った十分なレベルのパフォーマンスと信頼性をコストを抑えて提供することに注力している。

 RAIDの限界を超える別のアプローチとして分散型NASも広く使われているが、この場合はデータ保護のための仕組みとしてブロック単位での重複書き込みを行う。単純に言えば、同じデータのコピーを複数のドライブに分散して書き込んでおくことでドライブ障害に備えているわけだ。この場合、容量効率はコピーの分だけ低下する。2重コピーなら物理容量の半分、3重コピーなら物理容量の3分の1が有効データ容量となるわけだ。複数ドライブの同時障害まで考慮し、一般的には3重コピーが使われる例が多いため、容量効率面から考えれば分散型NASは高コストなソリューションということになるが、一方でRAIDでは実現しにくいエラスティックな容量の増減などに対応できる点ではクラウド向きの特性も備えている。

 こうした既存技術の得失を検討したうえで、さくらインターネットではオブジェクトストレージをサービス化して提供開始することを決定した。技術検討自体は数年前から開始されており、さまざまなオブジェクトストレージソフトウェアを比較検討したそうだが、なかなかこれといった候補がなかったところ、最終的にAmplidataの採用が決まった。現在は正式サービス開始に向けてまず社内にテスト環境を構築し、検証を兼ねた社内利用が始まっている段階だ。ただ、使い始めてみると問題点も見つかるなどしたため、正式サービス開始に向けた準備作業がいつ完了し、いつから正式にサービスインできるかなど、詳細なスケジュールに関してはまだ明言できる段階ではないという。有償サービスとして提供されることは確実なようだが、サービスの価格体系やサービス名称などについても現時点ではまだ未確定である。

 さくらインターネットがAmplidataを採用した理由は、主にAmplidataが採用する“イレージャーコーディング(Erasure Coding)”の効率性にある。Amplidataの中核技術である“BitSpread”は同社が「次世代型イレージャーコーディング技術」と位置付けるもので、極めて高いデータ堅牢性と、ビッグデータを意識した大容量ストレージシステムでの適用性を誇る。また、ユーザーによって柔軟な設定変更が可能で、データを分散させるドライブ数(通常は16〜20ドライブ)、同時発生ドライブ障害(4、6、8ドライブ/モジュール)、データ分散の範囲(ドライブ単位、モジュール単位、ラック単位)、サイトレベルでの地理的分散の指定、などが変更可能だ。基本的な考え方は、オリジナルのデータを複数のブロックに分散したうえで、各ブロックに冗長符号を付与することで、いくつかのブロックが失われた場合も残ったブロックから欠落データを復元し、オリジナルのデータを回復できる、というもので、ビットエラーに対応するためのCRCやECCなどとよく似た考え方に基づいている(図1)。機能面で単純に比較すれば、RAID 6が同時2ドライブ障害まで対応可能なのに対し、AmplidataのBitSpreadでは同時8ドライブ以上の障害にも耐えうるという。

図1 イレ-ジャーコーディングの概念(出典:Intel)

 冗長符号の付加によってストレージ使用量がどの程度増加するのかについてはAmplidataのサイトを見ても明確な記述が見つからないのだが、常識的に考えて元のデータの倍に達するとは思えないので、2重コピーよりも少なく、1.x倍に増大するというレベルに留まるものと推測される。つまり、容量効率の点では十分許容範囲に収まり、かつデータ保護レベルはRAID以上に高くなっているのに加え、容量の制約が緩く、必要に応じてストレージ容量を随時追加して容量拡大を図っていくような用途にも対応しやすいなど、RAIDよりも圧倒的にクラウド環境に適合しやすい技術であることは間違いないだろう。

 さくらインターネットでは、RAIDのコスト高の問題や、意外に低いデータ保護レベルなどの問題を解消し、クラウドサービスのユーザー向けに魅力のあるストレージサービスを実現するためにAmplidataを選択したわけだ。

オブジェクトストレージのサービス概要

 さくらインターネットが具体的にどのようなサービスをいくらで提供するのか、具体的な情報はまだないが、システムは同社の石狩データセンターに設置/運用され、一般的なAPIを介してアクセスするタイプのオブジェクトストレージとなる予定だ。このため、データベースなど既存のエンタープライズソフトウェアから直接アクセスするデータのためのストレージとして使うのは難しいが、アーカイブデータの保存など、大量の静的データの置き場所としては、コスト面も合わせて魅力的な選択肢となりそうだ。容量的にはペタバイト単位のストレージを準備できる予定だということで、ログデータなどの増える一方のデータを保存することが考えられる。ビッグデータが話題のキーワードとなり、従来は一定期間後に消去していたようなデータも、すべて無期限に保存する動きも出てきていることから、こうしたストレージサービスに対する需要には大きなものがあると思われる。