estrutura VDS_HINTS2 (vds.h)
[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]
Contém as dicas automatizadas para um LUN em um pool de armazenamento.
Sintaxe
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;
Membros
ullHintMask
A máscara de dica lun. Cada um dos membros BOOL dessa estrutura tem um sinalizador de dica correspondente que pode ser definido na máscara. Se o sinalizador de dica estiver definido, a dica correspondente será considerada. Se o sinalizador de dica não estiver definido, a dica será ignorada. Os sinalizadores de dica são descritos na tabela a seguir.
Valor | Significado |
---|---|
|
O provedor limita o tempo necessário para a recuperação. Para dar suporte à recuperação rápida, o provedor usa um log de alterações que permite que o provedor recupere o LUN sem comparar todo o conteúdo do LUN. |
|
O provedor otimiza o LUN para um padrão de uso de leitura principalmente, normalmente usando espelhamento em vez de distribuição de paridade. |
|
O provedor otimiza o LUN para um padrão de uso de leitura sequencial. Se esse sinalizador não estiver definido e VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES também não estiver definido, o LUN será otimizado para E/S aleatória. |
|
O provedor otimiza o LUN para um padrão de uso de gravação sequencial. Se esse sinalizador não estiver definido e VDS_HINT_OPTIMIZEFORSEQUENTIALREADS também não estiver definido, o LUN será otimizado para E/S aleatória. |
|
O provedor verifica as gravações no LUN usando o readback. |
|
O mapeamento de extensões lun para extensões de unidade é criado e atualizado automaticamente pelo provedor. Se esse sinalizador não estiver definido, o mapeamento permanecerá corrigido após a configuração, exceto quando ações proativas são executadas para evitar falhas de unidade. |
|
O provedor habilita a política de cache de gravação no LUN. |
|
O provedor habilita uma soma de verificação de hardware no LUN. |
|
O provedor configura o LUN para que as unidades que contribuem para ele possam ser removidas fisicamente com interrupção mínima do sistema. Isso normalmente é feito garantindo que o LUN ocupe o menor número possível de unidades. |
|
O provedor aloca um sobressalente frequente para o LUN. Para obter mais informações, consulte Hot Sparing, VDS_DRIVE_FLAG e VDS_DISK_FLAG. |
|
O provedor usa o tipo de barramento especificado no LUN. Para obter mais informações, consulte VDS_STORAGE_BUS_TYPE. |
|
O provedor usa um cache espelhado no LUN. Consulte o valor VDS_SF_SUPPORTS_MIRRORED_CACHE da enumeração VDS_SUB_SYSTEM_FLAG . |
|
O provedor habilita o cache de leitura no LUN. Consulte o valor VDS_LF_READ_CACHE_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_READ_CACHING_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG . |
|
O provedor habilita o cache de gravação no LUN. Consulte o valor VDS_LF_WRITE_CACHE_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_WRITE_CACHING_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG . |
|
O provedor habilita a verificação de mídia no LUN. Consulte o valor VDS_LF_MEDIA_SCAN_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_MEDIA_SCAN_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG . |
|
O provedor habilita a verificação de consistência no LUN. Consulte o valor VDS_LF_CONSISTENCY_CHECK_ENABLED da enumeração VDS_LUN_FLAG e o valor VDS_SF_CONSISTENCY_CHECK_CAPABLE da enumeração VDS_SUB_SYSTEM_FLAG . |
ullExpectedMaximumSize
O tamanho máximo para o qual o LUN deve crescer, em bytes. O valor pode ser igual a, maior ou menor que o valor especificado no parâmetro ullSizeInBytes quando o método IVdsHwProviderStoragePools::CreateLunInStoragePool é chamado. Alguns provedores usam esse valor para reservar espaço para o LUN. Os provedores que não conseguem reservar espaço normalmente ignoram esse parâmetro.
ulOptimalReadSize
O tamanho de leitura ideal para o LUN, em bytes. Zero indica que não há tamanho de leitura ideal.
ulOptimalReadAlignment
O alinhamento de leitura ideal em relação ao primeiro bloco lógico do LUN. Zero indica que não há alinhamento de leitura ideal.
ulOptimalWriteSize
O tamanho de gravação ideal para o LUN, em bytes. Zero indica nenhum tamanho de gravação ideal.
ulOptimalWriteAlignment
O alinhamento de gravação ideal em relação ao primeiro bloco lógico do LUN. Zero indica que não há alinhamento de gravação ideal.
ulMaximumDriveCount
O número máximo de unidades para contribuir com o LUN. Zero indica que não há contagem máxima de unidade. Esse valor pode ser usado para limitar o número de interlanças de faixa em um conjunto de distribuição.
ulStripeSize
O tamanho de intercalação de faixa de espelho ou paridade, em bytes. Zero deixa o tamanho da faixa não especificado.
ulReserved1
Este membro é reservado para uso futuro. Não use.
ulReserved2
Este membro é reservado para uso futuro. Não use.
ulReserved3
Este membro é reservado para uso futuro. Não use.
bFastCrashRecoveryRequired
Se esse membro for TRUE, o tempo de recuperação será limitado. Defina o sinalizador VDS_HINT_FASTCRASHRECOVERYREQUIRED no membro ullHintMask para indicar interesse neste membro.
bMostlyReads
Para otimizar para um padrão de uso de leituras em sua maioria (por exemplo, por meio de espelhamento em vez de distribuição de paridade), defina esse membro como TRUE. Caso contrário, defina-o como FALSE. Defina o sinalizador VDS_HINT_MOSTLYREADS no membro ullHintMask para indicar interesse neste membro.
bOptimizeForSequentialReads
Para otimizar um padrão de uso de leituras sequenciais, defina esse membro como TRUE. Caso contrário, defina-o como FALSE. Definir os membros bOptimizeForSequentialReads e bOptimizeForSequentialWrites ambos como otimizações FALSE para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALREADS no membro ullHintMask para indicar interesse neste membro.
bOptimizeForSequentialWrites
Para otimizar um padrão de uso de gravações sequenciais, defina esse membro como TRUE. Caso contrário, defina-o como FALSE. Definir os membros bOptimizeForSequentialReads e bOptimizeForSequentialWrites ambos como otimizações FALSE para E/S aleatória. Defina o sinalizador VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES no membro ullHintMask para indicar interesse neste membro.
bRemapEnabled
Se esse membro for TRUE, o provedor remapea as extensões lun para aumentar as extensões automaticamente. Se for FALSE, o mapeamento de extensões lun para extensões de unidade permanecerá corrigido após a configuração do LUN, a menos que as extensões sejam explicitamente remapeadas para evitar blocos corrompidos. Defina o sinalizador VDS_HINT_REMAPENABLED no membro ullHintMask para indicar interesse nesse membro.
bReadBackVerifyEnabled
Se esse membro for TRUE, o provedor verificará as gravações no LUN por readback. Se for FALSE, o provedor não verificará as gravações. Defina o sinalizador VDS_HINT_READBACKVERIFYENABLED no membro ullHintMask para indicar interesse neste membro.
bWriteThroughCachingEnabled
Se esse membro for TRUE, o provedor habilitará o cache de gravação no LUN; se for FALSE, o provedor não habilitará o cache de gravação. Defina o sinalizador VDS_HINT_WRITETHROUGHCACHINGENABLED no membro ullHintMask para indicar interesse neste membro.
bHardwareChecksumEnabled
Se esse membro for TRUE, o provedor habilitará uma soma de verificação no LUN. Defina o sinalizador VDS_HINT_HARDWARECHECKSUMENABLED no membro ullHintMask para indicar interesse nesse membro.
bIsYankable
Se esse membro for TRUE, as unidades que contribuem para o LUN poderão ser fisicamente removidas sem interrupções significativas no sistema (isso normalmente é verdade quando o LUN é composto de extensões de apenas algumas unidades). Se for FALSE, o LUN não poderá ser removido sem interrupções significativas no sistema. Defina o sinalizador VDS_HINT_ISYANKABLE no membro ullHintMask para indicar interesse neste membro.
bAllocateHotSpare
TRUE se o cliente quiser alocar uma unidade de reposição quente para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_ALLOCATEHOTSPARE no membro ullHintMask para indicar interesse neste membro.
bUseMirroredCache
TRUE se o cliente quiser que esse LUN use um cache espelhado ou FALSE caso contrário. Defina o sinalizador VDS_HINT_USEMIRROREDCACHE no membro ullHintMask para indicar interesse neste membro.
bReadCachingEnabled
TRUE se o cliente quiser que o LUN use o cache de leitura ou FALSE caso contrário. Defina o sinalizador VDS_HINT_READCACHINGENABLED no membro ullHintMask para indicar interesse neste membro.
bWriteCachingEnabled
TRUE se o cliente quiser que o LUN use cache de gravação ou FALSE caso contrário. Defina o sinalizador VDS_HINT_WRITECACHINGENABLED no membro ullHintMask para indicar interesse neste membro.
bMediaScanEnabled
TRUE se o cliente quiser habilitar a verificação de mídia para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_MEDIASCANENABLED no membro ullHintMask para indicar interesse neste membro.
bConsistencyCheckEnabled
TRUE se o cliente quiser habilitar a verificação de consistência para esse LUN ou FALSE caso contrário. Defina o sinalizador VDS_HINT_CONSISTENCYCHECKENABLED no membro ullHintMask para indicar interesse neste membro.
BusType
Um VDS_STORAGE_BUS_TYPE valor de enumeração que especifica o tipo de barramento para o LUN. Defina o sinalizador VDS_HINT_BUSTYPE no membro ullHintMask para indicar interesse neste membro.
bReserved1
Este membro é reservado para uso futuro. Não use.
bReserved2
Este membro é reservado para uso futuro. Não use.
bReserved3
Este membro é reservado para uso futuro. Não use.
sRebuildPriority
A prioridade de recompilação para o LUN. O valor pode variar de 0 (prioridade mais baixa) a 15 (prioridade mais alta).
Comentários
O método IVdsHwProviderStoragePools::CreateLunInStoragePool passa essa estrutura como um parâmetro para fornecer dicas para criar um LUN em um pool de armazenamento. Ele é passado como um parâmetro no método IVdsLun2::ApplyHints2 para aplicar um novo conjunto de dicas a um LUN. Além disso, ele é retornado pelo método IVdsLun2::QueryHints2 para relatar dicas atualmente aplicadas a um plex LUN ou LUN, respectivamente.
Dicas não são diretivas para implementadores. Embora os implementadores sejam, em geral, esperados para fazer o seu melhor para levar em consideração dicas, eles não são obrigados a segui-los. Os implementadores podem optar por alternativas quando não é possível seguir as dicas especificadas por motivos técnicos ou ao segui-las pode resultar em uma configuração ruim.
Requisitos
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | vds.h |