VDS_HINTS 구조체(vds.h)
[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 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 멤버에는 마스크에 설정할 수 있는 해당 힌트 플래그가 있습니다. 힌트 플래그가 설정되면 해당 힌트가 고려됩니다. 힌트 플래그가 설정되지 않은 경우 힌트는 무시됩니다. 힌트 플래그는 다음 표에 설명되어 있습니다.
ullExpectedMaximumSize
LUN이 증가할 것으로 예상되는 최대 크기(바이트)입니다. 값은 IVdsSubSystem::CreateLun 메서드가 호출될 때 ullSizeInBytes에 지정된 값보다 크거나 작을 수 있습니다. 일부 공급자는 이 값을 사용하여 LUN에 대한 공간을 예약합니다. 공간을 예약할 수 없는 공급자는 일반적으로 이 매개 변수를 무시합니다.
ulOptimalReadSize
LUN의 최적 읽기 크기(바이트)입니다. 0은 최적의 읽기 크기를 나타내지 않습니다.
ulOptimalReadAlignment
LUN의 첫 번째 논리 블록과 관련된 최적의 읽기 맞춤입니다. 0은 최적의 읽기 맞춤이 없음을 나타냅니다.
ulOptimalWriteSize
LUN의 최적 쓰기 크기(바이트)입니다. 0은 최적의 쓰기 크기를 나타내지 않습니다.
ulOptimalWriteAlignment
LUN의 첫 번째 논리 블록과 관련된 최적의 쓰기 맞춤입니다. 0은 최적의 쓰기 맞춤이 없음을 나타냅니다.
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::CreateLun 메서드는 이 구조를 매개 변수로 전달하여 LUN을 만들기 위한 힌트를 제공합니다. 각각 LUN 또는 LUN 플렉스에 새 힌트 집합을 적용하기 위해 IVdsLun 및 IVdsLunPlex 인터페이스의 ApplyHints 메서드에서 매개 변수로 전달됩니다. 또한 IVdsLun 및 IVdsLunPlex 인터페이스 모두에서 QueryHints 메서드에 의해 반환되어 현재 LUN 또는 LUN 플렉스에 적용된 힌트를 각각 보고합니다.
힌트는 구현자에 대한 지시문이 아닙니다. 구현자는 일반적으로 힌트를 고려하기 위해 최선을 다할 것으로 예상되지만 따라야 할 의무는 없습니다. 구현자는 기술적인 이유로 지정된 힌트를 따를 수 없거나 이를 따르는 경우 구성이 좋지 않은 경우 대안을 선택할 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista[데스크톱 앱 전용] |
지원되는 최소 서버 | Windows Server 2003[데스크톱 앱 전용] |
머리글 | vds.h |