特集 Windows Server 2003完全ガイド
.NET Server 2003のエンタープライズ・ストレージ機能

2.Windows .NET Serverのストレージ強化ポイント

Peter Pawlak
2003/01/15
Copyright(C) 2002, Redmond Communications Inc. and Mediaselect Inc.

 Windows .NET Serverで強化されるストレージ関連機能には、次のようなものが含まれる。

  1. Volume Shadow Copy Serviceによるスナップショットのサポート
  2. Virtual Disk Serviceによる優れたストレージ管理
  3. SANシナリオ対応、またはNASデバイス向けOSプラットフォームとしての機能強化

強化ポイント(1):スナップショット機能

 Windows .NET Serverには、Volume Shadow Copy Service(VSS)と呼ばれる新しいサービスとAPIが含まれる。これはアプリケーション、OSサービス、ストレージデバイス、バックアップ・アプリケーションを連携し、アプリケーションに影響を与えず、ほとんどのストレージ技術と同等のクリーンな“シャドーコピー”(すなわちスナップショット)を可能にするものだ。

 VSSは、Dell、EMC、HPなどのネットワーク・ストレージ・ベンダが供給するハード・ベースのスナップショット技術と通信するためのインターフェイスを提供する(詳細は以下の「Volume Shadow Copy Service(VSS)の仕組み」参照)。

Volume Shadow Copy Service(VSS)の仕組み
 Volume Shadow Copy Service(VSS)は、3つのコンポーネント(リクエスタ、ライタ、プロバイダ)を利用して、その時点におけるディスク・ボリュームのスナップショットを取る。

 リクエスタはバックアップ・プログラムやVSSスケジューラなどのプログラムで、VSSがシャドー・コピー(スナップショット)を作成するためのリクエストを出す。

 ライタは、Windowsファイル・システム、レジストリやActive DirectoryなどのOSデータベース、そのほか、ディスク・ストレージにデータを書き込むさまざまなVSS対応アプリケーションだ。

 リクエスタからスナップショットの要求を受け取ると、VSSは適切なライタとやりとりして、新しいトランザクションを停止し、現在のトランザクションを終了して、キャッシュ・データをすべてディスクにフラッシュする。その後、要求のあったディスク・ボリュームに対するスナップショットのプロセスを開始するよう適切なプロバイダに指示する。スナップショットが取られると、VSSはライタにディスクへの書き込みが可能になったことを通知する。

 スナップショットを可能にする方法が唯一、ミラーされたディスク・ボリューム全体をフリーズして分離するだけであったなら、個々のスナップショットは比較的小規模なデータの変更でも、巨大なストレージ量が必要になっただろう。しかし、Microsoftとパートナーのストレージ・ベンダは、よりスペース効率の優れた方法でスナップショットを実装した。

 それは、ファイル・テーブルのコピーを取り、変更のあったストレージ・ブロックのコピーだけをキープする方法だ。この方法であれば、全体のストレージ要求量がわずかに増加するだけで済む。

 ローカルのバックアップ・プログラム・エージェントなどのVSS“リクエスタ”がスナップショットの必要性を発信すると、VSS対応アプリケーション(SQL ServerやExchangeの次期リリース)は現在のトランザクションを終了して待機する。

 次に、VSSはストレージ・デバイスにスナップショットを取るように信号を送る(数秒で完了する)。それが終わると、アプリケーションは元の状態に復帰する。これによりバックアップ・プログラムは、実行中のアプリケーションに影響を及ぼすことなく、スナップショットされたデータのバックアップを実行できる。

 Microsoftによると、こうした一連のメカニズムをOSに組み込むことは、先進的なUNIXシステムを含め、プラットフォームとしては初の試みだという。VSS以前、OracleやSQL Serverデータベースなどのアプリケーションが、SANデバイスとデータのスナップショットで連携するには、アプリケーションとストレージ・デバイスごとに特定の仲介エージェントを実行する必要があった。

 VSSには、VSSサービスを操作するためのスクリプトからコールできるリクエスタ・ユーティリティと、スナップショットのスケジューラなどのグラフィカル管理ツールが含まれる(以下の画面「シャドー・コピーの作成」参照)。

シャドー・コピーの作成
Windows .NET Serverはシャドー・コピー(スナップショット)を作成するためのグラフィカル・ユーザー・インターフェイスを搭載している。上段のウィンドウは、“Computer Management” Microsoft Management Console(MMC)にあるShared Foldersオブジェクトのプロパティ・ページからオープンする。管理者はここからストレージ・ボリュームのスナップショットを実行できる。“Settings”ボタンを押すと、中段のウィンドウが開く。ここでスナップショットの格納場所や最大サイズなどを設定することができる。“Schedule”ボタンを押すと、下段のウィンドウが開き、スナップショットの自動実行をスケジュール化できる。

 バックアップとレストア機能の劇的な改善に加え、VSSにはエンド・ユーザー向けのメリットも用意されている。

 Windows .NET Serverには、Windows XPワークステーションにインストールされ、エンドユーザーから共有.NET Serverディレクトリ上に置かれたファイルのシャドー・コピーにアクセスできるWindows Explorer拡張機能が含まれている(以下の画面「エンドユーザーからシャドー・コピーへのアクセス」参照)。ユーザーはスナップショットを実行できないが、必要なパーミッションを持てば、IT部門のスタッフの関与なしにファイルをレストアできる。

エンド・ユーザーからシャドー・コピーへのアクセス
Windows XPユーザーはシャドー・コピーにダイレクトにアクセスできる。まず最初に、ユーザーのWindows XPワークステーションに小さなWindows Explorer拡張機能(Windows .NET Serverに含まれる)をインストールする。その後、ファイルへの“読み込み”パーミッションを持つユーザーが、ファイルのプロパティをオープンすると、新しく“Previous Versions”タブが表示され、そのファイルの利用可能なスナップショットがリストアップされる。ユーザーはスナップショットをオープンしたり、コピーすることができる。また“書き込み”パーミッションを持つユーザーは、ファイルを前のスナップショットにレストアすることが可能だ。

 スナップショットはネットワーク・ストレージで真価を発揮するものだが、.NET ServerではVSSと従来のDASを連携させるプロバイダを用意し、SANやNASを導入できない中小企業にもスナップショットのメリットを提供している。

強化ポイント(2):仮想ディスクサービス

 Windows .NET Serverは、Virtual Disk Service(VDS)と呼ぶ新しいストレージ管理APIを導入する。このAPIは、.NET ServerのWindows Disk Managerユーティリティやサードパーティの管理アプリケーションが関連VDSプロバイダを持つストレージ・デバイスと通信するための、ハードに依存しない標準的な方法を提供する。

 SANやNASに関する問題の1つは、個々のハード・ベンダがストレージ管理に独自の手法を提供している点だ。ハイエンドのストレージ・アレイの中には独立した管理プロセッサとコンソールを持つものもあるが、通常はストレージ・アレイを利用するサーバ上で実行される管理アプリケーションのコマンドを用いる。

 いずれのアプローチもプロプライエタリな技術を採用しているため、ストレージ・ベンダ間を越えて一様に機能するようなストレージ管理アプリケーションの開発は難しい。

 VDSはストレージ管理インターフェイスでこの問題を解決している。これを利用すると、ストレージISVはディスクの初期化やミラーのバインドあるいはブレイク、ユーザーやアプリケーションがディスク・スペースを消費したときに、動的にストレージ・ボリュームを増大するといった共通のストレージ・コンフィグレーション作業を自動化することができる。

 Windows .NET Serverはまた、サーバがSANに接続するときに用いるホスト・バス・アダプタ(HBA)用の標準APIをサポートする。このMicrosoft HBA APIは、Storage Networking Industry Association(SNIA)によって開発されたAPIをベースとしており、Fibre ChannelスイッチなどのSAN通信デバイスの管理が可能だ。

 Microsoftはダイナミック・リンク・ライブラリ(DLL)を提供し、HBAベンダはそれとWindows Management Infrastructure(WMI)経由でやりとりするドライバを記述することになる。 

強化ポイント(3):そのほかの機能強化点

 Windows .NET Serverは、VSSやVDSのほかにも、次のようなSANおよびNAS関連の強化機能を含んでいる。

■SANブート
 Windows .NET Serverには、SANベースのストレージ・ボリュームからブートするオプションが用意される。このことは、サーバに関連するデータはすべて、SANにストアできる(そこからバックアップもできる)ことを意味する。OSファイルもアプリケーション・ファイルと同じにストレージのメリットが得られるだけでなく、災害復旧の面においても重要な点だ。

 もしSANデータが継続的にほかのサイトのストレージに複製されていれば、プライマリ・サーバに何か起こったとき、バックアップ・サーバは対応する複製を検索して、ただちにブートアップできるだろう(バックアップ・サーバのネットワーク・カードやHBAといった重要なハードがプライマリ・サーバと同一であると仮定した場合)。

 OEM独自の幾つかのWindows 2000 SAN実装(Microsoft未サポート)を除き、WindowsサーバはこれまでSANからブートすることができず、各サーバにはWindows OSとページング・ファイル用のローカル・ディスク・ドライブが必要だった。そのため、システム・ディスクのデータが消失したり、破壊された場合、問題が生じる可能性があった。

 というのも、そこにはレジストリを始め、システムやアプリケーションをレストアするために必要不可欠なファイルが数多く存在しているからだ。それらの情報が正常にバックアップされなければ、OSやアプリケーションのレストアは困難になり、最悪の場合は不可能になる。

 システム・ボリュームの耐障害性を向上させるためにSAN接続したサーバでハード・タイプのRAIDコントローラやディスク・ミラーリングを利用すると大きな出費を強いられるが、ローカル・ストレージを完全になくし、SANベースのシステム・ボリュームからサーバをブートするようにすれば、その必要はなくなる。

 MicrosoftはSANから.NET Serverをブートさせるようにするが、一定の注意は必要だ。それにはベンダのサポートが不可欠であり、これまでのところ特定のハードの組み合わせしかテストされていない。

■マルチパスI/O
 Microsoftはストレージ・ハード・ベンダと連携し、ハードに依存しないMultipath I/Oと呼ぶAPIを定義している。それはデュアルHBAや、サーバとSANストレージ・ユニットとの間を結ぶ独立冗長ネットワーク・パスに必要なものだ。

 一般に高可用性ソリューションを構築するときの原則は、シングル・ポイント障害を回避することだ。SAN環境の場合、サーバとストレージ・コントローラ間の接続部分は、障害が発生する可能性のあるポイントとなる。サーバとストレージ・コントローラの間に冗長パスを置くことが、そのソリューションとなる。

 この場合、Windows 2000 Serverでプロプライエタリなソリューションを構築することも可能だが、MicrosoftはDell、EMC、HP/Compaq、日立などのベンダと手を組み、Windows 2000 ServerやWindows .NET Serverを実行してSAN接続するホストに標準マルチパス・ソリューションを提供することにした。

 それぞれのストレージ・ベンダは、マルチパス I/O上で独自の“デバイス固有モジュール”(ドライバ)を開発し、自社製品を適合させる。このアイデアは共通機能に一貫したコード・ベースを提供し、各ベンダのドライバに信頼性を持たせることが狙いだ。

■LUNマスキングと動的スキャニングの無効化
 Windows .NET Serverの管理者は、SAN環境にないユーザーのために、幾つかの機能を無効にできる。Windows NTと2000の場合、存在が確認できるディスク・ボリュームはすべて自らのシステムにのみ“帰属”するという前提で設計されていた。そしてWindowsは“ディスク・シグネチャ”と呼ばれるラベルをボリュームに書き込み、リソースとして管理した。

 この方法によって、初期のWindowsバージョンが稼働するサーバは、たとえほかのサーバに利用されるにしても、SANストレージ・ボリュームを論理ユニット番号(LUN)で認識した。

 一方、Windows .NET Serverでは、上記の動的スキャニングという動作を完全に無効にすることが可能になる。また“LUNマスキング”という新しい機能を利用して、管理者はサーバにほかのサーバが用いるLUNへのアクセスをブロックするポリシーを設定できる。これにより、Windows .NET ServerはそれらのLUNへの読み書きを一切しなくなる。

 LUNアクセス・パーミッションは、ストレージ・ネットワーク・スイッチでもLUNをホストするストレージ・コントローラでも管理できるが、.NET ServerのLUNマスキングはストレージ・ベンダのハードから独立した追加的レベルの保護機能を提供する。


 INDEX
  [特集]Windows Server 2003完全ガイド
  .NET Server 2003のエンタープライズ・ストレージ機能
     1.ネットワーク・ストレージのメリット
   2.Windows .NET Serverのストレージ強化ポイント
     3.Windows環境でネットワーク・ストレージの普及が遅れる理由
 
目次ページへ  Windows Server 2003完全ガイド


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間