структура 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 этой структуры имеет соответствующий флаг подсказки, который можно задать в маске. Если установлен флаг подсказки, учитывается соответствующее указание. Если флаг подсказки не задан, указание игнорируется. Флаги указания описаны в следующей таблице.
Значение | Значение |
---|---|
|
Поставщик ограничивает время, необходимое для восстановления. Для поддержки быстрого восстановления поставщик использует журнал изменений, который позволяет поставщику восстановить LUN без сравнения всего содержимого LUN. |
|
Поставщик оптимизирует LUN для шаблона использования в основном для чтения, обычно используя зеркальное отображение, а не чередование четности. |
|
Поставщик оптимизирует LUN для шаблона использования последовательного чтения. Если этот флаг не задан и VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES также не задан, LUN оптимизирован для случайных операций ввода-вывода. |
|
Поставщик оптимизирует LUN для шаблона использования последовательной записи. Если этот флаг не задан и VDS_HINT_OPTIMIZEFORSEQUENTIALREADS также не задан, LUN оптимизирован для случайных операций ввода-вывода. |
|
Поставщик проверяет записи в LUN с помощью обратного чтения. |
|
Сопоставление экстентов LUN с экстентами диска создается и обновляется поставщиком автоматически. Если этот флаг не установлен, сопоставление остается фиксированным после настройки, за исключением случаев, когда предпринимаются упреждающие действия, чтобы избежать сбоев диска. |
|
Поставщик включает политику кэширования через запись в LUN. |
|
Поставщик включает контрольную сумму оборудования для LUN. |
|
Поставщик настраивает LUN таким образом, чтобы диски, которые вносят в него свой вклад, можно было физически удалить с минимальным перебоем в работе системы. Обычно это достигается путем обеспечения того, чтобы LUN занимало как можно меньше дисков. |
|
Поставщик выделяет горячий резерв для LUN. Дополнительные сведения см. в разделе Горячее щадя,VDS_DRIVE_FLAG и VDS_DISK_FLAG. |
|
Поставщик использует указанный тип шины в LUN. Дополнительные сведения см. в разделе VDS_STORAGE_BUS_TYPE. |
|
Поставщик использует зеркальный кэш в LUN. См . VDS_SF_SUPPORTS_MIRRORED_CACHE значение перечисления VDS_SUB_SYSTEM_FLAG . |
|
Поставщик включает кэширование чтения в LUN. См . VDS_LF_READ_CACHE_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_READ_CACHING_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG . |
|
Поставщик включает кэширование записи в LUN. См. VDS_LF_WRITE_CACHE_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_WRITE_CACHING_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG . |
|
Поставщик включает сканирование мультимедиа в LUN. См . VDS_LF_MEDIA_SCAN_ENABLED значение перечисления VDS_LUN_FLAG и значение VDS_SF_MEDIA_SCAN_CAPABLE перечисления VDS_SUB_SYSTEM_FLAG . |
|
Поставщик включает проверку согласованности для 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 |