2010年1月4日月曜日

クラウドコンピューティングに思う(1)
-クラウドは第2のインターネットに向かう-

年の初めに、幾つかクラウドについて私見(その1)を述べたい。
まず、クラウドコンピューティングは、初期ステージを抜け出て、"第2のインターネット”に向かい始めている。この認識に立って、その意味するところを探ってみよう。

◆ 第1世代のインターネット

現代のコンピュータは誕生してから約60年が経った。
初の商用コンピュータUnivac-Ⅰは1951年に登場、IBM 360は1964年、初のPCとなったIBM PCが1981年、SunのWorkstationは1982年、ここまででコンピュータの基本構造は出揃った。そして90年代に入ると Mainframeは成熟し、PCやUnixがもて囃され始めたが、それらの本格的な普及は90年代半ば以降のインターネット時代の到来によってである。インターネットの登場で我々が学んだことは①公共性とは何か、②そのための標準化、そして③いつでも必要な時に利用できる形態(On Demand)だった。つまり、インターネットがこれだけ普及した原点(目的)は公共性であり、その具現的な手段(方法)としての標準化整備、結果、ユーザーには新しい使い勝手(利用)が手に入った。インターネットを閲覧するブラウザを見れば、この"目的”と"方法"が上手く噛み合い、新しい時代にふさわしい"利用"形態がが生み出されたことが解る。


◆ クラウドは第2のインターネット

これらの学習こそ、今日のクラウドを考える上で大事なポイントである。
クラウドの“目的”は何か、“方法”は何か、そして、ユーザーにとっての新しい“利用”とは何か。これらが上手く連携することが出来れば、クラウドは第2 のインターネットとなって、再度、コンピュータ産業は成長曲線に乗ることが出来る。インターネット(第1世代)は全てのユーザーに新しい世界を開放した。これを一般向けとするならば、クラウド(第2世代のインターネット)は企業向けである。企業の"利用”、言い換えればメリットははっきりしている。どの調査を見ても、直接のハードウェアや運用管理費などの削減だ。ITシステムに伴うハードやソフトは購入することなく、使用分だけを支払えば良い。使い方は第 1世代で定着したオンデマンド。このためクラウドでは、インターネットは単なる通信手段となり、その上にこれまでのIT資産を稼動させることが要求される。つまり、クラウド上のデータセンター(Cloud Data Center)化が“目標”だ。そして仮想化技術などを使ってどのように具現化するか、それが“方法”である。


◆ クラウドは集合知の世界

クラウドが大きな流れであることは誰でもわかる。
AmazonやGoolge、Salesforce.comなどのサービスプロバイダー、仮想化技術ではVMwareやCitrix/Xen、 Microsoft/Hyper-V、Linux/KVMなど、プロビジョニング関連ではRightScaleやCloud Foundaryなど、ミドルウェアではHadoopやGigaSpaces、CohensiveFTなど、また視点を変えれば、オープンソースでは Javaプロダクトシリーズ、MySQL、Eucalyptus、QEMUなど、さらにGrid Computingの関連ではGridGainや3TeraやAppistryなど、数え上げたらキリがないほど多様な企業が参画している。つまり、クラウドは単一企業のテクノロジーやアーキテクチャーではなく、全ての企業が係わるコンピュータ利用サービスのあり様だ。裏返すと、多くの人たちが共通と考える技術、つまりProprietaryなものではなく、オープンな技術環境が基本となる。この環境を触媒に、多くの企業が参加し、それらは集合知となって、より多くのユーザーの利便性が向上する。


Web 2.0が議論たけなわの頃、我々は集合知の重要さを学んだ。
この経験がクラウドには活かされている。現代は、多様な言語やフレームワーク、開発環境、さらにデーターベースやApplication/Webサーバーなどオープン環境に馴染むものが沢山ある。参加するプロバイダーやベンダーはこれらを利用し、それに得意分野の技術を加味して提供する。もはや複数のベンダーが協業したり、オープンソースを利用することは当たり前だ。

◆ コミュニティーが成功の秘訣(Amazonの秘密)

集合知の重要性は、ベンダー間だけではない。
クラウドプロバイダーや関連するベンダーにとって、彼らのサービスやプロダクトを評価し、さらには戦略の妥当性に反応してくれるのはコミュニティーである。それ故、コミュニティーの形成は必須であり、最重要案件だ。Amazonがクラウド(AWS)を始めるにあたって、最大の難関はここにあった。旧来の Amazonコミュニティーはパワーセラー (Power Seller)が中心。彼らは個人か小企業の集まりで、Amazonの集客力と提供されるプラットフォームに依存してビジネスを展開していた。クラウドサービスの開始にあたって、この集団をファーストユーザーと仮定、その後、デベロッパーコミュニティーに移行させたい。それがAmazonの作戦だった。もし、これが成功すれば、AWSに興味を持つデベロッパーとパワーセラーが融合され、強力なコミュニティーとなる。このため、Amazonは S3(2006年3月)、EC2(同8月)の発表後、同9月には物流受託サービスFBA(Fulfillment By Amazon)、翌2007年には支払い決済サービスFPS (Flexible Payment Service)をリリースして、クラウド移行の便宜を図った。両者はクラウド移行の仕事の出し手(Power Seller)と受け手(Developer)となり、結果は大成功。こうして、AWSのリリースは技術的な興味だけでなく、実ビジネスも引き寄せて、順調にスタートを切った。

クラウドは単なる新ビジネスのサービスメニューではない。
低迷するコンピューター産業にあって、クラウドは企業向けの第2のインターネットを目指している。そのため、参入するには公共性とは何か、どのように貢献できるのかを考えなくてはならない。その上で、自社の強みを加味する。
そうでなければ、クラウドビジネスは成功しない。

2009年12月28日月曜日

Microsoftの新たな挑戦App-VとXenocodeの試み   
-Application Streaming(2)-

前回はアプリケーション・ストリーミングとVDIに至る仮想化技術について述べた。
2回目の今回はアプリケーションの仮想化に挑む新たな挑戦を紹介しよう。


◆ App-VでOffice 2010をクラウド化するMicrosoft

Microsoftの経営陣にとって、今大事なことはビジネスモデルの改革である。
クラウドの登場でソフトウェアライセンスを基本としたこれまでのビジネスモデルは変更を余儀なくされるだろう。クラウドへの移行でどの程度がユティリティー (利用料払い)に変わるのか、同社は全体のビジネスモデルをどのように将来に向けていくのだろう。そして、その結果はMicrosoftだけに留まらず、広く、コンピューター産業全体に影響を及ぼす。

ここにひとつの試みがある。
アプリケーションストリーミング技術App-VをOffice 2010に適用しようというものだ。同社は、この実験によって市場の反応を分析し、その中から今後の戦略を導き出そうと考えているように見える。多分、来年、市場に現れるOffice 2010は、これまで発表されているPC版とWeb版、そしてストリーミング版が追加されて3種類となるだろう。PC版はこれまでのように、ユーザーはCDかダウンロード版を購入し、ソフトウェアライセンスによる利用となる。Web版(正式名:Office 2010 Web Applications)は、Windows Live IDを持っている個人ユーザー向けに基本機能を無料提供し、ブラウザーベースのWord、PowerPoint、Excelの3つのアプリケーションとセキュリティーサービスOneNoteにアクセス出来る。


ここで少し、App-Vについて振り返っておこう。
App-Vは2007年に同社が買収したSoftricityのSoftGridが原形だ。
まず前回述べたように利用するソフトウェアをカプセル化したストリーミングに直す。
これを「SoftGrid Sequencer(現製品名:Microsoft Application Virtualization Sequencer)」と言い、ストリーミング化されたソフトウェアを配信サーバー「SoftGrid Virtualization Application Server(同Microsoft Virtualization Application Server)」上に置き、クライアントPCからの要求で配信する。クライアント側の実行エンジンは「SoftGrid Client(同Microsoft Application Virtualization Client)」という。補足すると、Sequencerではアプリケーション分割だけでなく、アプリケーションの実行に関するOSとの関連情報(DLLやCOM、Registry、Scriptなど)なども固有のものとして作り出す。クライアントPCに送られたこれらの情報は、実行エンジンがOSと連携させ、その上でアプリケーションが走る仕組みとなる。

話を戻し、問題のApp-Vを適用するサービスを仮にOficce 2010 CTRとする。
CTRとはClick to Runの略で、例えばCTR版のWordアイコンをクリック(Click)するとWordがApp-V技術でストリーミングとなってユーザーPCに送られて実行(Run)される。CTRはNetbookなどのように十分な容量がないがフル機能を望むユーザーにはうってつけだ。CTRでは、一度、ストリーミングをダウンロードしてしまえば、インストールしてあるかのように再使用することができる。この実験はTechnical Preview Programとして、限定テスターを対象に今年7月から始まっており、その結果次第で
リリース計画が決まる見通しだ。

-Microsoft Desktop Optimization Pack(MDOP)-
Microsoftにとって、デスクトップ仮想化分野の製品は複数あり、それらは総合製品「Desktop Optimization Pack(MDOP)」となって、大企業向けにボリュームライセンスで提供されている。このMDOPの核となる仮想化技術は、①アプリケーション仮想化(Application Virtualization)のApp-Vと、②デスクトップ仮想化のMED-V (Microsoft Enterprise Desktop Virtualization)だ。ここで、MED-VはVirtual PCを用いてWindows NTなどレガシーなアプリケーションをOSごと仮想化して利用するツールなので、クラウドではApp-Vが主役になることははっきりしている。

以上のような背景から、同社がクラウドの波に乗り、MDOP普及の要として、App-Vを用いたアプリケーションにOffice 2010を選ぼうとしていることは間違いないだろう。これが成功すれば、これまでVMwareやXenに後塵を拝してきた仮想化技術で一矢を報い、新たな仮想化市場をリードし、さらにライセンスモデルを変えることも出来る。Microsoftが挑戦する新たな試み「Office 2010 CTR」が企業向けプライベートクラウドで成功すれば、その先には同社のAzureから提供される可能性も秘めている。


◆ Xenocodeのアプリケーション仮想化とは・・・

Xenocodeの創業は2003年、Microsoftからのエンジニアが中心となって同じシアトルで起業した。CEOでFounderは日本人のKenji Obata氏だ。Xenocodeの仮想化はアプリケーション・ストリーミング技術の1種だが、他との決定的な違いがある。
簡単にいうと、クライアントには前もって実行エンジンのインストールの必要ない。Xenocodeの場合は、実行エンジンを「Xonocode Virtual OS Kernel」と言い、
非常に小型で、このエンジンも分割アプリケーションと同様にストリーミングとして送られてくる。



実際の利用にあたっては「Xenocode Virtual Application Studio」が提供される。これを利用することで、
Virtual OS Kernelを含めたアプリケーションのカプセル化が実行できるだけでなく、利用期限(Software Expiration)設定なども可能となる。出来上がったストリーミングは、同社のSpoon Streaming Technologyによって、Windows 7を含めたWindowsマルチプラットフォーム対応となり、さらに配信では、企業内に設置されている既存のMicrosoft System Management ServerやAvocent LANDesk、Symantec Altiris/AppStream、Novell ZENWorks、CA Unicenterなどがそのまま利用できる。また、USBデバイスに乗せて携行して実行することも可能だ。

さて、Xenocodeのターゲットユーザーだが、一般の企業だけではない。
もうひとつの狙いはISV(Independent Software Vendor)だ。中でも新しいタイプのソフトウェア・パブリッシャーである。このパブリッシャーにXenocodeを使ってもらい、彼等のソフトウェアをCDやインターネット・ダウンロード販売だけでなく、ストリーミングを使って、より簡便に提供しようという作戦だ。つまり、クラウドからソフトウェアを提供し、ユティリティー(利用料金払い)のサービスを行う。この目的のために、Virtual Application Studioの整備を鋭意進めている。

配信技術のSpoon Streaming Technologyを用いた同社専用サイトSpoon.netでは、Browser Sandboxとして、Microsoft Internet Explorer 6/7/8、Mozilla Firefox2/3/3.5、Apple Safari3/4(下図上)、Opera 9/10(下図下)、Google Chromeが用意され、簡単に誰でも試すことが出来る。


ゲーム(下図)も沢山用意され、使ってみたいゲーム中央の電源マークをクリックすればダウンロードが始まる。Music PlayerではQuick Time、Songbird、PANDORA、JetAudioなど、各種Video Player、さらにTwitterやGoogle Talk、Skypeだって利用できる。このようなXenocodeの狙いが当たれば、アプリケーション・ストリーミングを使って、時代がまた、大きく動くことになる。

2009年12月25日金曜日

アプリケーションの仮想化
-Application Streming(1)-

アプリケーションの仮想化が賑やかになってきた。
特にオフィス(Office Productivity)分野では、クラウドの本命になる予感がする。
そこで、今回はアプリケーション・ストリーミングと関連するデスクトップの仮想化技術についてまとめてみた。

アプリケーションのパッケージ化はLinuxで普及しているRPM(Red Hat Programing Manager)やDebianのdeb(Debian Software Package)、WindowsではMSI(Microsoft Windows Installer)が一般的だ。MSIを例にとると、MSIはWindows Installerでインストールされるプログラムファイル形式であり、幾つかに分割された実行ファイル(.EXE)以外に、DLLやCOM、Registry、Script、さらにはSystem Requirement、Version情報などが含まれている。

ある調査によると我々が通常デスクトップで使用するアプリケーションではソフトウェア全体の10~30%程度があれば十分であり、残りは例外処理など特殊なものだという。即ち、良く使う部分を切り出し、最初にこの部分の塊を送ればクライアントでの処理は事足りる。後は必要に応じて、小出しに送ればよいわけだ。このためベンダー各社は、ソフトウェアの分割方式や配信時の圧縮技術、さらにはクライアントでの実行エンジンなどの整備に力を入れ、特許などを競っている。

アプリケーション仮想化の手順

アプリケーション・ストリーミング市場にある製品は、多少の差はあっても実行方法の基本は同じだ。まず、クライアントで使うソフトウェアをカプセル化の概念を用いて事前にストリーミング加工を施す。つまり、動画配信時と同じようにソフトウェアを幾つかに分割し、円滑に流れるようにするわけである。この際、圧縮も行われ、分割と圧縮を「カプセル化」と呼ぶ。この処理済みのソフトウェア・ストリーミングを専用配信サーバーに格納し、クライアントPCにある実行エンジンからのリクエストによって、カプセル化された ソフトウェアを配信する。専用配信サーバーではまた、システム管理者がどのユーザーがどのアプリケーションを利用可能かなどのポリシーを設定する。

現在、この市場には大手ITベンダーから以下のような製品が出荷されている。
  1. XenApp 5.0・・・Citrixが2006年に買収したArdenceをベースに整備
  2. App-V 4.5・・・Microsoftが2007年買収したSoftricityのSoftGridベース
  3. ThinApp 4.0・・・VMwareが2008年始めに買収したThinstalベース
  4. Symantec SVS Pro 2.1・・・Symantecが2007年に買収したAltirisのSVS(Software Virtualization Solution)をベースに2008年買収のAppStream技術を統合して製品化

◆ MetaFrameからVDI(Virtual Desktop Infrastructure)まで

ここで全体理解のために、仮想デスクトップの道のりについて振り返ってみよう。
古くは1995年にMicrosoftとCitrix、Wyseの3社で始めたWBT(Windows-based Terminal)開発があり、その後、CtrixはWindowsリソース管理を擬似仮想化に見立て、Thin ClientとWindowsサーバーのアプリケーションを連動させるMetaFrameを開発。MetaFrameはプレゼンテーション仮想化技術(Virtualized Presentation Technology)だが、ネットワーク上の圧縮技術ICA(Integrated Communication Architecture)に特徴を持って、一躍、トップベンダーに躍り出た。その後、1997年には、デスクトップのマザーボードを中央の専用サーバーに移設するPCブレードシステムがClearCubeから登場した。この方式は物理的にマザーボードやHDDをクライアントPCから外して中央ブレードサーバーに移し変え、クライアントはThin Clientとするハードウェア集約技術(Hardware Consolidation Technology)となって、特に クライアントPCのソフトウェア維持保守コスト削減に大きな効果をあげた。MetaFrameがwindows上のアプリケーション選択であるのに対し、PCブレードはOSも含めた自由な環境を提供。そして、このPCブレードが今日の仮想化技術を用いたVDI(Virtual Desktop Infrastructure)への道を切り開いたと言っても良い。

現在、市場にあるVMwareやCitrixのVDI製品では、PCブレードシステムが物理的なマザーボードの移設であったのに対し、プール化された仮想マシンとThin Clientを連携させる。つまり、物理環境を置き換えるのではなく、ソフトウェア環境を彼等の仮想化技術を使った論理的な仮想マシン上に置き換えるプール資源の利用技術(Pooled Resource Technology)だ。さらに仮想マシンの適用には、静的なものと動的なものがあり、前者はこれまでのPC利用やPCブレードに近く、後者はThin Clientと仮想マシン間に管理ソフトウェアが介在する。管理ソフトウェアは、事前にOSやシステムサイズの異なる何種類かの仮想マシンを用意し、クライアントの要請を受けてマッピングさせたり、一度アサインした仮想マシンへのリモートアクセスの実行、さらにソフトウェアライセンス管理なども行うことが出来る。


このような技術の流れの中にあって、アプリケーションストリーミングは異なる性質を持つ。つまり、今日のVMwareやXenなどの仮想化技術とは別なコンセプトであり、それ故、両者の融合も可能であるし、更なる発展も期待できる。
次回はアプリケーション・ストリーミングの具体的な動きを追う。

2009年12月7日月曜日

Windows Azureアップデート  -PDC2009-

ロスアンゼルス・コンベンションセンターで毎年恒例となったMicrosoft Professional Developer Conference 2009(PDC 09)が開催(11月17-19日)された。その中から、Windows Azureに関するアップデートを報告しよう。

◆ Azure正式にスタート

PDC 09で正式に発表されたWindows Azureは、2010年1月1日から商用としてスタートする(2月1日までは無料利用)。今回の正式版(β)では、昨年PDC 08発表時の計画案(下図)から大きく絞り込まれ3つのコンポーネントとなった。


①プラットフォームとなる「Windows Azure」、そして、②これまで「.NET Services」と呼ばれていた機能はアプリケーション間連携の「Azure Platform AppFabric」と改称され、③当初「SQL Services」と呼ばれていたクラウドデータベースも途中から「SQL Azure」となった。


商用版となるAzureはクラウド分類ではPaaSに該当するが、Ozzie氏はキーノート後のインタビューで現在のPaaS機能だけでなく、近々、IaaSの提供計画があることにも言及。来年度はこのリリースの強化と共に、新しい仮想マシンの登場が期待される。また、Ozzie氏はキーノートの中で「3つのスクリーンとクラウド」というビジョンを提示し、クラウド(Windows Azure)、オンプレミス・サーバー(Windows Server)、デスクトップ(Windows 7)の3つのスクリーン間でシームレスなアプリケーション開発を追求していくと説明した。そして、特に、今回、改称されたAppFabricはオンプレミスと
クラウドを連携する重要な役割を担う。

また、建設が急がれていたAzureデータセンターは、自社だけでなく、パートナー設備を利用する。新年度からの本番とそれ以降の急拡大に向けて、短時間でのクラウドセンター建設に効力を発揮したのがAzure Cloud Containerだ。これは、同社の第4世代モジュラーデータセンター(Generation 4 Modular Datacenter)構想によるものでPDC 09では実機が展示された。




当面のデータセンタ配置は、北米のシカゴとサンフランシスコ、ヨーロッパではダブリンとアムステルダム、アジア はシンガポールと香港となり、各地域に各々2ヶ所づつ設置、来年1月から世界21ヶ国Australia, Austria, Belgium, Canada, Denmark, Finland, France, Germany, Ireland, India, Italy, Japan, Netherlands, New Zealand, Norway, Portugal, Spain, Sweden, Switzerland, UK, United States)でサービスが開始される。


◆ オンプレミス/クラウド連携 AppFabric

さて、今回改称された「Azure Platform AppFabric」が重要であることは言うまでもない。AppFabricはWindows Server 2008のオンプレミスとクラウドをシームレスに結びつけたり、クラウド上のアプリケーション間を連携させるもので、「Access Control」「Service Bus」「Workflow」から構成される。AppFbricは、英語のFabricが織物を意味するように、多様なコンポーネントを有機的に結び付けるクラウド用アプリケーションサーバーと言ったところである。ここでService Busは、オンプレミスとクラウド、さらにクラウド間を繋ぐESB (Enterprise Service Bus)であり、Access Controlはそれへの認証、WorkflowはWindows Workflow Foundation (WF)をベースとしたもののようだ。

◆ アプリ交換サイトPinPointと公開データカタログDallas

キーノートではRay Ozzie氏から各種の新機能も発表された。
ひとつはWindows Azure向けサードパーティ・アプリケーションのマーケットプレイスPinpoint.comの開設。同サイトは、Salesforce.comが生き残りを賭けて2005年秋に発表し、2006年始めから開設したアプリケーション交換販売サイトAppEchangeの Azure版だ。このサイト開設に尽力したのはSunから移籍したLew Tucker氏。氏は伸び悩んでいたSalesforceのビジネスを復活させるため、プラットフォームを整理させ、APIとSDKを提供することで、 ISVやユーザー企業がCRMアプリケーションの追加や修正が出来る方法を考え出した。このアプリケーション交換の方法は、既に、SunではJava Store、IBMでもSmart Marketを開設しているし、モバイルではAppleのApp StoreやGoogleのAndroid Marketなどユーザ参加型の開発手法として花盛りである。Tucker氏は、その後、Sunに戻り、現在はSun Open CloudのCTOだ。

そしてDallas(開発コード名)。
これはPinpointの一部となって、連邦政府の行政情報公開データサイトData.govやNASAの月情報サイトMars Pathfinder、地理情報サイトのNational Geographicなどの公開データを扱うオープンカタログとなる。デベロッパーは、これらのデータを使って独自のアプリケーションサービスを開発する。このDallasも実は、Amazonが膨大なヒトゲノム(Human Genome)情報を公開して有名となった公共データセット・サービスPublic Data Set on AWSのAzure版だ。


◆ Azureストレージ

AzureのAppFablicに次ぐもうひとつの核は「SQL Azure」、つまりクラウドのAzureストレージで、ここにもアップデートがあった。このAzureストレージを利用することで、デベロッパーは大きなオブジェクトやファイル処理、さらにQueueを用いたメッセージデータの扱いも可能となる。少し整理するとAzureストレージには、①構造化データ処理用のTable(表)形式「Azure Table Storage」、②オブジェクトなどの非構造化データに向いた「Blob」、③仮想マシン連携の「Queue」がある。 そして、今回、以下の2つが追加された。

-Windows Azure Drive
新機能のAzure Driveは、Azureクラウド上で稼動するアプリケーションにNTFSへのアクセスを提供する。当該ドライブは、ひとつのNTFSボリュームVHD(Virtual Hard Disk)として扱われ、Blobデータの読み書きに使われる。Blobには、これまでのBlock Blobと新たなPage Blobがある。Block Blobはストリーミングファイルなどをブロック分割(最大4MB)して利用し、さらに複数サーバーに分散させて、スループットを向上させることができる。また、これらの分割ブロックは自動複製も可能で耐障害性が高く、バックアップ処理も基本的には要らない。 もうひとつのPage Blobは、ランダムファイルの読み書きに用い、ファイルの分割単位は固定512Bの「Page」となる。このPageの概念はAmazon S3のBucketに当たり、最大10GBのTableにPage番号としてマップピングされる。XDrive自身は、EC2のEBS(Elastic Block Store)のNTFS版だと思えば良いだろう。

-Geo-Replication-
Azureストレージに、もうひとつ追加があった。
完全なデータベース保全のための地域的な複製機能「Geo-Replication」だ。これはSQL Server 2008で強化されたGeo-Replication機能をクラウドにも適用するものだが、SQL Server 2005と比べて100倍以上高速だという。実際にはプログラムから地域間複製の要求が出され、その処理が完了すると通知が返され、ユーザープログラムは完璧なデータベース保全が完了(Commit)したことを知ることが出来る。

◆ AzureコンテンツデリバリーContent Delivery Network(CDN)

もうひとつ、CDNについても説明があった。
CDNは11月始めにアナウンスがあり、PDC 09ではその実際が紹介された。Azure CDNは全世界のデータセンターからコンテンツデータをより迅速に届けるもので、現在の評価版(α)Community Technology Preview(CTP)でも利用が可能だ。デベロッパーはAzure Developer PortalのStorege Accountからカスタム・ドメインネーム(Custom Domain Name-CNAME)を指定することで、BlobデータをPublic Container経由で自動的に送り出す。


Windows Azureは、年が明ければ、実戦体制に入る。
先行するAmazon Web Serviceを追って、.NETの世界のクラウドを切り開くAzureがどの程度頑張るか、楽しみだ。

2009年11月28日土曜日

ベンチマーク Amazon EC2 .vs. HPC

今回はHPCクラウドの最終回として、ベンチマークを報告しよう。
このベンチマークはテキサス大学TACC(Texas Advanced Computing Center)で、Fault-Tolerant Distributed SystemsやHPC Programming Languagesで活躍するEdward Walker博士のチームによって行われたものである。
以下、博士の承認のもと、要約を試みた。


◆ベンチマーク・ハードウェア仕様 Amazon EC2 .vs. HPC

こ のベンチマークで利用するAWS(Amazon Web Service)EC2は最大インスタンスの「High-CPU Extra Large Instance」 。AWSの説明曰く、High-CPU Extra Large Instance 7 GB of memory, 20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platformだという。つ まり、64ビット版2.5コア相当の8個の仮想CPU(合計20 EC2コンピュート・ユニット)に7GBメモリー、内臓ストレージは1960GBを持つ。ネットワーク・インターコネクト(ノード接続)は、EC2は高速 (High I/O Performance)接続だが詳細は不明、NCSAのHPCはInfiniBand。


ただ、これでは抽象的でベンチマークには不十分であるのでLinuxカーネル内の/proc/cpuinfoから、Amazonはクワッド(4コア)の Intel Xeon(2.33 GHz)であることを確認。ノード当たりはデュアルソケットに2プロセッサーで8コア、メモリー(7GB)とストレージ(1960GB)の構成となり、一 方のHPCはSun Ranger機で同様のクワッドCPUのノード構成で8GBメモリー、73GBストレージの構成である。(上図参考)

◆ ベンチマークツールNPBと並列プログラミング(MPI & OpenMPI、OpenMP)

さてベンチマークは、ここシリコンバレーにあるNASA Ames Research Centerが開発したNAS Parallel Benchmarks(NPB)を基本とし、大所高所から、幾つかの
ア プローチを試みている。NPBはHPCのベンチマーク用に仕様が開発されたもので、下図のように、5つのパラレルカーネル(Parallel Kernel Benchmarks)と、3つのシュミレーテッドアプリケーション(Parallel CFD-Computational Fluid Dynamics-Application Benchmarks)から構成されている。NPBは、さらにオリジナル仕様のNPB 1と、MPI(Message Passing Interface)を適用したNPB 2、OpenMPを適用したNPB 3に分かれている。ここでMPIとは、メッセージパッシング(受け渡し)型の並列プログラミング規格であり、MPIライブラリーとのインターフェースが定められている。
一般にグリッドやHPCのように分散メモリー型並列コンピュータでは、計算結果を相互に授受しながら処理を進める。このための役割がMPIであり、CとFortran 77がある。
また、MPIの延長にあるOpenMPIでは、テネシー大学のFT-MPIや、国立ロスアラモス研究所のLA-MPI、インディアナ大学のLAM/MPIなど各種のメッセージングを取り込んだMPI-2規格となっている。次に、共有メモリ型並列コンピュータ用に開発されたOpenMPが ある。MPIでは明示的にメッセージの交換をプログラム内に書かなければならないが、OpenMPでは、OpenMPが使用できない環境において、無視さ れるディレクティブを挿入する。この仕組みによって、並列環境と非並列環境でほぼ同一のコードを使用できる。その他の並行処理技術にはHPF(High Performance Fortran)やJavaなどがある。

◆ NPB OpenMPベンチマーク

さ て、最初のベンチマークは並列/非並列のどちらにも適用できるOpenMP。正式にはNPB (NPB3.3-OMP) Class Bという。つまり、NBPにOpenMPを適用したNPB 3の一種である。これをNCSAクラスターとAmazon EC2の各々8コアノー ドに適用。 ベンチマークに当たっては、8コアに満遍なく各々のベンチマークプログラムを走らせるパラレルスレッドとして実行した。NCSAとEC2上でのコンパイル は、Intel製コンパイラーでオプションは、“-openmp -O3.”を設定。結果は左図の通り。全般的にみて、Ec2がNCSAよりランタイムにおいて、7%~21%遅いことが解る。Walker博士によると、 この差は、かなりの驚きであったという。


◆ NPB MPIベンチマーク

2番目のベンチマークはMPIを用いたもの。
この場合も正式にはNPB (NPB3.3-MPI) Class Bという。ベンチマークにあたって、4つのEC2 High-CPU Extra Large Instanceをクラスターとしてプロビジョニング、つまり32 コア(4x8)となる。各々、前述同様にIntelコンパイラーでオプションは"O3."とした。実際に利用したライブラリーはEc2がMPICH2 MPI library (1.0.7)、NCSAはMVAPICH2 MPI library (0.9.8p2)。ベンチマークプログラムのBTとSPは16コアで、他の6つは全て32コアで実行。結果は、EC2がNCSAより40%~1000% 遅い。200%以上の差があるプログラムはCG、FT、IS、IU、MGの5つ。そして驚くことに、EC2上のEPでは、メッセージの授受が計算の間に実 行されず、全体的にメッセージングだけで約50%の差があった。

◆ MPIパフォーマンス・ベンチマーク

2つのベンチ マーク結果から、Walker博士チームはノード接続のInfiniBandが大きな効果を挙げているのではないかと仮定し、それを証明しようと試みた。 つまり、計算能力は同じ筈なので、メッセージ受け渡しの能力差がランタイムの大きな違いとなるのではないかと考えた。ノード接続は、NCSAのクラスター がInfiniBandのファブリック接続であるのに対し、EC2は高速だが簡単な仕組みである。そこで以下の計測のためにOpenMP仕様にあ る"mpptest"ベンチマークを利用した。以下の結果から解るように、バンド幅(Bandwidth)と呼び出し時間(Latency)は、EC2と HPCのクラスターで2分割されたような異なる状態を示し、明らかにEC2が劣っている。テストで使われたジョブは"32-CPU MPI"、メッセージ長は0~1024。従って、これらの接続性能を反映したHPCクラスターではランタイムが大きく短縮されることとなった。












◆ 結論

今 日、Amazon EC2の「High-CPU Extra Large Instance」のように、HPC向けアプリケーションサービスが始まったことは画期的であり、これまでの大型専門コンピュータ崇拝に区切りがつく可能 性を示した。しかしながら、本稿のベンチマークで、まだ商用クラウドはその性能に達していないことがはっきりした。2つのクラスター間のギャップは、分散 メモリー型並列コンピュータでは著しく、共有メモリー型並列コンピュータでもかなりの差が見られる。商用クラウドは高計算処理を伴う科学演算コミュニ ティーにも大いに魅力的であり、今後のプロバイダーの努力に期待したい。

2009年11月24日火曜日

HPCなど大型クラウドをサポートするベンダー (2)

◆ Scale vSMP (ScaleMP)

これまで見てきたように、仮想化には2つの領域がある。
ひとつは通常の仮想化などに見られるもので大型サーバーを分割して、論理的に複数台に見せる方式だ。これはAmazonなど、今日的なCloud Computingの基本となっている。一方、ハイエンドの領域では、複数台のサーバーを統合して論理的に1台として利用する。つまり、Grid Computingの世界だ。この後者を実現する手っ取り早い方法に、完全に分散されたGrid Computingより、HPCやSMP(Symmetric Multiple Computer)-対称型マルチプロセッサ-の利用があるが、しかし、これでもその特殊性からコスト高だ。そこで通常のサーバーを使ってSMPに見せかける企業ScaleMPが現れた。
同社が開発したversatile SMP(vSMP)アーキテクチャーでは、ラックマウントやブレードなどにvSMP Foundationを実装し、ソフトウェアによって大型SMPに見せかけることが出来る。サーバーのクラスタリングには、より高速化のため InfiniBandが必須だ。さらに言えば、市販のx86ボードをInfiniBandのスイッチで結合しただけでもよい。こうすることによって、複数台 のサーバーをひとつのOSで制御し、その上で大型アプリケーションを走らせることが可能となる。こうして作られたソフトウェアSMPシステムは、最大32プロセッサー(Quad Coreを用いれば128コア)、4TBメモリーのシステムとなる。通常、クラスタリングでは、接続された各システムにプロセッサーとメモリーが専用化される。しかし、vSMPシステムのメモリーは共用となって、大きな空間を作ることが出来る。

vSMP Foundationのポートフォリオは3つ。
① vSMP Foundation for Cluster-前述のようなクラスタリングへの適用、②vSMP Foundation for SMP-市販のSMPへ適用して効率をあげることも可能だ。③vSMP Foundation for Cloud-さらにクラウドのために、オンデマンドでSMPシステムを提供することも出来る。

◆ Shared Systemサービス(R-Systems)

R Systemsは、若きMarc Andreessen氏があのモザイク(Mosaic)を開発していたイリノイ大学NCSA(National Center for Supercomputing Applications)からスピンアウト、以来、研究者向けのLinuxベースHPCビジネスを手掛けてきた。同社の子会社R Poepleでは、同社ファシリティーを使ったコンサルテーションやオペレーションなどのサービスを提供。今年7月、同社はWindows HPC Server 2008の適用を発表した。これによって、同社のファシリティー(564ノードと288ノードの大型クラスター)はデュアルブート環境となりLinuxとWindowsのスイッチバックが可能となった。さらに小型のクラスターが数台Windows HPC Serverで稼動しており、これらを動員して、コマーシャルビジネスの開拓に乗り出した。ただ、同社サービスは一般のクラウドとは異なり、基本的にカスタムサービスである。サービスメニューの ①Dedicated Hostingとは顧客の特別要求仕様に従ったもので、物理的にも独立なマシンが適用可能となって、特別なOSなどでも構わない。②Shared Systemsサービスは、HPCやSMPを共用するクラウド型サービスとなり、③Virtual Private Clustersでは、共用システムからクラスターを切り出して、ユーザー固有のアプリケーションに対応させる。④Off-site/Remote Facilitiesとは、パートナー企業のファシリティーを用いて同社サービスの幾つかを実行したり、ユーザーマシンを同社に持ち込んで運用管理するものだ。

実際のところ、Windows HPC Serverを使用したサービスはIBMからもComputing on Demandとして提供されている。DellではData Center Solution部門が同社と提携し、最大578ノードのHPCを組み上げてDell Cloud Computing Solutionsとしてユーザー企業に提供しており、またデスクサイドにおけるWidows HPC Server 2008搭載の廉価版パーソナル・スーパーコンピューターCray CX1もあって、HPCクラウドは身近になっている。


◆ UniCloud 2.0 (Univa UD)

一般にクラスターシステムには、3つのタイプがある。
まず、かなり普及しているのが ①HA(High Availability)クラスターだ。このタイプは処理系とバックアップ系を切り替えて高可用性を実現する。次に、②分散クラスターがある。この場合は、処理量の多いWebやデータベース関連の処理をロードバランサーによって振り分けて負荷分散処理を可能とする。そして、③HPCクラスターでは、グ リッドなどの技術を用い、複数の計算ノードを集めてより高い計算能力を提供する。このように、HAでシステム切り替え、分散ではロードバランサー、HPCではグリッドエ ンジンなど核となるコンポーネントがあり、クラスターのソフトウェアスタックには、核コンポーネント、関連ライブラリー/ツール、実行環境ソフト、運用関連ソフトなど関連ソフトウェアが含まれ、パッケージとして提供されることが多い。さら に、これらの提供には、導入時のチューニングサービスやソフトウェア更新など、ライフサイクル管理も提供される。

ここで紹介するUniva UDは、元々、Sunの開発したN1 Grid EngineをHPCクラスター(以下、クラスター)上に適用してチューニングすることから始まった。その後、クラスターのソフトウェアスタックを整備して、ライフサイクル管理のUniClusterをオープンソースとして開発、現在はコンサルテーションなどのサービスをビジネスの主体としている。同社がサポートするオープンソースサイトGrid.orgからは、クラスターのモニタリングを行うGanglia 統合が済んだ最新版の4.1、さらに評価版5.0のダウンロードが可能だ。4.1以降では、Grid Engineだけでなく、Globusも適用できるし、Amazon EC2への適用も可能となった。UniClusterのライフサイクル管理では、デスクのパーティショニングの実行から、MPIライブラリーや各種ツールの提供、そして分散型リソース管理(Distributed Resource Manager)によって、ハードウェアに合った完全なソフトウェアスタックを組みあげる。ポイントとなるクラスタリングでは、クラスターパッケージの管理、仮想化の適用、クラウド対応、そして実行時のモニターは勿論、ファイルの同期化などを実行する。

そして、同社が7月にアナウンスしたUniCloud 2.0とは、UniClusterを核にクラウドに適用したものである。UniCloudではプロビジョニングやコンフィギュレーション、さらに仮想化など を全てRESTfulウェブサービスフレームワークで対応する。これによって
リソースやポリシー管理は簡略化され、ノードは物理的でも論理的な配置でも可能となった。クラウドユーザー向けに提供されるWebインターフェースのUniPortalではアプリケーションの実行、追 跡、監視などが行われ、付帯製品のUniPlanはワークロードのシュミレーションや分析を通してシステムの最適化を実行する。


以上見てきたように、クラウドは進化し続けている。
今や仮想マシンを束ねたGrid Computingは一般化が進み、Amazon EC2上でも、より大型のアプリケーションを実行させるためにHigh CPUやHigh Memory Instanceのサービスを開始した。ここベイエリアではバイオ系のスタートアップが
こぞって、これらを使い始めている。

2009年11月18日水曜日

HPCなど大型クラウドをサポートするベンダー (1)

今回は、HPCなどの大型クラウドをサポートするベンダーを紹介しよう。
この領域には、幾つものベンダーやオープンソースプロジェクトが存在する。ここで取りあげたベンダーの多くは、HPCやMulti-Clusterなど(以下、HPCと記す)のリソース管理などに傾注しているが、中には仮想化技術の適用手法などに工夫を凝らしているものもある。

◆ Moab Adaptive HPC プラットフォーム(Adaptive Computing)

Adaptive Computing (旧Cluster Resources)はデータセンターの自動化ソフトウェアを手掛け、とりわけ、HPCなど大型サーバーを得意としている。フラッグシップのMoabには、Moab Adaptive HPCとMoab Cluster、Moab Gridのバリエーションがある。
これらはGrid Computingの技術を基本的にクラウドに適用したもので、LinuxとWindowsが混在したクラウド環境を提供する。Moabの機能を大別すると ①自動リソース管理(Automatically Acquire Cloud Resources)、②プロビジョニング(Provisioning Cloud Resources on the Fly)、③リソース維持制御(Maintain Resource Control)の3つだ。リソース管理では、ユーザーの要求するワークフローに沿って必要なリソースをアロケーションし、プロビジョニングで、OSなど 必要なソフトウェアスタックをダイナミックにレイアウトして実行、これらリソースはオートマテック・ロードバランシングによって全体の維持制御が行われる。もし、OSやハードウェアなどに障害が起こると、Moabは別なノードをアロケートすることが出来るし、全体ノードのLinuxやWindowsの初期設定から、状況に応じて、バランスよく再アロケーションすることも可能だ。また、優先順位の高いジョブが投入されると、他のジョブのスワップアウトなどを行い、それにあったリソースを作り出して実行したり、時間的に急ぐジョブはスケジュールキューの順位を入れ替えることも出来る。












Moab Gridの場合(左図)は、通常、ユーザーはローカルクラスターにアクセスして必要なサイズを要求する。Moabは全体のリソース管理から、ローカルリソースを含めて要求の適正化を図る。これらいずれの場合も、全体リソースの稼動状況(右図)をシステム管理者は詳細に見ることが出来る。ローカルな管理者は、自分の領域内の管理、ユーザーはポータルを介して同様に自分の利用域内をみることができる。Adaptive ComputingのMoabは、これまでLinuxだけで利用されることが一般的であったHPCをWindows OSにも開放し、バランスよく実行する世界を開いている。

◆ Penguin on Demandクラウドサービス(Penguin Computing)

Penguin Computingの場合はユニークだ。
1998年の設立以来、同社はLinuxに傾注し続け、HPCに行き着いたと言ってよい。
そして今年8月、HPCを使ったクラウドPenguin on Demand (PoD)を発表。PoDでは、Amazonに代表される通常のクラウドサービスでは得られない高性能な並列コンピュータサービスを提供する。
このため、同社に設置された高性能マルチクラスターに高速ストレージを搭載、それらをInfiniBandで接続してHPCを構成する。また、超高速グラフィック処理にはスーパーGPUのNVIDIA Teslaが利用できる。さて、クラウドというとすぐ仮想化技術との関連が気になるが、PoDには、所謂、通常の仮想化技術は使われていない。同社では、クラウドとはインターネット越しに動的かつ拡張的にリソースを提供する利用形態であり、細分化された仮想マシンを提供する一般のIaaSはそのひとつで、PoDは高性能な並列処理を提供するため、より大きなコンピューティングの塊を提供するものだと説明する。

同社は設立以来、大型Linuxサーバーのハードウェアとソフトウェアの提供をビジネスとしていた。そして、2003年、NASAでLinuxサーバーを用いてスーパーコンピューターを開発するBeowulfプロジェクトでクラスタリングを手掛けていたScyld Computingを買収。これが同社のクラスタリング技術の中核Scyld Clusterwareとなっている。HPCを用いたPoDサービスは、このクラスタリングソリューションを複数台のLinuxサーバーに適用、その上に並列処理プログラミングの標準規格MPI (Message Passing Interface)ライブラリー、並列ファイル処理としてLustrePanasas PanFSPVFS2、さらに各種ツール、リソース管理、スケジューラーなどを組み入れて仕上げたものである。

◆ Platform LSF HPCプラットフォーム(Platform Computing)

Platform Computingは、この分野の老舗だ。
同社は1980年代後半、UC Berkeleyで次世代コンピューティングを予見し、無数のノードに分散されて実行するグリッドシステムの負荷分散を研究していたSongnian Zhou 博士によって始まった。主力となるLSF(Load Sharing Function)はバッチ型のワークロードが基本となり、Linux、Solaris、Windowsなどの各種OS、ハードウェアでは通常のサーバーだけでなく、クラスターやHPCなど多面的な適用が可能となっている。












現在、最も興味を引くのは、多様なシステムを総合的に管理するPlatform Enterprise Grid Orchestrator(左図-EGO)である。このEGOの利用でマルチOS対応のGrid Computingシステムを構成することが出来、さらにPlatform VM Orchestrator(右図)を用いて、VMware ESXやXen、Microsoft Hyper-Vで仮想化することも可能となっている。