Поделиться через


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

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

Определяет автоматические указания для плекса 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
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 занимало как можно меньше дисков.

ullExpectedMaximumSize

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

ulOptimalReadSize

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

ulOptimalReadAlignment

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

ulOptimalWriteSize

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

ulOptimalWriteAlignment

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

ulMaximumDriveCount

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

ulStripeSize

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

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 , чтобы указать интерес к этому элементу.

sRebuildPriority

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

Комментарии

Метод IVdsSubSystem::CreateLun передает эту структуру в качестве параметра, чтобы предоставить указания для создания LUN. Он передается в качестве параметра в методе ApplyHints в интерфейсах IVdsLun и IVdsLunPlex для применения нового набора указаний к плексу LUN или LUN соответственно. Кроме того, он возвращается методом QueryHints в интерфейсах IVdsLun и IVdsLunPlex , чтобы сообщить о указаниях, которые в настоящее время применяются к плексу LUN или LUN соответственно.

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

Требования

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

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

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

Структуры VDS