Ask CORE

Microsoft Japan Windows Technology Support

仮想ディスク サービス (VDS) について

こんにちは。日本マイクロソフトの松岡です。
今回は Windows OS に実装されている、仮想ディスク サービス (VDS) についてご紹介します。

 

仮想ディスク サービス (VDS) について
===================================================
VDS はディスクの構成、管理を行うための、統一されたインターフェイスを提供するためのサービスです。
VDS は COM ベースの API を公開していますので、アプリケーションやスクリプトは COM インターフェイスを呼び出し、ディスクの作成やフォーマット、あるいはハードウェア RAID アダプターを管理することができます。
例えば、Diskpart コマンドや [ディスクの管理] MMC スナップインは、VDS API ベースのプログラムとなります。
これにより、ユーザーは、異なるベンダーのストレージ デバイスを、同一のユーザー インターフェイス経由で管理することができます。

VDS はソフトウェア プロバイダーとハードウェア プロバイダーという 2 種類のインターフェイスを公開しています。

 

 

ソフトウェア プロバイダーについて
————————————–
ソフトウェア プロバイダーは、ボリューム、ディスク、ディスク パーティションなどへのインターフェイスを実装しています。
これらのインターフェイスは、例えば、ボリュームの作成、拡張、削除機能、または、ミラーの追加 / 解除、ボリュームのフォーマットやドライブ文字の割り当て機能などを提供します。
Windows Server 2003 および Windows Server 2008、Windows Server 2008 R2 では、ベーシック ディスクへのインターフェイスを提供する、ベーシック ソフトウェア プロバイダーと、ダイナミック ディスクへのインターフェイスを提供する、ダイナミック ソフトウェア プロバイダーがあります。

ハードウェア プロバイダーについて
————————————–
ハードウェア プロバイダーは、ハードウェア ベンダーにより、DLL として実装されます。
DLL はレジストリ内に登録され、デバイスに依存しない VDS コマンドをハードウェア固有のコマンドに変換します。
また、ハードウェア RAID アレイやアダプター カードなどのストレージ サブシステムの管理機能も提供しており、LUN の作成、拡張、削除、マスク、あるいは、マスク切り替えなどがサポートされています。

なお、VDS サービスは、アプリケーションが VDS API への接続を開始した際に、VDS ローダー プロセスにより起動され、操作終了後には自動で終了します。

– 参考情報
About VDS (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa381442(v=vs.85).aspx

 

イベント ソース : VDS Basic Provider について
===================================================
Windows Server 2003 および Windows Server 2008、Windows Server 2008 R2 で、以下のようなイベントが記録されることがあります。

************************************************************
イベントの種類: エラー
イベント ソース: VDS Basic Provider 1.0
イベント カテゴリ: なし
イベント ID: 1
日付: 日付
時刻: 時刻
ユーザー: N/A
コンピュータ: コンピュータ名
説明:
予期しないエラーが発生しました。エラー コード: xx@xxxxxxxx
************************************************************

VDS サービスは、デバイスやデバイス コントローラから情報を取得したり、操作を行うために Plug&Play マネージャ経由でドライバに対して要求を行います。
その要求が何らかの問題によりエラーとなった場合、予期しないエラーが発生したとして、本イベントが記録されることがあります。
なお、このエラーは、 2 つの情報を含んでおり、@ 前の値はエラー コード、@ 以降の値は内部関数の発生場所を示します。
記録されるエラー コードはイベントの発生状況により異なりますが、過去事例では以下のものが報告されています。

32@01000004 (ERROR_NOT_SUPPORTED)
D@01010004 (ERROR_INVALID_DATA)
2@01010013 (ERROR_FILE_NOT_FOUND)
490@01010004 (ERROR_NOT_FOUND)
1@01000003 (ERROR_INVALID_FUNCTION)
57@01010018 (ERROR_INVALID_PARAMETER)
1@02000018 (ERROR_INVALID_FUNCTION)

これらのエラー コードは過去事例において無視しても良いと判断されたものですが、本イベントが記録された際には、エラー コードのみで判断せず、その前後でどのような処理を行っていたかがより重要です。

通常稼働時に本イベントが記録される場合、デバイスや、デバイスへのパスに問題が発生していることが考えられます。
ただし、バックアップ処理などにより、一時的なパスの切断などが発生しており、そのタイミングで記録される場合、実害が発生していないようであれば、本イベントは無視できます。
例えば、バックアップ処理の中で、Diskpart を使用してディスクのオフライン操作を行っている場合などに、VDS サービスからの情報の取得要求が行われたものの、オフライン処理中だったために、取得に失敗し、エラーが記録されることなどがあります。

なお、以下の公開情報では、本イベントが無視できるケースについて記載されています。

文書番号: 979391
VDS 基本的プロバイダー イベント ID 1 HYPER-V ゲスト オペレーティング システムにログオンしています。
http://support.microsoft.com/kb/979391/ja

文書番号: 932446
システム センター Data Protection Manager 2006 に DpmBackup プログラムを使用すると、システム ログにエラー イベント:「エラー コード 1@01000003]
http://support.microsoft.com/kb/932446/ja

——————————————————————————-

変更履歴

2016 年 6 月 10 日

・一部のエラーコードについて記載が誤っていたため、修正。

(修正前)

D@0101004 (ERROR_INVALID_DATA)

(修正後)

D@01010004 (ERROR_INVALID_DATA)