VDS_HINTS2構造体 (vds.h)
[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。
記憶域プール内の LUN の自動マジック ヒントが含まれています。
構文
typedef struct _VDS_HINTS2 {
ULONGLONG ullHintMask;
ULONGLONG ullExpectedMaximumSize;
ULONG ulOptimalReadSize;
ULONG ulOptimalReadAlignment;
ULONG ulOptimalWriteSize;
ULONG ulOptimalWriteAlignment;
ULONG ulMaximumDriveCount;
ULONG ulStripeSize;
ULONG ulReserved1;
ULONG ulReserved2;
ULONG ulReserved3;
BOOL bFastCrashRecoveryRequired;
BOOL bMostlyReads;
BOOL bOptimizeForSequentialReads;
BOOL bOptimizeForSequentialWrites;
BOOL bRemapEnabled;
BOOL bReadBackVerifyEnabled;
BOOL bWriteThroughCachingEnabled;
BOOL bHardwareChecksumEnabled;
BOOL bIsYankable;
BOOL bAllocateHotSpare;
BOOL bUseMirroredCache;
BOOL bReadCachingEnabled;
BOOL bWriteCachingEnabled;
BOOL bMediaScanEnabled;
BOOL bConsistencyCheckEnabled;
VDS_STORAGE_BUS_TYPE BusType;
BOOL bReserved1;
BOOL bReserved2;
BOOL bReserved3;
SHORT sRebuildPriority;
} VDS_HINTS2, *PVDS_HINTS2;
メンバー
ullHintMask
LUN ヒント マスク。 この構造体の各 BOOL メンバーには、マスクで設定できる対応するヒント フラグがあります。 ヒント フラグが設定されている場合、対応するヒントが考慮されます。 ヒント フラグが設定されていない場合、ヒントは無視されます。 ヒント フラグについては、次の表で説明します。
値 | 意味 |
---|---|
|
プロバイダーは、回復に必要な時間を制限します。 高速復旧をサポートするために、プロバイダーは変更ログを使用します。これにより、プロバイダーは LUN の内容全体を比較せずに LUN を回復できます。 |
|
プロバイダーは、通常、パリティ ストライピングではなくミラーリングを使用して、読み取り主の使用パターンに対して LUN を最適化します。 |
|
プロバイダーは、シーケンシャル読み取り使用パターンに合わせて LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALWRITESも設定されていない場合、LUN はランダム I/O 用に最適化されます。 |
|
プロバイダーは、連続書き込みの使用パターンに合わせて LUN を最適化します。 このフラグが設定されておらず、VDS_HINT_OPTIMIZEFORSEQUENTIALREADSも設定されていない場合、LUN はランダム I/O 用に最適化されます。 |
|
プロバイダーは、読み取りバックを使用して LUN への書き込みを検証します。 |
|
LUN エクステントとドライブ エクステントのマッピングは、プロバイダーによって自動的に作成および更新されます。 このフラグが設定されていない場合、ドライブの障害を回避するためにプロアクティブなアクションが実行される場合を除き、マッピングは構成後も固定されたままになります。 |
|
プロバイダーは、LUN の書き込みキャッシュ ポリシーを有効にします。 |
|
プロバイダーは、LUN でハードウェア チェックサムを有効にします。 |
|
プロバイダーは LUN を構成して、それに寄与するドライブを最小限のシステム中断で物理的に削除できるようにします。 これは通常、LUN ができるだけ少ないドライブを占有するようにすることで実現されます。 |
|
プロバイダーは LUN にホット スペアを割り当てます。 詳細については、「 ホット スペーリング、 VDS_DRIVE_FLAG、VDS_DISK_FLAG」を参照 してください。 |
|
プロバイダーは、LUN で指定されたバスの種類を使用します。 詳細については、「 VDS_STORAGE_BUS_TYPE」を参照してください。 |
|
プロバイダーは LUN 上のミラー化されたキャッシュを使用します。 VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_SUPPORTS_MIRRORED_CACHE値を参照してください。 |
|
プロバイダーは、LUN で読み取りキャッシュを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_READ_CACHE_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_READ_CACHING_CAPABLE値を確認します。 |
|
プロバイダーは LUN で書き込みキャッシュを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_WRITE_CACHE_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_WRITE_CACHING_CAPABLE値を確認します。 |
|
プロバイダーは、LUN でメディア スキャンを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_MEDIA_SCAN_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_MEDIA_SCAN_CAPABLE値を確認します。 |
|
プロバイダーは、LUN の整合性チェックを有効にします。 VDS_LUN_FLAG列挙のVDS_LF_CONSISTENCY_CHECK_ENABLED値と、VDS_SUB_SYSTEM_FLAG列挙のVDS_SF_CONSISTENCY_CHECK_CAPABLE値を参照してください。 |
ullExpectedMaximumSize
LUN の拡大が予想される最大サイズ (バイト単位)。 IVdsHwProviderStoragePools::CreateLunInStoragePool メソッドが呼び出されると、値は ullSizeInBytes パラメーターで指定された値と等しいか、より大きいか、または小さくなります。 一部のプロバイダーでは、この値を使用して LUN の領域を予約します。 通常、領域を予約できないプロバイダーは、このパラメーターを無視します。
ulOptimalReadSize
LUN の最適な読み取りサイズ (バイト単位)。 ゼロは、最適な読み取りサイズがないことを示します。
ulOptimalReadAlignment
LUN の最初の論理ブロックに対する最適な読み取りアラインメント。 ゼロは、最適な読み取りアラインメントがないことを示します。
ulOptimalWriteSize
LUN の最適な書き込みサイズ (バイト単位)。 ゼロは、最適な書き込みサイズがないことを示します。
ulOptimalWriteAlignment
LUN の最初の論理ブロックに対する最適な書き込みアラインメント。 ゼロは、最適な書き込み配置がないことを示します。
ulMaximumDriveCount
LUN に寄与するドライブの最大数。 0 は、ドライブの最大数がないことを示します。 この値を使用して、ストライプ セット内のストライプ インターリーブの数を制限できます。
ulStripeSize
ミラーまたはパリティ ストライプインターリーブ サイズ (バイト単位)。 0 の場合、ストライプ サイズは指定されません。
ulReserved1
このメンバーは将来使用するために予約されています。 使用しないでください。
ulReserved2
このメンバーは将来使用するために予約されています。 使用しないでください。
ulReserved3
このメンバーは将来使用するために予約されています。 使用しないでください。
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 フラグを設定して、このメンバーの関心を示します。
bAllocateHotSpare
クライアントがこの LUN にホット スペア ドライブを割り当てる場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_ALLOCATEHOTSPARE フラグを設定して、このメンバーの関心を示します。
bUseMirroredCache
クライアントがこの LUN でミラー化キャッシュを使用する場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_USEMIRROREDCACHE フラグを設定して、このメンバーの関心を示します。
bReadCachingEnabled
クライアントが LUN で読み取りキャッシュを使用する場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_READCACHINGENABLED フラグを設定して、このメンバーの関心を示します。
bWriteCachingEnabled
クライアントが LUN で書き込みキャッシュを使用する場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_WRITECACHINGENABLED フラグを設定して、このメンバーの関心を示します。
bMediaScanEnabled
クライアントがこの LUN のメディア スキャンを有効にする場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_MEDIASCANENABLED フラグを設定して、このメンバーの関心を示します。
bConsistencyCheckEnabled
クライアントがこの LUN の整合性チェックを有効にする場合は TRUE、それ以外の場合は FALSE。 ullHintMask メンバーのVDS_HINT_CONSISTENCYCHECKENABLED フラグを設定して、このメンバーに関心があることを示します。
BusType
LUN の バスの種類を指定するVDS_STORAGE_BUS_TYPE列挙値。 ullHintMask メンバーのVDS_HINT_BUSTYPE フラグを設定して、このメンバーの関心を示します。
bReserved1
このメンバーは将来使用するために予約されています。 使用しないでください。
bReserved2
このメンバーは将来使用するために予約されています。 使用しないでください。
bReserved3
このメンバーは将来使用するために予約されています。 使用しないでください。
sRebuildPriority
LUN のリビルド優先度。 この値の範囲は、0 (最も低い優先度) から 15 (最も高い優先度) までです。
解説
IVdsHwProviderStoragePools::Create LunInStoragePool メソッドは、この構造体をパラメーターとして渡して、記憶域プールに LUN を作成するためのヒントを提供します。 これは、新しいヒントのセットを LUN に適用するために 、IVds Lun2::ApplyHints2 メソッドのパラメーターとして渡されます。 さらに、現在 LUN または LUN プレックスに適用されているヒントを報告するために、 IVds Lun2::QueryHints2 メソッドによって返されます。
ヒントは、実装者へのディレクティブではありません。 一般に、実装者はヒントを考慮に入れて最善を尽くす必要はありますが、それに従う義務はありません。 実装者は、技術的な理由から指定されたヒントに従うことができない場合や、そのヒントに従うと構成が悪くなる可能性がある場合に、代替手段を選択できます。
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
ヘッダー | vds.h |