このページの本文へ

前へ 1 2 次へ

OSSの分散ストレージ「Sheepdog」を国内初採用、その理由とは

“とんがった技術者”が生んだ月額制プライベートクラウド

2014年04月28日 09時00分更新

文● 大塚昭彦/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

 エーティーワークスが提供する「レンタルプライベートクラウド」では、国内の商用サービスとして初めて、オープンソースの分散ストレージソフトウェア「Sheepdog」を採用している。先進的なテクノロジーを積極的に取り入れるそうした姿勢の背景には何があるのだろうか。今回は、エーティーワークスのCTOを務める辻正博氏、Sheepdogの開発に携わるNTTソフトウェアイノベーションセンタの森田和孝氏と三嶽仁氏に話を伺った。

サーバー5台から使える専有クラウド、ストレージが大きな課題に

 エーティーワークスが提供を開始した「レンタルプライベートクラウド」は、ホステッド型/月額料金制の低価格なプライベートクラウドサービスだ。

「業界最安値」を謳うエーティーワークスのレンタルプライベートクラウドは、ホステッド型/月額料金制で、小規模構成から使えるクラウドサービスだ

 サービス基盤は、同社が開発するクラウド向けx86サーバーと、Linux標準の仮想化基盤「KVM」や分散ストレージ、独自開発のGUIコントロールパネルで構成されている。ユーザーは、専有環境内でいつでも自由に仮想サーバーを立ち上げることができ、仮想サーバーを何台立ち上げても利用料金は一定額。専有環境なので、必要に応じて柔軟に物理リソースを追加できる点もうれしい。

 さて、このレンタルプライベートクラウドでは、「物理サーバー5台=月額5万円から」という小規模な構成で利用できることも大きな特徴となっている。「最小5台程度からのスタートというのは、サービス検討の最初期から考えていました」と、エーティーワークスでCTO(最高技術責任者)を務める辻正博氏は語る。

 「2年ほど前から、仮想化基盤を提供するサービスの検討と開発を始めました。それまでに顧客から寄せられていた要望を考え、おそらく『小規模な構成から始めたい』というニーズが高いだろうと予想しました」(辻氏)

エーティーワークス 取締役 CTO プロダクト開発本部 本部長 辻正博氏。同社でソフトウェア、ハードウェア両方の開発を支える

 エーティーワークスではこれまで長年にわたってホスティングサービス「at+link」を提供しており、辻氏ら技術チームも顧客ニーズを熟知している。この新しいサービスでも、顧客ニーズに基づいて小規模な構成から利用できることが大前提となった。

 だが、サービスの検討を進めるうちに、辻氏らは大きな課題に突き当たることになった。ストレージだ。

 「サーバー5台構成という最小規模を前提にすると、ストレージ専用機を使うにはバランスが悪い」(辻氏)

 仮想化/プライベートクラウド環境では、外部接続型の共有ストレージ専用機(SANストレージ)を採用するのが“定石”である。辻氏らも、当初はiSCSIストレージを採用しようと考えていた。だが、ストレージ専用機はローエンド製品でも高価であり、サーバー5台程度の規模で専用機を採用すれば、コストバランスが大きくストレージに偏ってしまう。

 さらに、拡張性の面でも問題があった。導入する筐体によってストレージ容量の上限が決まってしまうため、後からユーザーが大幅に容量を拡張したいと言っても要望に応えられない可能性がある。しかし、最初から拡張性の高いハイエンド機を購入すれば、初期投資が数百万~数千万円と非常に高くついてしまう。

 企業が自社向けのプライベートクラウドを構築するケースならばともかく、これでは月額制/ホステッド型の手軽なサービスとして提供するのは困難だ。そのため、サービス検討過程では、月額のサーバーレンタル料金とは別に「ストレージは顧客に購入してもらうという案も出た」(辻氏)ほどだった。

 そんなとき、辻氏は以前から注目していた分散ストレージ「Sheepdog」の採用を思いつく。そして、最終的にはこれが、ストレージも含め月額制で柔軟な構成のできるレンタルプライベートクラウドサービスを実現する決め手となるのだった。

クラウド環境向けに開発された分散ストレージ「Sheepdog」

 Sheepdogは、オープンソースの分散ストレージソフトウェアだ。2009年初頭、NTTソフトウェアイノベーションセンタの森田和孝氏が中心となって立ち上げ、現在もコミュニティベースで活発に開発が進められている。

 「2009年当時、クラウドコンピューティング関連の技術がコモディティ化し始めていました。ちょうど新しい研究テーマを模索していたときだったので、クラウド環境(IaaS)に特化した新しいストレージシステムを作ろうと考え、Sheepdogの開発プロジェクトを立ち上げました」(森田氏)

NTTソフトウェアイノベーションセンタ 分散処理基盤技術プロジェクト 研究員の森田和孝氏。Sheepdogプロジェクトを立ち上げ、現在は開発版ツリーのメンテナを務める

 具体的な開発目標は、SANストレージの代替となるソフトウェアベースのストレージシステム。それも、ストレージの専門技術者でなくとも容易に運用管理ができて、サーバーの追加だけで自在に容量を増やせるような、そうした柔軟な技術が目標だと、同じくNTTソフトウェアイノベーションセンタの三嶽仁氏は説明する。

NTTソフトウェアイノベーションセンタ 分散処理基盤技術プロジェクトの三嶽仁氏。Sheepdogプロジェクトでは安定版ツリーのメンテナを務める

 「Sheepdogでは、オペレーターがどうにかするのではなく、ソフトウェア側で運用を容易にしようというアプローチをとっています」(森田氏)

 それではここで、Sheepdogの仕組みと特徴を見てみたい。

 Sheepdogは、複数のサーバーが内蔵する物理ディスクを仮想的につなぎ合わせてストレージプール化し、KVM上の仮想マシンに任意のサイズの仮想ディスク(ブロックデバイス)を提供するソフトウェアである。仮想ディスクに書き込まれたデータは、一定のサイズに分割されたオブジェクトとして、各サーバー上の物理ディスクに分散保存される。

 一般的なストレージと同様に、スナップショット(世代管理)機能やライブマイグレーション機能を利用することができる。耐障害性を高めるため、1つのオブジェクトは複数のサーバーに冗長保存されており、どこかのサーバーで障害が起きた場合は自動的にリカバリ処理が行われ、サービスが維持される。

Sheepdogの構成(概要)。サーバーの内蔵ディスクを使って、KVM上の仮想マシンに仮想ディスクを割り当てる。仮想ディスクは容量可変で、スナップショット/クローンやライブマイグレーションなどのストレージ機能を備える。開発コミュニティでは、物理サーバー150台に各12ディスクを搭載した規模での動作も確認されている

 先述した開発目標のとおり、Sheepdogでは、事前のリソースプランニングが必要なく、新しいサーバーをクラスタに追加するだけで容量が拡張できるストレージ環境を実現している。

 「Sheepdogは、クラスタ内のサーバーがすべて同じ役割を果たす、完全対称型のアーキテクチャになっています。特別な役割を持つサーバーが存在しないので、サーバーの追加が簡単にできます。また、どれか1台が壊れても、単に壊れたサーバーを取り替えてやるだけでよいのです」(三嶽氏)

 オープンソースの分散ストレージソフトウェアはSheepdog以外にもあるが、例えば「Ceph」は特別な役割を持つサーバー(メタデータサーバー)が存在するため、運用や追加の作業も少し難しいと三嶽氏は指摘する。

 「最近になって、クラウド環境における管理容易性を重視したアプライアンス製品が注目を集めていますが、Sheepdogでは数年前からそれを目指し、実現してきました。今から振り返ってみても、とても正しいアーキテクチャ設計だったと思います」(三嶽氏)

技術検証中のトラブルを通じて「むしろ自信が深まった」

 現在、Sheepdogコミュニティには海外企業からも開発者が参加し、積極的に商用サービス/製品での利用を推進している。例えば、中国最大のECサイトであるタオバオ(淘宝)、仮想化管理ソフトウェアを開発するオーストリアのプロックスモックス、クラウドサービスを提供するイタリアのエクステンシスなどがそうだ。

 そして、エーティーワークスのレンタルプライベートクラウドが、日本で初めてSheepdogを採用した商用サービスとなった。辻氏は、このサービスの検討を始めるよりもずっと以前の2009年に、リリースされたばかりのSheepdogを検証していたと証言する。

 「それまで分散ストレージにはほとんど触れたことがなかったのですが、Sheepdogは何台かサーバーをクラスタ化するだけで簡単に使えました。これは使いやすいな、と思ったことを覚えています」(辻氏)

 このときは簡単な検証で終わったが、先述した新サービスの検討段階になって、辻氏はSheepdogの存在を思い出す。そしてそこから、森田氏や三嶽氏などSheepdogコミュニティとの関係を深め、新サービスでの活用に向けた検証を本格化させていく。

 もっとも、当時はまだ国内での商用利用実績がなく、辻氏もさすがに「最初は不安だった」と笑う。しかし、技術検証中に発生したあるトラブルがきっかけとなって、むしろ採用への自信を深めたと説明する。

 「Sheepdogでは、各ノード(物理サーバー)に分散保存されているオブジェクトの世代同期処理を行います。しかし、当時のバージョンではこの世代管理に問題があり、あるときSheepdog上のデータがまったく見えなくなってしまったのです。コミュニティに相談し、森田さんとも直接やりとりして、最終的には何とか復旧できました。後からこの復旧過程を振り返ってみると、シンプルな構造であるがゆえにトラブルに強く、最悪でもデータがなくなってしまうことはないと。そう理解できたので、むしろ安心して使えると自信を持ったのです」(辻氏)

 ちなみに、この世代管理のバグについては、エーティーワークスから開発コミュニティにバグ報告がなされ、現在のバージョンでは修正済みだ。プロジェクトとしても、商用環境で利用した際の課題やバグがフィードバックされるのは「非常に助かる」(三嶽氏)という。オープンソースコミュニティが本来あるべき、開発者と利用者の良好な関係が築けていると言えるだろう。

 「サービス規模が拡大してサーバー台数が増えると、ふつうならば運用が大変になり、オペレーションのミスにもつながります。しかし、Sheepdogではそうした悩みがありません。特に、小規模な台数からスタートする今回のようなケースにはとても適していると思います」(辻氏)

(→次ページ、より良いサービスのために、先進的な技術は貪欲に取り入れる)

前へ 1 2 次へ

カテゴリートップへ