다음을 통해 공유


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 멤버에는 마스크에 설정할 수 있는 해당 힌트 플래그가 있습니다. 힌트 플래그가 설정되면 해당 힌트가 고려됩니다. 힌트 플래그가 설정되지 않은 경우 힌트는 무시됩니다. 힌트 플래그는 다음 표에 설명되어 있습니다.

의미
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x00000000000000001L
공급자는 복구에 필요한 시간을 제한합니다. 빠른 복구를 지원하기 위해 공급자는 LUN의 전체 콘텐츠를 비교하지 않고도 공급자가 LUN을 복구할 수 있도록 하는 변경 로그를 사용합니다.
VDS_HINT_MOSTLYREADS
0x0000000000000002L
공급자는 일반적으로 패리티 스트라이프 대신 미러링을 사용하여 주로 읽는 사용 패턴을 위해 LUN을 최적화합니다.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x00000000000000004L
공급자는 순차 읽기 사용 패턴에 대해 LUN을 최적화합니다. 이 플래그가 설정되지 않고 VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES 설정되지 않은 경우 LUN은 임의 I/O에 최적화됩니다.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
공급자는 순차적 쓰기 사용 패턴에 대해 LUN을 최적화합니다. 이 플래그가 설정되지 않고 VDS_HINT_OPTIMIZEFORSEQUENTIALREADS 설정되지 않은 경우 LUN은 임의 I/O에 최적화됩니다.
VDS_HINT_READBACKVERIFYENABLED
0x0000000000000010L
공급자는 읽기 저장을 사용하여 LUN에 대한 쓰기를 확인합니다.
VDS_HINT_REMAPENABLED
0x0000000000000020L
드라이브 익스텐트에 대한 LUN 익스텐트 매핑은 공급자가 자동으로 만들고 업데이트합니다. 이 플래그가 설정되지 않은 경우 드라이브 오류를 방지하기 위해 사전 조치를 취하는 경우를 제외하고 구성 후에도 매핑이 고정된 상태로 유지됩니다.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x00000000000000040L
공급자는 LUN에서 쓰기 통과 캐싱 정책을 사용하도록 설정합니다.
VDS_HINT_HARDWARECHECKSUMENABLED
0x0000000000000080L
공급자는 LUN에서 하드웨어 체크섬을 사용하도록 설정합니다.
VDS_HINT_ISYANKABLE
0x00000000000000100L
공급자는 LUN에 기여하는 드라이브를 시스템 중단을 최소화하면서 물리적으로 제거할 수 있도록 LUN을 구성합니다. 이는 일반적으로 LUN이 가능한 한 적은 수의 드라이브를 차지하도록 하여 수행됩니다.

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로 설정합니다. bOptimizeForSequentialReadsbOptimizeForSequentialWrites 멤버를 모두 FALSE로 설정하면 임의 I/O에 대해 최적화됩니다. ullHintMask 멤버에서 VDS_HINT_OPTIMIZEFORSEQUENTIALREADS 플래그를 설정하여 이 멤버에 대한 관심을 나타냅니다.

bOptimizeForSequentialWrites

순차 쓰기 사용 패턴을 최적화하려면 이 멤버를 TRUE로 설정합니다. 그렇지 않으면 FALSE로 설정합니다. bOptimizeForSequentialReadsbOptimizeForSequentialWrites 멤버를 모두 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 플렉스에 새 힌트 집합을 적용하기 위해 IVdsLunIVdsLunPlex 인터페이스의 ApplyHints 메서드에서 매개 변수로 전달됩니다. 또한 IVdsLun 및 IVdsLunPlex 인터페이스 모두에서 QueryHints 메서드에 의해 반환되어 현재 LUN 또는 LUN 플렉스에 적용된 힌트를 각각 보고합니다.

힌트는 구현자에 대한 지시문이 아닙니다. 구현자는 일반적으로 힌트를 고려하기 위해 최선을 다할 것으로 예상되지만 따라야 할 의무는 없습니다. 구현자는 기술적인 이유로 지정된 힌트를 따를 수 없거나 이를 따르는 경우 구성이 좋지 않은 경우 대안을 선택할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista[데스크톱 앱 전용]
지원되는 최소 서버 Windows Server 2003[데스크톱 앱 전용]
머리글 vds.h

추가 정보

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

VDS 구조체