VDS_HINTS 構造体 (vds.h)

[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。

LUN または LUN プレックスの自動マジック ヒントを定義します。

構文

typedef struct _VDS_HINTS {
  ULONGLONG ullHintMask;
  ULONGLONG ullExpectedMaximumSize;
  ULONG     ulOptimalReadSize;
  ULONG     ulOptimalReadAlignment;
  ULONG     ulOptimalWriteSize;
  ULONG     ulOptimalWriteAlignment;
  ULONG     ulMaximumDriveCount;
  ULONG     ulStripeSize;
  BOOL      bFastCrashRecoveryRequired;
  BOOL      bMostlyReads;
  BOOL      bOptimizeForSequentialReads;
  BOOL      bOptimizeForSequentialWrites;
  BOOL      bRemapEnabled;
  BOOL      bReadBackVerifyEnabled;
  BOOL      bWriteThroughCachingEnabled;
  BOOL      bHardwareChecksumEnabled;
  BOOL      bIsYankable;
  SHORT     sRebuildPriority;
} VDS_HINTS, *PVDS_HINTS;

メンバー

ullHintMask

LUN ヒント マスク。 この構造体の 各 BOOL メンバーには、マスクで設定できる対応するヒント フラグがあります。 ヒント フラグが設定されている場合は、対応するヒントが考慮されます。 ヒント フラグが設定されていない場合、ヒントは無視されます。 ヒント フラグについては、次の表で説明します。

意味
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x0000000000000000001L
プロバイダーは、回復に必要な時間を制限します。 高速復旧をサポートするために、プロバイダーは変更ログを使用します。これにより、プロバイダーは LUN の内容全体を比較せずに LUN を回復できます。
VDS_HINT_MOSTLYREADS
0x00000000000000000002L
プロバイダーは、通常、パリティ ストライピングではなくミラーリングを使用して、読み取りが多い使用パターンに対して LUN を最適化します。
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x0000000000000000004L
プロバイダーは、シーケンシャル読み取り使用パターン用に LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALWRITESも設定されていない場合、LUN はランダム I/O 用に最適化されます。
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x0000000000000000008L
プロバイダーは、シーケンシャル書き込み使用パターン用に LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALREADSも設定されていない場合、LUN はランダム I/O 用に最適化されます。
VDS_HINT_READBACKVERIFYENABLED
0x000000000000000010L
プロバイダーは、読み取りバックを使用して LUN への書き込みを検証します。
VDS_HINT_REMAPENABLED
0x0000000000000000020L
LUN エクステントとドライブ エクステントのマッピングは、プロバイダーによって自動的に作成および更新されます。 このフラグが設定されていない場合、ドライブの障害を回避するためにプロアクティブなアクションが実行される場合を除き、マッピングは構成後も固定されたままになります。
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x000000000000000040L
プロバイダーは、LUN でライトスルー キャッシュ ポリシーを有効にします。
VDS_HINT_HARDWARECHECKSUMENABLED
0x0000000000000000080L
プロバイダーは、LUN でハードウェア チェックサムを有効にします。
VDS_HINT_ISYANKABLE
0x00000000000000100L
プロバイダーは LUN を構成して、それに貢献するドライブを最小限のシステム中断で物理的に削除できるようにします。 これは通常、LUN が可能な限り少ないドライブを占有するようにすることで実現されます。

ullExpectedMaximumSize

LUN の拡大が予想される最大サイズ (バイト単位)。 この値は、IVdsSubSystem::CreateLun メソッドが呼び出されたときに、ullSizeInBytes で指定された値と等しいか、より大きいか、より小さいかのいずれかです。 一部のプロバイダーでは、この値を使用して LUN の領域を予約します。 通常、領域を予約できないプロバイダーは、このパラメーターを無視します。

ulOptimalReadSize

LUN の最適な読み取りサイズ (バイト単位)。 ゼロは、最適な読み取りサイズがないことを示します。

ulOptimalReadAlignment

LUN の最初の論理ブロックに対する最適な読み取りアラインメント。 ゼロは、最適な読み取りアラインメントがないことを示します。

ulOptimalWriteSize

LUN の最適な書き込みサイズ (バイト単位)。 ゼロは、最適な書き込みサイズがないことを示します。

ulOptimalWriteAlignment

LUN の最初の論理ブロックに対する最適な書き込みアラインメント。 ゼロは、最適な書き込み配置がないことを示します。

ulMaximumDriveCount

LUN に貢献するドライブの最大数。 0 は、最大ドライブ数がないことを示します。 この値を使用して、ストライプ セット内のストライプ インターリーブの数を制限できます。

ulStripeSize

ミラーまたはパリティ ストライプインターリーブ サイズ (バイト単位)。 0 の場合、ストライプ サイズは指定されません。

bFastCrashRecoveryRequired

このメンバーが TRUE の場合、復旧時間は制限されます。 ullHintMask メンバーのVDS_HINT_FASTCRASHRECOVERYREQUIRED フラグを設定して、このメンバーの関心を示します。

bMostlyReads

(パリティ ストライピングではなくミラーリングなど) ほとんどの読み取り使用パターンに合わせて最適化するには、このメンバーを TRUE に設定します。 それ以外の場合は、 FALSE に設定します。 ullHintMask メンバーのVDS_HINT_MOSTLYREADS フラグを設定して、このメンバーの関心を示します。

bOptimizeForSequentialReads

シーケンシャル読み取り使用パターンに合わせて最適化するには、このメンバーを TRUE に設定 します。 それ以外の場合は、 FALSE に設定します。 bOptimizeForSequentialReads メンバーと bOptimizeForSequentialWrites メンバーの両方を FALSE に設定すると、ランダム I/O 用に最適化されます。 ullHintMask メンバーのVDS_HINT_OPTIMIZEFORSEQUENTIALREADS フラグを設定して、このメンバーの関心を示します。

bOptimizeForSequentialWrites

シーケンシャル書き込みの使用パターンを最適化するには、このメンバーを TRUE に設定します。 それ以外の場合は、 FALSE に設定します。 bOptimizeForSequentialReads メンバーと bOptimizeForSequentialWrites メンバーの両方を FALSE に設定すると、ランダム I/O 用に最適化されます。 ullHintMask メンバーのVDS_HINT_OPTIMIZEFORSEQUENTIALWRITES フラグを設定して、このメンバーの関心を示します。

bRemapEnabled

このメンバーが TRUE の場合、プロバイダーは LUN エクステントをドライブ エクステントに自動的に再マップします。 FALSE の場合、ブロックが破損しないようにエクステントを明示的に再マップしない限り、LUN エクステントとドライブ エクステントのマッピングは LUN 構成後も固定されたままになります。 ullHintMask メンバーのVDS_HINT_REMAPENABLED フラグを設定して、このメンバーの関心を示します。

bReadBackVerifyEnabled

このメンバーが TRUE に設定されている場合、プロバイダーは読み取りバックによって LUN への書き込みを検証します。 FALSE に設定されている場合、プロバイダーは書き込みを検証しません。 ullHintMask メンバーのVDS_HINT_READBACKVERIFYENABLED フラグを設定して、このメンバーの関心を示します。

bWriteThroughCachingEnabled

このメンバーが TRUE の場合、プロバイダーは LUN で書き込みキャッシュを有効にします。 FALSE の場合、プロバイダーはライトスルー キャッシュを有効にしません。 ullHintMask メンバーのVDS_HINT_WRITETHROUGHCACHINGENABLED フラグを設定して、このメンバーの関心を示します。

bHardwareChecksumEnabled

このメンバーが TRUE の場合、プロバイダーは LUN でチェックサムを有効にします。 ullHintMask メンバーのVDS_HINT_HARDWARECHECKSUMENABLED フラグを設定して、このメンバーの関心を示します。

bIsYankable

このメンバーが TRUE の場合、LUN に貢献するドライブは、システムを大幅に中断することなく物理的に削除できます (これは通常、LUN が少数のドライブからのエクステントで構成されている場合に当てはまります)。 FALSE の場合、システムを大幅に中断しないと LUN を削除できません。 ullHintMask メンバーのVDS_HINT_ISYANKABLE フラグを設定して、このメンバーの関心を示します。

sRebuildPriority

LUN のリビルド優先度。 この値の範囲は、0 (最も低い優先度) から 15 (最も高い優先度) までです。

解説

IVdsSubSystem::Create Lun メソッドは、LUN を作成するためのヒントを提供するために、この構造体をパラメーターとして渡します。 これは、IVds Lun インターフェイスと IVds LunPlex インターフェイスの両方の ApplyHints メソッドでパラメーターとして渡され、新しいヒントのセットを LUN または LUN plex にそれぞれ適用します。 さらに、現在 LUN または LUN プレックスに適用されているヒントを報告するために、IVds Lun インターフェイスと IVds LunPlex インターフェイスの両方で QueryHints メソッドによって返されます。

ヒントは、実装者へのディレクティブではありません。 一般に、実装者はヒントを考慮に入れて最善を尽くす必要はありますが、それに従う義務はありません。 実装者は、技術的な理由から指定されたヒントに従うことができない場合や、そのヒントに従うと構成が悪くなる可能性がある場合に、代替手段を選択できます。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー vds.h

関連項目

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

VDS 構造体