VDS の使用
[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。
VDS には、さまざまなハードウェア構成間でデータを移行する、異種ストレージ システムのセットを管理する Windows サーバー管理者が実行するアクティビティを簡略化できるスクリプトと GUI 開発用のインターフェイスが用意されています。 VDS 開発で使用されるオブジェクトに慣れていない場合は、 VDS オブジェクト モデルを参照してください。
開始する前に、いくつかのポイントを次に示します。
- VDS にはソフトウェア プロバイダーが含まれていますが、ハードウェア プロバイダーの操作を利用するには、ハードウェア プロバイダーと関連するハードウェアを個別に購入する必要があります。 インストール手順については、ハードウェアの製造元が提供するドキュメントを参照してください。
- 一部の操作では、NTFS 形式のボリュームが必要です。 たとえば、既存のディレクトリにボリュームをマウントする場合、そのディレクトリを含むボリュームは NTFS でフォーマットする必要があります。 他のファイル システムでは、この操作はサポートされていません。 NTFS を必要とする操作の詳細については、「 VDS リファレンス」の各メソッド ページを参照してください。
プログラミング言語
C 言語や C++ など、COM での開発に適した任意のプログラミング言語を使用します。
セキュリティ
Windows ファイアウォールは既定で有効になっています。 これにより、リモートで実行できる IVdsAdviseSink などのコールバック インターフェイスの認証が失敗する可能性があります。 クライアントまたはサーバーで Windows ファイアウォールが有効になっている場合は、Windows ファイアウォールの [ 例外 ] タブにリモート ボリューム管理を追加する必要があります。
Windows Server 2003: Windows Server 2003 Service Pack 2 (SP2) と Windows Server 2003 Service Pack 1 (SP1) では、クライアントまたはサーバーのいずれかで Windows ファイアウォールが有効になっている場合、およびサーバーが NTLM 認証を使用するように構成されている場合は、適切なコンピューターの Windows ファイアウォールの [ 例外 ] タブに次の設定を追加する必要があります。
Computer | 例外の設定 |
---|---|
クライアント コンピューター (ローカル) | Dmremote.exe Mmc.exe Vdsldr.exe TCP 135 |
サーバー コンピューター (リモート) | Dmadmin.exe Vds.exe TCP 135 |
Windows ファイアウォールは、Windows Server 2003 SP1 まで既定で有効にならないことに注意してください。
VDS を使用しているアプリケーションは、バックアップ オペレーターまたは Administrators グループ アカウントで実行する必要があります。 適切な特権がないと、アプリケーションはサービス ローダー オブジェクトを作成できますが、オブジェクトは VDS を読み込まれません。 代わりに、VDS へのアクセスが拒否されたことを示すエラーが返されます。
ネットワークで NTLM 認証が使用されている場合、クライアント コンピューターは匿名アクセスを許可する必要があります。 この場合、クライアント コンピューターが Windows Server オペレーティング システムを実行している場合、匿名アクセスは既定で有効になります。 Windows クライアント オペレーティング システムを実行している場合は、Dcomcnfg.exeを使用して匿名アクセスを有効にする必要があります。
構成とクエリ操作
構成とクエリの操作のスコープは、最も関連性の高いコンピューター、プロバイダー、サブシステム、またはパックです。 クエリは、1 つのプロバイダーまたはバインド階層の 1 つのレベルのみを走査します。 フル ビューを作成するには、呼び出し元が各レベル間でクエリを実行する必要があります。 次の一覧に例を示します。
- コンピューター上のすべてのディスクを表示するには、呼び出し元は、それらのプロバイダーによって要求されたディスクについて、すべてのソフトウェア プロバイダーでクエリを実行する必要があります。
- ソフトウェア スタック ボリュームの影響を受けるディスクを特定するために、呼び出し元は最初にコントリビューションするプレックスを決定してから、各プレックスのディスク エクステントを照会します。
- 特定のサブシステムに接続されているすべてのドライブを表示するには、呼び出し元がサブシステムに対してクエリを実行する必要があります。
- 特定のサブシステムによって公開されているすべての LUN を表示するには、呼び出し元がサブシステムに対してクエリを実行する必要があります。
- SAN またはクラスター上のすべてのストレージを表示するには、呼び出し元は、すべてのハードウェア プロバイダーについて各コンピューターに対してクエリを実行し、すべてのサブシステムの各プロバイダーに対してクエリを実行してから、各サブシステムに対してクエリを実行する必要があります。
個々のクエリは重複を返しませんが、コンピューター間またはプロバイダー間で繰り返しクエリを実行すると、重複が蓄積される可能性があります。 呼び出し元は、フィルター処理を実装する必要があります。 また、SAN 管理アプリケーションでは、Active Directory またはリポジトリを使用して構成情報を保持できることにも注意してください。各コンピューターに対してクエリを実行する必要がない場合があります。