Compartir a través de


estructura VDS_HINTS (vdshwprv.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Define las sugerencias automagic para un LUN o LUN plex.

Sintaxis

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;

Miembros

ullHintMask

Máscara de sugerencia de LUN. Cada uno de los miembros BOOL de esta estructura tiene una marca de sugerencia correspondiente que se puede establecer en la máscara. Si se establece la marca de sugerencia, se considera la sugerencia correspondiente. Si no se establece la marca de sugerencia, se omite la sugerencia. Las marcas de sugerencia se describen en la tabla siguiente.

Valor Significado
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x0000000000000001L
El proveedor limita el tiempo necesario para la recuperación. Para admitir la recuperación rápida, el proveedor usa un registro de cambios que permite al proveedor recuperar el LUN sin comparar todo el contenido del LUN.
VDS_HINT_MOSTLYREADS
0x00000000000000002L
El proveedor optimiza el LUN para un patrón de uso de lectura principalmente, normalmente mediante la creación de reflejo en lugar de la seccionamiento de paridad.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x00000000000000004L
El proveedor optimiza el LUN para un patrón de uso de lectura secuencial. Si no se establece esta marca y tampoco se establece VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES, el LUN está optimizado para E/S aleatorias.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
El proveedor optimiza el LUN para un patrón de uso de escritura secuencial. Si no se establece esta marca y VDS_HINT_OPTIMIZEFORSEQUENTIALREADS tampoco se establece, el LUN está optimizado para E/S aleatorias.
VDS_HINT_READBACKVERIFYENABLED
0x0000000000000010L
El proveedor comprueba las escrituras en el LUN mediante la lectura diferida.
VDS_HINT_REMAPENABLED
0x0000000000000020L
El proveedor crea y actualiza automáticamente la asignación de extensiones de LUN a extensiones de unidad. Si no se establece esta marca, la asignación permanece fija después de la configuración, excepto cuando se realizan acciones proactivas para evitar errores de unidad.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x0000000000000040L
El proveedor habilita la directiva de almacenamiento en caché de escritura a través en el LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x00000000000000080L
El proveedor habilita una suma de comprobación de hardware en el LUN.
VDS_HINT_ISYANKABLE
0x0000000000000100L
El proveedor configura el LUN para que las unidades que contribuyen a ella se puedan quitar físicamente con una interrupción mínima del sistema. Normalmente, esto se logra asegurándose de que el LUN ocupa lo menos unidades posible.

ullExpectedMaximumSize

Tamaño máximo al que se espera que crezca el LUN, en bytes. El valor puede ser igual a, mayor o menor que el valor especificado en ullSizeInBytes cuando se llama al método IVdsSubSystem::CreateLun . Algunos proveedores usan este valor para reservar espacio para el LUN. Los proveedores que no pueden reservar espacio normalmente omiten este parámetro.

ulOptimalReadSize

Tamaño de lectura óptimo para el LUN, en bytes. Cero indica que no hay ningún tamaño de lectura óptimo.

ulOptimalReadAlignment

Alineación óptima de lectura con respecto al primer bloque lógico del LUN. Cero indica que no hay ninguna alineación de lectura óptima.

ulOptimalWriteSize

Tamaño de escritura óptimo para el LUN, en bytes. Cero indica que no hay un tamaño de escritura óptimo.

ulOptimalWriteAlignment

Alineación óptima de escritura con respecto al primer bloque lógico del LUN. Cero indica que no hay ninguna alineación de escritura óptima.

ulMaximumDriveCount

Número máximo de unidades que se van a contribuir al LUN. Cero indica que no hay número máximo de unidades. Este valor se puede usar para limitar el número de interleaves de franjas en un conjunto de franjas.

ulStripeSize

Tamaño de intercalación de reflejo o paridad, en bytes. Cero deja sin especificar el tamaño de la franja.

bFastCrashRecoveryRequired

Si este miembro es TRUE, el tiempo de recuperación es limitado. Establezca la marca VDS_HINT_FASTCRASHRECOVERYREQUIRED en el miembro ullHintMask para indicar interés en este miembro.

bMostlyReads

Para optimizar un patrón de uso de lecturas principalmente (por ejemplo, mediante la creación de reflejo en lugar de la seccionamiento de paridad), establezca este miembro en TRUE. De lo contrario, establézcalo en FALSE. Establezca la marca VDS_HINT_MOSTLYREADS en el miembro ullHintMask para indicar interés en este miembro.

bOptimizeForSequentialReads

Para optimizar un patrón de uso de lectura secuencial, establezca este miembro en TRUE. De lo contrario, establézcalo en FALSE. Establecer los miembros bOptimizeForSequentialReads y bOptimizeForSequentialWrites en FALSE optimiza para E/S aleatorias. Establezca la marca VDS_HINT_OPTIMIZEFORSEQUENTIALREADS en el miembro ullHintMask para indicar interés en este miembro.

bOptimizeForSequentialWrites

Para optimizar un patrón de uso de escritura secuencial, establezca en TRUE para este miembro. De lo contrario, establézcalo en FALSE. Establecer los miembros bOptimizeForSequentialReads y bOptimizeForSequentialWrites en FALSE optimiza para E/S aleatorias. Establezca la marca VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES en el miembro ullHintMask para indicar interés en este miembro.

bRemapEnabled

Si este miembro es TRUE, el proveedor reasigna las extensiones de LUN para impulsar las extensiones automáticamente. Si es FALSE, la asignación de extensiones de LUN a extensiones de unidad permanece fija después de la configuración de LUN, a menos que las extensiones se reasignan explícitamente para evitar bloques dañados. Establezca la marca VDS_HINT_REMAPENABLED en el miembro ullHintMask para indicar interés en este miembro.

bReadBackVerifyEnabled

Si este miembro se establece en TRUE, el proveedor comprueba las escrituras en el LUN por readback. Si se establece en FALSE, el proveedor no comprueba las escrituras. Establezca la marca VDS_HINT_READBACKVERIFYENABLED en el miembro ullHintMask para indicar interés en este miembro.

bWriteThroughCachingEnabled

Si este miembro es TRUE, el proveedor habilita el almacenamiento en caché de escritura en el LUN. Si es FALSE, el proveedor no habilita el almacenamiento en caché de escritura a través. Establezca la marca VDS_HINT_WRITETHROUGHCACHINGENABLED en el miembro ullHintMask para indicar interés en este miembro.

bHardwareChecksumEnabled

Si este miembro es TRUE, el proveedor habilita una suma de comprobación en el LUN. Establezca la marca VDS_HINT_HARDWARECHECKSUMENABLED en el miembro ullHintMask para indicar interés en este miembro.

bIsYankable

Si este miembro es TRUE, las unidades que contribuyen al LUN se pueden quitar físicamente sin una interrupción significativa en el sistema (esto suele ser cierto cuando el LUN se compone de extensiones de solo algunas unidades). Si es FALSE, el LUN no se puede quitar sin interrupciones significativas en el sistema. Establezca la marca VDS_HINT_ISYANKABLE en el miembro ullHintMask para indicar interés en este miembro.

sRebuildPriority

Prioridad de recompilación para el LUN. El valor puede oscilar entre 0 (prioridad más baja) y 15 (prioridad más alta).

Comentarios

El método IVdsSubSystem::CreateLun pasa esta estructura como parámetro para proporcionar sugerencias para crear un LUN. Se pasa como un parámetro en el método ApplyHints en las interfaces IVdsLun e IVdsLunPlex para aplicar un nuevo conjunto de sugerencias a un LUN o LUN plex, respectivamente. Además, el método QueryHints devuelve en las interfaces IVdsLun e IVdsLunPlex para informar de las sugerencias aplicadas actualmente a un LUN o lun plex, respectivamente.

Las sugerencias no son directivas para los implementadores. Aunque se espera que los implementadores hagan lo mejor posible para tener en cuenta las sugerencias, no están obligados a seguirlas. Los implementadores pueden optar por alternativas cuando no pueden seguir sugerencias especificadas por motivos técnicos o cuando seguirlas pueden dar lugar a una configuración deficiente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado vdshwprv.h

Consulte también

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

Estructuras de VDS