2010年8月24日火曜日

Top 10 Cloud Players-その10 
        -PUE1.1を目指すYahoo!の新データセンタ-

「米国クラウド十傑(Top 10 Cloud Players)」の10回目。
今回が一応、最後ということで、これまでと少し毛色は違うがデータセンターについて取りあげてみようと思う。データセンターというとすぐにGoogleだと思う人が多い。Googleのセンターは以前からエコ対応だがひとつひとつはそれ程大きくはなく、他と比べて数が多い。これは彼らの戦略によるもののようだ。おやっと思うかもしれないが、今回取りあげるのはYahoo!のデータセンタである。

◆第1世代から第4世代へ
1990年代末からの第1世代データセンターでは、電源や空調設備を持った器となるビルに機器を持つ込んで構築した。第2世代では工場でサーバーをラックに組み上げ、それをセンターに持ち込むようになり、第3世代ではそれらは省エネ、省スペースなどからコンテナーの中に組み込まれて、センターに持ち込まれるようになった。現在始まった第4世代型のデータセンターは、これらを加速し、さらに環境対策がテーマである。


◆災害対策から始まったコンテナー型データセンター

初期の「コンテナー型データセンター」は、災害対策用から始まったと言ってもいい。2005年8月、米観測史上最大のハリケーン・カトリーナがニューオリンズを襲って大災害となったことはまだ記憶に残る。公共機関や企業のコンピュータはもちろん、一般電話やインターネットもほとんどが麻痺し、やっと役立ったのは携帯電話ぐらいだった。その携帯電話も地上局の破壊や電源停止が多発して混乱状態となった。米携帯キャリアは、この経験を活かして、その後、移動型電話基地局や移動型発電設備などに多くの投資をしてきた。また連邦緊急事態管理局では、これを機に傘下の緊急対策センター向けに、トラック積載型の「モバイル・エマージェンシーデータセンター」を開発した。これはパラボラアンテナを搭載してインターネットや電話アクセスを確保し、トラックのエンジン発電とバッテリーで何台かの積載コンピュータを動かすものだが、廉価で用途も広く好評となった。


◆鳥小屋から学んだヤフーの超省エネ型データセンター

GoogleやMicrosoftを追って、Yahoo!やFacebook、そしてeBayも動き出した。Yahoo!が新設したデータセンターの外見は巨大な養鶏場だ。4棟並ぶうちの3棟には、両側にゆるやかに広がる屋根の上に養鶏場や工場などでみかける換気塔のような大きな2階部分がある。建物の中は確認できないが、ゆったりした空間にサーバーラックがとなりと十分な距離をおいて設置されているに違いない。コンテナー型データセンターでは、サーバーはラックに積み重ねられ、人が歩けるだけの通路を確保して、中には全ての機器が詰め込まれていた。工場生産のコンテナーをトレーラーで持ち込み、電源と冷却チラーを繋げば出来上がりだ。この方法は建設時間の短縮と災害対策には役立つが、これだけでは十分ではない。第4世代に入ると省エネが大きなテーマとなった。クラウドの登場によって、世界中のIT機器が集中傾向にあるし、原油の枯渇や大気汚染による地球温暖化などが叫ばれているからである。Yahoo!は多くを語らない。新データセンターは大きな建物全体に外気を取り入れて対流させ、それを屋上の換気塔から放出するフリークーリング設計で、冷却設備を持たない。場所はナイアガラ瀑布のすぐ近く、ニューヨーク州Buffalo郊外の町、Lockportである。


東京ドーム3つ分に匹敵する30エーカー(12万㎡)の敷地に、総工費1・5億㌦(約150億円)をかけた。ここでは完全な省エネを目指して、目標となるPUE値は、1・1以下だ。エネルギー効率を表す「PUE(Power Usage Effectiveness)」とは、分子をデータセンターで使う総電力(空調や照明などを含む)、分母はIT機器の消費電力として、割ったもの。端的に言えば、サーバーなどのIT機器以外にどれだけ余分な電力を使っているかを示す指数である。この値が限りなく「1」に近いということは照明も空調もないということを意味する。Buffaloは夏の盛りの7月や8月でも、昼は25度、夜は15度程度。この気候とナイアガラの廉価な水力発電を活用し、さらにサーバーのラック方法と建物内空気の流れに工夫を施した。目標通りの稼働が実現できれば世界最高水準のデータセンターとなる。

2010年8月18日水曜日

Top 10 Cloud Players-その9 
       -HadoopをサポートするCloudera-        

「米国クラウド十傑(Top 10 Cloud Players)」の9回目。
今回は並列処理のHadoopをサポートするClouderaを取り上げる。

◆ Hadoopをサポートするクラウデラ(Cloudera)

グリッドコンピューティングにとって並列処理は欠かせない。
グー グルで稼動する巨大な検索エンジンはまさに並列処理の塊だと言っていいだろう。基本となるGFSは高信頼分ディスクシステムであり、それの上で効果的に並列処理するのはMapReduceだ。そしてこのオープンソースクローンと してYahoo! Labが開発したのがHadoopである。その後HadoopはApache財団に寄贈されてプロジェクトとなり、2008年10月にはそのHadoopを商用でサポートするClouderaが動き出した。立ち上げたのはGoogle、Yahoo!、Facebookのシリコンバレー3人組である。そしてその3人を束ねてCEOとなったのはMichael Olsen氏 だ。Berkeley DBの組込み版SleepyCatのCEOだった人物である。

さて
HadoopではGoogleのGFSが「Hadoop Distributed File System」に置き換わり、その上に「Hadoop MapReduce」とGoolgeのデータ処理Big Tableに相当する「hBase」がある。また大規模データセットの並列処理言語にはこれもヤフーラボが開発したPigHiveがある。どうやってYahoo!がHadoopの開発に至ったか、このあたりの事情は以下のようである。

従来型のデータ処理では膨大か
つ多様な処理体系をもつバックエンドのデータを取り上げて順次処理する。この方式の効率改善のために処理系を並列化したコンピュートグリッドが考え出された。この時期"Nutch"と呼ばれるウェブ検索エンジンを開発していたDoug CuttingとMike Cafarellaの2人組みのエンジニアがいた。彼らはGoogleがちょうど発表したGFSとMapReduceの論文を目にし、早速飛びついて開発に没した。一方Yahoo!内部でも検索エンジンの効率化のためのプロジェクトがあり、このメンバーも論文を読んだ。選択は自力開発か外部から探すかだった。こうしてDoug (現Cloudera Architect)がYahoo!にスカウトされてHadoop開発が本格化した。

ClouderaのビジネスモデルはHadoopを普及させるコンサルテーションである。
中核となるのは分散処理を受け持つHadoop MapReduceだが、入力されたデータから最終的な結
果を得るには必要な情報を抽出する"Map"、抽出データを結合して並び替える"Shuffle"、それらをまとめて結果を出力する"Reduce"のステップがある。これらをどのように扱うかで処理効率は大きく違う。全てはエンジニアの腕前次第である。このために同社が提供するのがSoftware SetとSupport & Professional Service、そしてTraining & Certified Programだ。Clouderaの提供するSoftware SetはCloudera Distributionと呼ばれ、Hadoopに加えてCoordination Serviceの"Zookeeper"やData Integrationの"Sqoop"、Data Flow Languageの"Pig"、SQL風のQuerryの”Hive"、高速リードライトの"hBase"、Work Flowの"0ozie"、それに関連SDKとUser Interfaceを提供する"Hue"などが含まれている。

このCloudera DistributionはLinuxで普及しているRPM形式で配布されるので容易にインストールできる。さらにこの上位に、実行時のProvisioningやConfigurationなどのManagement Toolを付加したものをCloudera Enterpriseという。次にProfessional Serviceではこれらのツールを用いて企業ユーザーのデータセンターやAmazon、Rackspace、VMwareのvCloudなどへの適用を支援する。トレーニングはデベロッパーとアドミニストレータ向けがあり、資格認定制度がある。

Hadoopを使いこなすには相当のスキルがいる。
この難しさを解きほぐすのがClouderaのビジネスだ。しかしこれらのコンサルテーションサービスをこなすのは彼ら自身だけでは十分ではない。そのためのパートナープログラムがあり、主にビジネスインテリジェンスやデータハウジングを手がけているベンダーたちが多い。PentahoMicrostrategyJasperSoftGreenplumなどだ。データインテグレーションではTalendVerticaなども参加している。