Facebookを中心として始まった
Open Compute Project
OCPはもともとFacebookの中で始まったプロジェクトであり、
取材は2013年4月、
2人はとてもざっくばらんに、
業界を変える
まずJohnに、
John Kenevey
(以後J): そう、4月7日はOCP 2周年の日でした (本取材はその翌週に行われました)。 2年前、
CEOマーク・ ザッカーバーグと我々のラボは我々にとって最初の専用データセンター、 Prinevilleデータセンターをオープンソースで設計しようと決めたのです。4月から6月にかけてじっくり検討してみると、 「おい、 こりゃちょっと馬鹿っぽいぞ、 俺たちは業界をもっと良いところにシフトできるぜ [1]」となりました。コストは1/ 10、 電力消費も下げられると。 結果、
CAPEX (長期修繕更新費用) は25%程度に、 電力消費は24%にまで下がりました。我々はこれを公開して、 業界のメトリクス (数的指標) をこのレベルにシフトしようとしたわけです。これがまず成功した部分だね。実際、 できあがったPrinevilleのPUEは1. 07で、 当時トップレベルでした。
いま、
Johnはしかし PC 業界だけでなく、
J:建設産業は成熟した業界で、
米国では少数の大企業によるエコシステムがある。彼らはビルディングを作る。レンガと水 (の世界) で、 (我々とは) マインドセットが違う。しかし物事はデジタルになりつつあり、 彼らはデジタル・ マインドセットを組み入れなければならない。Prinevilleでは、 建設チーム、 メカ、 電気のエンジニアが一緒に働いた。まったく違うエンジニアたちがいっしょに仕事をしてエネルギー消費やコストについて解決したんだ。
たしかに大型のコンテナ型データセンターなどは、
データセンターはコンピュータだ
続いてMattに技術的なことを質問しました。
2011年末に、
Matt Corddry
(以後M): Veerendraはこのとき一体何が起きているのだろうと調べあげて、最終的に電源内部に耐水性のコーティングを施すことにしたんです (内側にですか?)。ええ、 これは実際よく行われていることなのです。たとえば車載用コンピュータなんかだと。 (ああ!) これで電源における結露のリスクを減らしたうえで、 運用効率をさらに改善することになった。 J:我々はデータセンター設計のチーム、
建設のチームと密に連携して仕事をしてる。Veerendraはビルディングの温度管理の問題をラックの中のサーバで見たわけだ。そこで彼はビルのオペレーションモードや空調機を調整して調べていた。彼は 「データセンターはコンピュータだ」 といって、 全体から機器の細部まで見る [2] んだ。 M:まったくそうだね。
だから彼はビル全体の管理システムのチューンもやる。建設チームがビルのオペレーティングモード、
ファン、 ダンパー、 ミストシステム [3] を変えて、 これが二度と起きないようにしたんだ。
直しながら進む
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はとても良い設計チームを持ってる。我々のチームよりよほど大規模なね。 しかし我々は
(扱うべき) 問題を知ってるし、 (動作する) 環境を知ってる。そして、 我々はソフトウェアチームとも、 データセンターチームとも毎日一緒に仕事をしてる。我々のデザインプロセスでは 「良いサーバ」 を作ってるんじゃない。そのサーバは 「我々にとって良い」 ものなんだ。
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つの例だね。 彼らが我々に
「これが欲しい」 と頼むのではなく、 彼らが必要としているものに合わせて設計するんだ。
おわりに
最後にJohnは、
思わず
筆者は、
オープンソースの価値はさまざまな側面で語られますが、