структура VDS_HINTS2 (vds.h)

[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]

Содержит автоматические указания для 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
0x000000000000000001L
Поставщик ограничивает время, необходимое для восстановления. Для поддержки быстрого восстановления поставщик использует журнал изменений, который позволяет поставщику восстановить LUN без сравнения всего содержимого LUN.
VDS_HINT_MOSTLYREADS
0x00000000000000002L
Поставщик оптимизирует LUN для шаблона использования в основном для чтения, обычно используя зеркальное отображение, а не чередование четности.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x00000000000000004L
Поставщик оптимизирует LUN для шаблона использования последовательного чтения. Если этот флаг не задан и VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES также не задан, LUN оптимизирован для случайных операций ввода-вывода.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
Поставщик оптимизирует LUN для шаблона использования последовательной записи. Если этот флаг не задан и VDS_HINT_OPTIMIZEFORSEQUENTIALREADS также не задан, LUN оптимизирован для случайных операций ввода-вывода.
VDS_HINT_READBACKVERIFYENABLED
0x00000000000000010L
Поставщик проверяет записи в LUN с помощью обратного чтения.
VDS_HINT_REMAPENABLED
0x00000000000000020L
Сопоставление экстентов LUN с экстентами диска создается и обновляется поставщиком автоматически. Если этот флаг не установлен, сопоставление остается фиксированным после настройки, за исключением случаев, когда предпринимаются упреждающие действия, чтобы избежать сбоев диска.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x0000000000000040L
Поставщик включает политику кэширования через запись в LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x00000000000000080L
Поставщик включает контрольную сумму оборудования для LUN.
VDS_HINT_ISYANKABLE
0x00000000000000100L
Поставщик настраивает LUN таким образом, чтобы диски, которые вносят в него свой вклад, можно было физически удалить с минимальным перебоем в работе системы. Обычно это достигается путем обеспечения того, чтобы LUN занимало как можно меньше дисков.
VDS_HINT_ALLOCATEHOTSPARE
0x0000000000000200L
Поставщик выделяет горячий резерв для LUN. Дополнительные сведения см. в разделе Горячее щадя,VDS_DRIVE_FLAG и VDS_DISK_FLAG.
VDS_HINT_BUSTYPE
0x0000000000000400L
Поставщик использует указанный тип шины в LUN. Дополнительные сведения см. в разделе VDS_STORAGE_BUS_TYPE.
VDS_HINT_USEMIRROREDCACHE
0x0000000000000800L
Поставщик использует зеркальный кэш в LUN. См . VDS_SF_SUPPORTS_MIRRORED_CACHE значение перечисления VDS_SUB_SYSTEM_FLAG .
VDS_HINT_READCACHINGENABLED
0x0000000000001000L
Поставщик включает кэширование чтения в LUN. См . VDS_LF_READ_CACHE_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_READ_CACHING_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG .
VDS_HINT_WRITECACHINGENABLED
0x0000000000002000L
Поставщик включает кэширование записи в LUN. См. VDS_LF_WRITE_CACHE_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_WRITE_CACHING_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG .
VDS_HINT_MEDIASCANENABLED
0x0000000000004000L
Поставщик включает сканирование мультимедиа в LUN. См . VDS_LF_MEDIA_SCAN_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_MEDIA_SCAN_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG .
VDS_HINT_CONSISTENCYCHECKENABLED
0x0000000000008000L
Поставщик включает проверку согласованности для LUN. См . VDS_LF_CONSISTENCY_CHECK_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_CONSISTENCY_CHECK_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG .

ullExpectedMaximumSize

Максимальный размер, до которого ожидается увеличение LUN, в байтах. Значение может быть равно, больше или меньше значения, указанного в параметре ullSizeInBytes при вызове метода IVdsHwProviderStoragePools::CreateLunInStoragePool . Некоторые поставщики используют это значение для резервирования места для LUN. Поставщики, которые не могут зарезервировать пространство, обычно игнорируют этот параметр.

ulOptimalReadSize

Оптимальный размер чтения для LUN в байтах. Ноль указывает на отсутствие оптимального размера для чтения.

ulOptimalReadAlignment

Оптимальное выравнивание чтения относительно первого логического блока LUN. Ноль указывает на отсутствие оптимального выравнивания чтения.

ulOptimalWriteSize

Оптимальный размер записи для LUN в байтах. Ноль указывает на отсутствие оптимального размера записи.

ulOptimalWriteAlignment

Оптимальное выравнивание записи относительно первого логического блока LUN. Ноль указывает на отсутствие оптимального выравнивания записи.

ulMaximumDriveCount

Максимальное количество дисков, которые необходимо использовать в LUN. Ноль означает отсутствие максимального количества дисков. Это значение можно использовать для ограничения количества чередуемых полос в наборе полос.

ulStripeSize

Размер чередования зеркального отображения или чередования четности в байтах. Ноль оставляет размер полоски неопределенным.

ulReserved1

Этот элемент зарезервирован для использования в будущем. Не используйте.

ulReserved2

Этот элемент зарезервирован для использования в будущем. Не используйте.

ulReserved3

Этот элемент зарезервирован для использования в будущем. Не используйте.

bFastCrashRecoveryRequired

Если этот элемент имеет значение TRUE, время восстановления ограничено. Установите флаг VDS_HINT_FASTCRASHRECOVERYREQUIRED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bMostlyReads

Чтобы оптимизировать использование в основном считывания (например, с помощью зеркального отображения, а не чередования четности), задайте для этого элемента значение TRUE. В противном случае установите для него значение FALSE. Установите флаг VDS_HINT_MOSTLYREADS в элементе ullHintMask , чтобы указать интерес к этому элементу.

bOptimizeForSequentialReads

Чтобы оптимизировать шаблон использования последовательных операций чтения, задайте для этого элемента значение TRUE. В противном случае установите для него значение FALSE. Установка обоих элементов bOptimizeForSequentialReads и bOptimizeForSequentialWrites в значение FALSE оптимизирует случайные операции ввода-вывода. Установите флаг VDS_HINT_OPTIMIZEFORSEQUENTIALREADS в элементе ullHintMask , чтобы указать интерес к этому элементу.

bOptimizeForSequentialWrites

Чтобы оптимизировать шаблон использования последовательных операций записи, задайте для этого элемента значение TRUE. В противном случае установите для него значение FALSE. Установка обоих элементов bOptimizeForSequentialReads и bOptimizeForSequentialWrites в значение FALSE оптимизирует случайные операции ввода-вывода. Установите флаг VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES в элементе ullHintMask , чтобы указать интерес к этому элементу.

bRemapEnabled

Если этот член имеет значение TRUE, поставщик автоматически перенаправит экстенты LUN в экстенты диска. Если задано значение FALSE, сопоставление экстентов LUN с экстентами диска остается фиксированным после настройки LUN, если экстенты явно не переназначаются, чтобы избежать поврежденных блоков. Установите флаг VDS_HINT_REMAPENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bReadBackVerifyEnabled

Если этот элемент имеет значение TRUE, поставщик проверяет записи в LUN с помощью обратного чтения. Если имеет значение FALSE, поставщик не проверяет операции записи. Установите флаг VDS_HINT_READBACKVERIFYENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bWriteThroughCachingEnabled

Если этот элемент имеет значение TRUE, поставщик включает кэширование через запись в LUN; Если значение равно FALSE, поставщик не включает кэширование через запись. Установите флаг VDS_HINT_WRITETHROUGHCACHINGENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bHardwareChecksumEnabled

Если этот элемент имеет значение TRUE, поставщик включает контрольную сумму для LUN. Установите флаг VDS_HINT_HARDWARECHECKSUMENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bIsYankable

Если этот член имеет значение TRUE, диски, которые вносят вклад в LUN, можно физически удалить без значительных нарушений работы системы (обычно это верно, если LUN состоит из экстентов всего нескольких дисков). Если значение РАВНО FALSE, LUN нельзя удалить без значительных нарушений работы системы. Установите флаг VDS_HINT_ISYANKABLE в элементе ullHintMask , чтобы указать интерес к этому элементу.

bAllocateHotSpare

Значение TRUE , если клиент хочет выделить диск горячей замены для этого LUN, или false в противном случае. Установите флаг VDS_HINT_ALLOCATEHOTSPARE в элементе ullHintMask , чтобы указать интерес к этому элементу.

bUseMirroredCache

Значение TRUE , если клиент хочет, чтобы этот LUN использовал зеркальный кэш, или значение FALSE в противном случае. Установите флаг VDS_HINT_USEMIRROREDCACHE в элементе ullHintMask , чтобы указать интерес к этому элементу.

bReadCachingEnabled

Значение TRUE , если клиент хочет, чтобы LUN использовал кэширование чтения, или значение FALSE в противном случае. Установите флаг VDS_HINT_READCACHINGENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bWriteCachingEnabled

True , если клиент хочет, чтобы LUN использовал кэширование записи, или false в противном случае. Установите флаг VDS_HINT_WRITECACHINGENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bMediaScanEnabled

Значение TRUE , если клиент хочет включить проверку мультимедиа для этого LUN, или false в противном случае. Установите флаг VDS_HINT_MEDIASCANENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

bConsistencyCheckEnabled

Значение TRUE , если клиент хочет включить проверку согласованности для этого LUN, или false в противном случае. Установите флаг VDS_HINT_CONSISTENCYCHECKENABLED в элементе ullHintMask , чтобы указать интерес к этому элементу.

BusType

Значение перечисления VDS_STORAGE_BUS_TYPE , указывающее тип шины для LUN. Установите флаг VDS_HINT_BUSTYPE в элементе ullHintMask , чтобы указать интерес к этому элементу.

bReserved1

Этот элемент зарезервирован для использования в будущем. Не используйте.

bReserved2

Этот элемент зарезервирован для использования в будущем. Не используйте.

bReserved3

Этот элемент зарезервирован для использования в будущем. Не используйте.

sRebuildPriority

Приоритет перестроения для LUN. Значение может варьироваться от 0 (самый низкий приоритет) до 15 (наивысший приоритет).

Комментарии

Метод IVdsHwProviderStoragePools::CreateLunInStoragePool передает эту структуру в качестве параметра, чтобы предоставить указания по созданию LUN в пуле носителей. Он передается в качестве параметра в методе IVdsLun2::ApplyHints2 для применения нового набора подсказок к LUN. Кроме того, он возвращается методом IVdsLun2::QueryHints2 для передачи указаний, которые в настоящее время применяются к плексу LUN или LUN соответственно.

Указания не являются директивами для разработчиков. Хотя в целом ожидается, что разработчики делают все возможное, чтобы принять во внимание указания, они не обязаны следовать им. Разработчики могут выбрать альтернативные варианты, если не удается выполнить указанные указания по техническим причинам или если их выполнение может привести к плохой конфигурации.

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть vds.h

См. также раздел

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2