米マイクロソフトが「PDC09」で発表したWindows Azureの新機能「Azure XDrive」は、Windows Azureの仮想マシンにNTFSのディスクボリュームをマウントする機能だ。分散ストレージの「Azure Storage」上で管理され、1個のディスクボリュームのデータが複数台のサーバーに分散/複製して保存される。そのため高い耐障害性が実現する。2009年11月18日(米国時間)のPDC09のセッションで、詳細が明らかになった。

 Azure Storageにはこれまで、構造化データの保存に向いた表形式のデータベース「Azure Table Storage」、非構造化データの保存に向いた「Blob」、Windows Azureの仮想マシンである「Webロール」「Workerロール」を連携させる「Queue」の3種類があった。これらはいずれもWebサービス経由で利用するストレージである。

 それに対して今回発表されたAzure XDriveは、開発者が慣れ親しんだNTFSのディスクボリュームであり、Windows Azureの仮想マシンからファイルアクセスが可能だ。2010年には「Virtual Machine(VM)ロール」という新しい種類の仮想マシンが追加され、Windows Server 2008 R2などの従来のサーバーOSをそのまま稼働させることができるようになる。このVMロールとAzure XDriveを組み合わせれば、顧客企業の社内サーバーで稼働するWindows Server 2008 R2環境を仮想マシンとしてWindows Azureに移行できることになる。

バックアップが不要なディスクボリューム

 米アマゾン・ウェブ・サービシズが提供しているサービスと比較すると、Windows AzureのVMロールは「Amazon EC2」に、Azure XDriveは「Amazon Elastic Block Store(EBS)」に相当する。Azure XDriveが新しいのは、NTFSディスクボリュームの実体である仮想ハードディスクファイル(VHDファイル)が、Azure StorageのBlobに保存されていることだ。

 Azure StorageのBlobは、ファイルを小さなパーツに分割して複数のサーバーに分散配置することで、I/Oスループットを高めている。パーツは自動的に複数のサーバーに複製されるため、耐障害性が高い。したがって、エンドユーザーによるバックアップなどは基本的に不要である。

Azure Storageの仕組みに「Page Blob」を追加

写真1●ファイルをブロックとして単純に分割する「Block Blob」はファイルのストリーミングを高速化できる
写真1●ファイルをブロックとして単純に分割する「Block Blob」はファイルのストリーミングを高速化できる
[画像のクリックで拡大表示]
写真2●ファイルをページ単位で管理する「Page Blob」はランダムリード/ライトに適する
写真2●ファイルをページ単位で管理する「Page Blob」はランダムリード/ライトに適する
[画像のクリックで拡大表示]

 Azure XDriveを実現するために、Azure StorageのBlobには従来からある「Block Blob」のほかに、「Page Blob」という新機能が追加された。このうちBlock Blobは、ファイルを先頭から最大4Mバイトのブロックに分割して、ブロック単位で保存するものだ(写真1)。複数のサーバーに分散させて、スループットを向上させるのも容易であるため、ファイルのストリーミング(読み出し)に向いている。

 一方のPage Blobは、ファイルに対するランダムな読み書きに適するストレージとして開発された(写真2)。ファイルの分割単位は512バイト固定長の「ページ」だ。データを保存する際は、最大10Gバイトの領域を持つテーブルが作られ、各ページはそのテーブルにマップされる。ページ番号による読み書きや範囲指定などが可能となる。

 Azure XDriveはNTFSのディスクボリュームであるため、読み書きがランダムに行われることも多い。そのためデータの保存には、Block BlobではなくPage Blobを使用する。今回のPDC09では、Blobにスナップショット機能が搭載されることも明らかにされている。

■変更履歴
「ファイルの分割単位は512Kバイト」としていましたが,正しくは「512バイト」です。お詫びして訂正します。本文は修正済みです。 [2009/11/24]