다음을 통해 공유


VDS_HINTS2 구조체(vds.h)

[Windows 8 및 Windows Server 2012 가상 디스크 서비스 COM 인터페이스는 Windows Storage 관리 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 멤버에는 마스크에 설정할 수 있는 해당 힌트 플래그가 있습니다. 힌트 플래그가 설정되면 해당 힌트가 고려됩니다. 힌트 플래그가 설정되지 않은 경우 힌트는 무시됩니다. 힌트 플래그는 다음 표에 설명되어 있습니다.

의미
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이 가능한 한 적은 수의 드라이브를 차지하도록 하여 수행됩니다.
VDS_HINT_ALLOCATEHOTSPARE
0x00000000000000200L
공급자는 LUN에 핫 스스페어 를 할당합니다. 자세한 내용은 핫 스파링, VDS_DRIVE_FLAGVDS_DISK_FLAG 참조하세요.
VDS_HINT_BUSTYPE
0x00000000000000400L
공급자는 LUN에서 지정된 버스 형식을 사용합니다. 자세한 내용은 VDS_STORAGE_BUS_TYPE 참조하세요.
VDS_HINT_USEMIRROREDCACHE
0x00000000000000800L
공급자는 LUN에서 미러 캐시를 사용합니다. VDS_SUB_SYSTEM_FLAG 열거형의 VDS_SF_SUPPORTS_MIRRORED_CACHE 값을 참조하세요.
VDS_HINT_READCACHINGENABLED
0x00000000000001000L
공급자는 LUN에서 읽기 캐싱을 사용하도록 설정합니다. VDS_LUN_FLAG 열거형의 VDS_LF_READ_CACHE_ENABLED 값과 VDS_SUB_SYSTEM_FLAG 열거형의 VDS_SF_READ_CACHING_CAPABLE 값을 참조하세요.
VDS_HINT_WRITECACHINGENABLED
0x00000000000002000L
공급자는 LUN에서 쓰기 캐싱을 사용하도록 설정합니다. VDS_LUN_FLAG 열거형의 VDS_LF_WRITE_CACHE_ENABLED 값과 VDS_SUB_SYSTEM_FLAG 열거형의 VDS_SF_WRITE_CACHING_CAPABLE 값을 참조하세요.
VDS_HINT_MEDIASCANENABLED
0x00000000000004000L
공급자는 LUN에서 미디어 검사를 사용하도록 설정합니다. VDS_LUN_FLAG 열거형의 VDS_LF_MEDIA_SCAN_ENABLED 값과 VDS_SUB_SYSTEM_FLAG 열거형의 VDS_SF_MEDIA_SCAN_CAPABLE 값을 참조하세요.
VDS_HINT_CONSISTENCYCHECKENABLED
0x00000000000008000L
공급자는 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의 최적 읽기 크기(바이트)입니다. 0은 최적의 읽기 크기를 나타내지 않습니다.

ulOptimalReadAlignment

LUN의 첫 번째 논리 블록과 관련된 최적의 읽기 맞춤입니다. 0은 최적의 읽기 맞춤이 없음을 나타냅니다.

ulOptimalWriteSize

LUN의 최적 쓰기 크기(바이트)입니다. 0은 최적의 쓰기 크기를 나타내지 않습니다.

ulOptimalWriteAlignment

LUN의 첫 번째 논리 블록과 관련된 최적의 쓰기 맞춤입니다. 0은 최적의 쓰기 맞춤이 없음을 나타냅니다.

ulMaximumDriveCount

LUN에 기여할 최대 드라이브 수입니다. 0은 최대 드라이브 수를 나타내지 않습니다. 이 값을 사용하여 스트라이프 집합의 스트라이프 인터리브 수를 제한할 수 있습니다.

ulStripeSize

미러 또는 패리티 스트라이프 인터리브 크기(바이트)입니다. 0은 스트라이프 크기를 지정하지 않은 상태로 둡니다.

ulReserved1

이 멤버는 나중에 사용하도록 예약되어 있습니다. 사용하지 마십시오.

ulReserved2

이 멤버는 나중에 사용하도록 예약되어 있습니다. 사용하지 마십시오.

ulReserved3

이 멤버는 나중에 사용하도록 예약되어 있습니다. 사용하지 마십시오.

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 플래그를 설정하여 이 멤버에 대한 관심을 나타냅니다.

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::CreateLunInStoragePool 메서드는 이 구조를 매개 변수로 전달하여 스토리지 풀에서 LUN을 만들기 위한 힌트를 제공합니다. 새 힌트 집합을 LUN에 적용하기 위해 IVdsLun2::ApplyHints2 메서드에서 매개 변수로 전달됩니다. 또한 현재 LUN 또는 LUN 플렉스에 각각 적용된 힌트를 보고하기 위해 IVdsLun2::QueryHints2 메서드에 의해 반환됩니다.

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

요구 사항

   
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
머리글 vds.h

추가 정보

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2