設計、運用、日々改善~Open Compute Projectに見るFacebook流アプローチ~

Facebookを中心として始まった「Open Compute Project⁠⁠。これは高効率なデータセンターを構築するために設立したプロジェクトです。今回、Open Compute Projectに関して、Facebook社Group Program Manager、John Kenevey氏と、Hardware EngineeringのシニアマネージャMatt Corddry氏にインタビューしたのでその模様をお届けします。


Open Compute Project(以後OCP)は、2011年4月にFacebookが提唱して始まった、高効率なデータセンターを構築するために必要な建物や機器の設計を公開し、共有するプロジェクトです。その目的はオープンソース・ソフトウェアの手法にのっとって公開された設計をより優れたものに磨いていくことにあります。

OCPはもともとFacebookの中で始まったプロジェクトであり、今でもFacebookは主要なメンバーです。OCPサイトのタイトルに謳われているフレーズ「Hacking Conventional Computing Infrastructure」からもFacebookと共通のHack精神写真1が感じられますね。2013年1月にはオープンコンピュートプロジェクトジャパン(OCPJ)が発足しています。

取材は2013年4月、Menlo ParkにあるFacebook本社にて行われました写真2⁠。応えてくれたのはGroup Program ManagerのJohn Kenevey氏と、Hardware Engineeringのシニアマネージャ、Matt Corddry氏です。

2人はとてもざっくばらんに、なんでも話す人たちでした。彼らのざっくばらんな話しかたを再現するために、以下の訳文も口語的なままにしておきます。なお今回の取材は、ビットアイル総合研究所の伊藤正宏さんに協力いただきました。いつもありがとうございます。

写真1 キャンパス内風景。The Hacker's Companyと掲げられています。ここは元Sun Microsystemsのキャンパスでビルは同じながら渡り廊下とその構造を大胆に赤く塗ることでぐっとモダンな印象になっている。
写真1 キャンパス内風景。The Hacker's Companyと掲げられています。ここは元Sun Microsystemsのキャンパスでビルは同じながら渡り廊下とその構造を大胆に赤く塗ることでぐっとモダンな印象になっている。
写真2 本社(Menlo Park キャンパス)入り口前。右手に良いねサインのタイトルが見える。偶然かあたりまえか、目の前はTesla S。ガレージには電気自動車がいっぱい。
写真2 本社(Menlo Park キャンパス)入り口前。右手に良いねサインのタイトルが見える。偶然かあたりまえか、目の前はTesla S。ガレージには電気自動車がいっぱい。

業界を変える

まずJohnに、2年に及ぶOCPの活動について聞きました。

写真3 John Kenevey氏。
写真3 John Kenevey氏。
  • John Kenevey(以後J⁠⁠:そう、4月7日はOCP 2周年の日でした(本取材はその翌週に行われました⁠⁠。

    2年前、CEOマーク・ザッカーバーグと我々のラボは我々にとって最初の専用データセンター、Prinevilleデータセンターをオープンソースで設計しようと決めたのです。4月から6月にかけてじっくり検討してみると、⁠おい、こりゃちょっと馬鹿っぽいぞ、俺たちは業界をもっと良いところにシフトできるぜ[1]⁠」となりました。コストは1/10、電力消費も下げられると。

    結果、CAPEX(長期修繕更新費用)は25%程度に、電力消費は24%にまで下がりました。我々はこれを公開して、業界のメトリクス(数的指標)をこのレベルにシフトしようとしたわけです。これがまず成功した部分だね。実際、できあがったPrinevilleのPUEは1.07で、当時トップレベルでした。

いま、OCP/FacebokやGoogleなどがサーバをメーカから買わず自己調達することでPCハードウェア業界に変化が起きています。

Johnはしかし PC 業界だけでなく、設備や建設業界の変革についても取り組んでいる、と言います。

  • J:建設産業は成熟した業界で、米国では少数の大企業によるエコシステムがある。彼らはビルディングを作る。レンガと水(の世界)で、⁠我々とは)マインドセットが違う。しかし物事はデジタルになりつつあり、彼らはデジタル・マインドセットを組み入れなければならない。Prinevilleでは、建設チーム、メカ、電気のエンジニアが一緒に働いた。まったく違うエンジニアたちがいっしょに仕事をしてエネルギー消費やコストについて解決したんだ。

たしかに大型のコンテナ型データセンターなどは、従来的な建物に較べて建築物の重要性やその価値がとても低くなっています。しかし、建物の重要性は下がっても、そこにあるのはただの箱ではなく、温度や電力についてとても洗練された管理システムをもち、サプライチェインと密接につながっているものです。Johnは建設業界の誰もがこうしたエリア、つまり洗練された管理システムが重要な意味をもつ施設に今後はフォーカスすべきだ、というわけです。

データセンターはコンピュータだ

続いてMattに技術的なことを質問しました。

2011年末に、やはりFacebookのOCPチームの1人であるVeerendra Mulay氏がデータセンター内でのサーバ電源部の結露に関するレポートを出しています。筆者はこれを示しながら、どのようにこうした複雑で、予期しない問題を解決するのか尋ねました。

写真4 Matt Corddry氏。
写真4 Matt Corddry氏。
  • Matt Corddry(以後M⁠⁠:Veerendraはこのとき一体何が起きているのだろうと調べあげて、最終的に電源内部に耐水性のコーティングを施すことにしたんです(内側にですか?⁠⁠。ええ、これは実際よく行われていることなのです。たとえば車載用コンピュータなんかだと。⁠ああ!⁠⁠ これで電源における結露のリスクを減らしたうえで、運用効率をさらに改善することになった。

  • J:我々はデータセンター設計のチーム、建設のチームと密に連携して仕事をしてる。Veerendraはビルディングの温度管理の問題をラックの中のサーバで見たわけだ。そこで彼はビルのオペレーションモードや空調機を調整して調べていた。彼は「データセンターはコンピュータだ」といって、全体から機器の細部まで見る[2]んだ。

  • M:まったくそうだね。

    だから彼はビル全体の管理システムのチューンもやる。建設チームがビルのオペレーティングモード、ファン、ダンパー、ミストシステム[3]を変えて、これが二度と起きないようにしたんだ。

写真5 Open Compute Projectのタイトルイメージが廊下の壁に描かれていた。
写真5 Open Compute Projectのタイトルイメージが廊下の壁に描かれていた。

直しながら進む

  • M:とても重要なことがある。例外的なリスクを除いて、我々はとても早く設計をやるんだ。ある種の受け入れがたいリスクについては、設計に必要なレッスンを受ける時間が無いので我々は設計変更ができないけれど、それ以外のものについてはアグレッシブな設計をやるんだ。そうでなければコストや、効率を設計によって半分(あるいは倍)にするなんてことは不可能だ。だからある程度のリスクはとる。その業界では普段やらないようなね。

    我々が作ったデータセンターはその例だ。とても低コストで、とても効率が良い。しかしある状況では問題が生じるリスクはある。もしそれに直面したら、我々はそれを直して、学んで、次に行くんだ[4]⁠。

  • 筆者:Prinevilleデータセンターは全体で1ホールなのですか?

  • M:いえ、9MW容量の部屋が、ビル1つに4つあると思います。キャンパスには2つのビルがある。

  • 筆者:ダンパーやファンといった機構については、部屋ごとに独立しているんですよね?

  • M:ええ。ただペントハウスは2つの部屋で共有していたんじゃないかな。

  • 筆者:とにかく複数の部屋が独立して(隔離されて)いるのなら、そのうち1つを使ってよりアグレッシブなセットアップを試せるんじゃないですか?

  • M:そのとおり。できるし、また我々はときどきやってる。新しい制御アルゴリズムや新しいデザインアプローチを部屋1つ分、あるいはビル1つ分に対して試す。他にも我々はいつも新しい設計を試してるし、改善しようとしてる。

    たとえば、PrinevilleではRO(逆浸透膜濾過)のプラントを作ってミストシステムのノズルが詰まらない純水を作っていたけれど、ノースカロライナ(彼らの2番目のデータセンター)では水を落とすパネルを試してる。そこには噴霧ノズルがないから(コストのかかる)RO設備も必要ないんだ。

サーバの設計

  • 筆者:サーバを設計するといっても、Intelのプロセッサは世代ごとに「いいところ」が変わってしまうでしょう。ある世代ではピークパフォーマンスが優先され、ある世代では電力効率に力が入っている。どうやってデザインを決めるんですか?

  • M:我々はIntelととても近いところでやっていて、プロセッサがリリースされるより前からテストしています[5]⁠。あるTCO(Total Cost of Ownership)でどのくらい働くものができるかを見てますね。Intelや他のプロセッサベンダの可能性のある異なるソリューションをすべて比較して選んでいます。

    その一方で、我々はどんなプロセッサを必要としているか、といった情報をたくさんIntelに提供しています。我々のような顧客は将来のIntelのCPUデザインにも影響を与えていると思います。つまり、プロセッサでどんなワークロードがかかってるか知ることで、将来の彼らのプロセッサのスピード、キャッシュ(の量⁠⁠、フロントサイドバス、メモリコントローラの能力などが需要にミートすることを確実にできますからね。

  • J:Intelから見れば、Facebookはマーケットにおける先行指標(leading indicator)と考えることができる。我々が今後どこへ向かうか、といったことを見れば、すべてのシリコンメーカにとって5年先のモデルになるから。

  • 筆者:うーん。ハードとソフトの設計について考えてしまいます。たしかにあなた方はとてもよくソフトとハードが結び付いたユーザでしょうね。ほとんどのソフトウェア会社はサーバを設計しないし、ほとんどのサーバ業者はソフトウェアを書かないから。

  • M:それはとてもいいポイントだ。聞かれるんだよ。なぜ我々がHPより良いサーバを作れるんだ?と。たしかに、HPはとても良い設計チームを持ってる。我々のチームよりよほど大規模なね。

    しかし我々は(扱うべき)問題を知ってるし、⁠動作する)環境を知ってる。そして、我々はソフトウェアチームとも、データセンターチームとも毎日一緒に仕事をしてる。我々のデザインプロセスでは「良いサーバ」を作ってるんじゃない。そのサーバは「我々にとって良い」ものなんだ。

写真6 OCP Ver.3サーバ
写真6 OCP Ver.3サーバ

5つのデザインスタンダード

こうなるとその先についても興味が湧いてきます。

  • 筆者:もう少し詳しく教えてください。ソフトとハードのコンビネーションについて。⁠いいとも)

    ハードウェアとソフトウェアはその寿命において違いがあるはずです。ソフトウェアは簡単に更新できるけれど、ハードウェアはおらく2、3年は使うはずです。どうやってハードウェアのスペックを決めるのですか?つまり、どうやって将来予測に合わせたハードとソフトのコンビネーションを決めるのでしょう?

  • M:我々はソフトウェア設計のシニアアーキテクトととても近く仕事をしてます。ソフトウェアアーキテクトと僕のハードウェアチームは、業界がどう進んでいくかを見て将来の設計のフォーカスをどこに置くかを選択するんです。ソフトウェアはとても細かく毎日修正するといっても、全体の設計はそう急には変わらないからです。

    Facebook はまさにそうやって作られたんだ。はじめPHPで書かれたけれど、まだ変わっていない。MySQLで始まって、たぶんまだ変わっていない。少しずつ変えていくんだ。

  • 筆者:いい話ですね。

  • M:我々はとても広範囲なデザイン、Facebookのデザインパターンとでも言うべきものをターゲットとしている。これをソフトウェアアーキテクトとハードウェアアーキテクトの両方が、3年先を見てどんなデザインパターンをターゲットとすべきかを決めるんだ。

    また我々はFacebookのトップ5のソフトウェアチームと一緒に作業していて、ハードウェア設計はこの5つのユースケースでうまく働くように作る。つまり、5つのデザインスタンダードを作り、Facebookの各ソフトウェアチームはこの5つのデザインから選んで自分達のアプリケーションを動作させるんだ。そして、彼らが何を必要としているかも問題ですが、我々もまた彼らのアプリケーションを十分にモニタリングしています。

    たとえばソフトウェアの人が来て「メモリがもっと欲しい」と言っても、我々はまず扱うデータの種類やアクセス頻度、必要なアクセス速度などについて考えます。つまりFlashカードはキャッシュでとてもうまく働くから、ソフトウェアの人が「テラバイトのメモリ(主記憶)が欲しい」と言っても、僕はそれに対して「64GBメモリと1TBの Flashを出すよ」と答えたりするわけです。

    これは1/10の価格でできることで、また多くの場合はこれでとてもハッピーです。ソフトウェアを少し変えて、メインメモリではなくFlashを使うようにして、それでFacebookにとってはより良い結果が出る。これも(コンビネーションの)1つの例だね。

    彼らが我々に「これが欲しい」と頼むのではなく、彼らが必要としているものに合わせて設計するんだ。

写真7 本社入り口前にあるタイトル
写真7 本社入り口前にあるタイトル

おわりに

最後にJohnは、実際にFacebookがPrinevilleで建設業界とIT業界のエンジニアが一緒に作業をしたことが1つの指標となった例があると教えてくれました。つまりある建設会社ではファシリティの人間を再編成して、ITの人達を同じ部署に入れて効率の良いモジュール型データセンターを構築している、というのです。この種の変化は建設業界に限らず設備を持っている会社すべてで起きうるはずで、CIO(最高情報責任者)あるいはCOO(最高執行責任者)といった「C-レベル[6]⁠」で認識すべきだ、と。

思わず「なるほど、しかし大変そうだなあ」と返事すると、Johnはこれを東海岸のとても保守的な会社で見たんだ、彼らは我々(Facebook)をインジケータとして変わったんだ、と言います。この「業界」をリードし、変える、といった野心的な視点といい、小さなチーム(Matt曰く「バス1台分⁠⁠)で最初に挑戦的な設計を試して動かしながら日々修正し・更新する態度といい、彼らのアプローチからはやはりFacebook全体に通じる「流儀」を感じます。それが彼らを大きくしてきたのだし、大きくなったからOCPのような活動が大きなインパクトを与えるようになったのだと思います。

筆者は、ここ何年かでFacebookやGoogleのような巨大なサービス企業がコンピュータ業界のありようを大きく変化させており、我々はまさにこの変革に立ち会っているのだと考えています。OCPの1つ興味深いところは、こうした大変革の中心部を、企業の外に居る我々が直接的に見られることでしょう。

オープンソースの価値はさまざまな側面で語られますが、今回の取材を通じてこの「誰もがそれに立ち会える」部分がとても重要であることを感じました。我々はそんな時代に生きているのですね。

おすすめ記事

記事・ニュース一覧