VDS_HINTS2 structure (vds.h)
[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API gestion du stockage Windows.]
Contient les indicateurs automagiques pour un numéro d’unité logique dans un pool de stockage.
Syntaxe
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;
Membres
ullHintMask
Masque d’indicateur de numéro d’unité logique. Chacun des membres BOOL de cette structure a un indicateur d’indicateur correspondant qui peut être défini dans le masque. Si l’indicateur d’indicateur est défini, l’indicateur correspondant est pris en compte. Si l’indicateur d’indicateur n’est pas défini, l’indicateur est ignoré. Les indicateurs d’indicateur sont décrits dans le tableau suivant.
Valeur | Signification |
---|---|
|
Le fournisseur limite le temps nécessaire à la récupération. Pour prendre en charge la récupération rapide, le fournisseur utilise un journal des modifications qui lui permet de récupérer le numéro d’unité logique sans comparer l’intégralité du contenu du numéro d’unité logique. |
|
Le fournisseur optimise l’unité logique pour un modèle d’utilisation principalement en lecture, généralement en utilisant la mise en miroir plutôt que l’entrelacement de parité. |
|
Le fournisseur optimise le numéro d’unité logique pour un modèle d’utilisation en lecture séquentielle. Si cet indicateur n’est pas défini et VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES ne l’est pas non plus, le numéro d’unité logique est optimisé pour les E/S aléatoires. |
|
Le fournisseur optimise le numéro d’unité logique pour un modèle d’utilisation de l’écriture séquentielle. Si cet indicateur n’est pas défini et que VDS_HINT_OPTIMIZEFORSEQUENTIALREADS ne l’est pas non plus, le numéro d’unité logique est optimisé pour les E/S aléatoires. |
|
Le fournisseur vérifie les écritures dans le numéro logique à l’aide de la lecture différée. |
|
Le mappage des extensions de LUN pour les extensions de lecteur est créé et mis à jour automatiquement par le fournisseur. Si cet indicateur n’est pas défini, le mappage reste fixe après la configuration, sauf lorsque des actions proactives sont prises pour éviter les défaillances de lecteur. |
|
Le fournisseur active la stratégie de mise en cache en écriture directe sur le numéro d’unité logique. |
|
Le fournisseur active une somme de contrôle matérielle sur le numéro d’unité logique. |
|
Le fournisseur configure le numéro d’unité logique afin que les lecteurs qui y contribuent puissent être supprimés physiquement avec une interruption minimale du système. Pour ce faire, il faut normalement s’assurer que le numéro d’unité logique occupe le moins de lecteurs possible. |
|
Le fournisseur alloue une unité de secours à chaud pour le numéro d’unité logique. Pour plus d’informations, consultez Sparing, VDS_DRIVE_FLAG et VDS_DISK_FLAG. |
|
Le fournisseur utilise le type de bus spécifié sur le numéro d’unité logique. Pour plus d’informations, consultez VDS_STORAGE_BUS_TYPE. |
|
Le fournisseur utilise un cache mis en miroir sur le numéro d’unité logique. Consultez la valeur VDS_SF_SUPPORTS_MIRRORED_CACHE de l’énumération VDS_SUB_SYSTEM_FLAG . |
|
Le fournisseur active la mise en cache de lecture sur le numéro d’unité logique. Consultez la valeur VDS_LF_READ_CACHE_ENABLED de l’énumération VDS_LUN_FLAG et la valeur VDS_SF_READ_CACHING_CAPABLE de l’énumération VDS_SUB_SYSTEM_FLAG . |
|
Le fournisseur active la mise en cache d’écriture sur le numéro d’unité logique. Consultez la valeur VDS_LF_WRITE_CACHE_ENABLED de l’énumération VDS_LUN_FLAG et la valeur VDS_SF_WRITE_CACHING_CAPABLE de l’énumération VDS_SUB_SYSTEM_FLAG . |
|
Le fournisseur active l’analyse des médias sur le lun. Consultez la valeur VDS_LF_MEDIA_SCAN_ENABLED de l’énumération VDS_LUN_FLAG et la valeur VDS_SF_MEDIA_SCAN_CAPABLE de l’énumération VDS_SUB_SYSTEM_FLAG . |
|
Le fournisseur active la vérification de la cohérence sur le numéro d’unité logique. Consultez la valeur VDS_LF_CONSISTENCY_CHECK_ENABLED de l’énumération VDS_LUN_FLAG et la valeur VDS_SF_CONSISTENCY_CHECK_CAPABLE de l’énumération VDS_SUB_SYSTEM_FLAG . |
ullExpectedMaximumSize
Taille maximale à laquelle le numéro d’unité logique est censé croître, en octets. La valeur peut être égale à, supérieure ou inférieure à la valeur spécifiée dans le paramètre ullSizeInBytes lorsque la méthode IVdsHwProviderStoragePools::CreateLunInStoragePool est appelée. Certains fournisseurs utilisent cette valeur pour réserver de l’espace pour le numéro d’unité logique. Les fournisseurs qui ne peuvent pas réserver d’espace ignorent généralement ce paramètre.
ulOptimalReadSize
Taille de lecture optimale pour le lun, en octets. Zéro n’indique aucune taille de lecture optimale.
ulOptimalReadAlignment
Alignement de lecture optimal par rapport au premier bloc logique du numéro d’unité logique. Zéro indique qu’aucun alignement de lecture optimal n’est indiqué.
ulOptimalWriteSize
Taille d’écriture optimale pour le lun, en octets. Zéro n’indique aucune taille d’écriture optimale.
ulOptimalWriteAlignment
Alignement d’écriture optimal par rapport au premier bloc logique du lun. Zéro indique qu’aucun alignement d’écriture n’est optimal.
ulMaximumDriveCount
Nombre maximal de lecteurs à contribuer au numéro d’unité logique. Zéro indique qu’il n’y a pas de nombre maximal de lecteurs. Cette valeur peut être utilisée pour limiter le nombre d’entrelacements de bandes dans un jeu de bandes.
ulStripeSize
Taille d’entrelacement de la bande de miroir ou de parité, en octets. Zéro laisse la taille de la bande non spécifiée.
ulReserved1
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
ulReserved2
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
ulReserved3
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
bFastCrashRecoveryRequired
Si ce membre a la valeur TRUE, le temps de récupération est limité. Définissez l’indicateur VDS_HINT_FASTCRASHRECOVERYREQUIRED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bMostlyReads
Pour optimiser un modèle d’utilisation de la plupart des lectures (par exemple, par le biais de la mise en miroir plutôt que de la bande de parité), définissez ce membre sur TRUE. Sinon, définissez-le sur FALSE. Définissez l’indicateur VDS_HINT_MOSTLYREADS dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bOptimizeForSequentialReads
Pour optimiser un modèle d’utilisation de lectures séquentielles, définissez ce membre sur TRUE. Sinon, définissez-le sur FALSE. La définition des membres bOptimizeForSequentialReads et bOptimizeForSequentialWrites sur FALSE optimise les E/S aléatoires. Définissez l’indicateur VDS_HINT_OPTIMIZEFORSEQUENTIALREADS dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bOptimizeForSequentialWrites
Pour optimiser un modèle d’utilisation d’écriture séquentielle, définissez ce membre sur TRUE. Sinon, définissez-le sur FALSE. La définition des membres bOptimizeForSequentialReads et bOptimizeForSequentialWrites sur FALSE optimise les E/S aléatoires. Définissez l’indicateur VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bRemapEnabled
Si ce membre a la valeur TRUE, le fournisseur remappage automatiquement les étendues de LUN pour les conduire automatiquement. S’il est FALSE, le mappage des étendues de LUN aux étendues du lecteur reste fixe après la configuration des LUN, sauf si les extensions sont explicitement réappées pour éviter les blocs endommagés. Définissez l’indicateur VDS_HINT_REMAPENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bReadBackVerifyEnabled
Si ce membre a la valeur TRUE, le fournisseur vérifie les écritures dans la LUN en lecture différée. S’il est FALSE, le fournisseur ne vérifie pas les écritures. Définissez l’indicateur VDS_HINT_READBACKVERIFYENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bWriteThroughCachingEnabled
Si ce membre a la valeur TRUE, le fournisseur active la mise en cache en écriture via le lun ; s’il a la valeur FALSE, le fournisseur n’active pas la mise en cache en écriture via. Définissez l’indicateur VDS_HINT_WRITETHROUGHCACHINGENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bHardwareChecksumEnabled
Si ce membre a la valeur TRUE, le fournisseur active une somme de contrôle sur la LUN. Définissez l’indicateur VDS_HINT_HARDWARECHECKSUMENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bIsYankable
Si ce membre a la valeur TRUE, les lecteurs qui contribuent à la LUN peuvent être supprimés physiquement sans interruption significative du système (cela est généralement vrai lorsque la LUN est composée d’étendues provenant de quelques lecteurs seulement). S’il est FALSE, la LUN ne peut pas être supprimée sans interruption significative du système. Définissez l’indicateur VDS_HINT_ISYANKABLE dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bAllocateHotSpare
TRUE si le client souhaite allouer un disque de secours à chaud pour cette LUN, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_ALLOCATEHOTSPARE dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bUseMirroredCache
TRUE si le client souhaite que cette LUN utilise un cache mis en miroir, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_USEMIRROREDCACHE dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bReadCachingEnabled
TRUE si le client souhaite que la LUN utilise la mise en cache en lecture, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_READCACHINGENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bWriteCachingEnabled
TRUE si le client souhaite que la LUN utilise la mise en cache en écriture, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_WRITECACHINGENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bMediaScanEnabled
TRUE si le client souhaite activer l’analyse multimédia pour cette LUN, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_MEDIASCANENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bConsistencyCheckEnabled
TRUE si le client souhaite activer la vérification de cohérence pour cette LUN, ou FALSE dans le cas contraire. Définissez l’indicateur VDS_HINT_CONSISTENCYCHECKENABLED dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
BusType
Une valeur d’énumération VDS_STORAGE_BUS_TYPE qui spécifie le type de bus pour la LUN. Définissez l’indicateur VDS_HINT_BUSTYPE dans le membre ullHintMask pour indiquer l’intérêt pour ce membre.
bReserved1
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
bReserved2
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
bReserved3
Ce membre est réservé pour un usage ultérieur. Ne pas utiliser.
sRebuildPriority
Priorité de reconstruction pour la LUN. La valeur peut être comprise entre 0 (priorité la plus faible) et 15 (priorité la plus élevée).
Remarques
La méthode IVdsHwProviderStoragePools::CreateLunInStoragePool transmet cette structure en tant que paramètre pour fournir des conseils pour la création d’une LUN dans un pool de stockage. Il est passé en tant que paramètre dans la méthode IVdsLun2::ApplyHints2 pour appliquer un nouvel ensemble d’indicateurs à une LUN. En outre, il est retourné par la méthode IVdsLun2::QueryHints2 pour signaler les indicateurs actuellement appliqués à un LUN ou à un plex de LUN, respectivement.
Les indicateurs ne sont pas des directives pour les implémenteurs. Bien que les implémenteurs soient généralement censés faire de leur mieux pour prendre en considération les conseils, ils ne sont pas obligés de les suivre. Les implémenteurs peuvent opter pour des alternatives lorsqu’ils ne peuvent pas suivre les conseils spécifiés pour des raisons techniques ou lorsqu’ils les suivent peuvent entraîner une configuration médiocre.
Configuration requise
Client minimal pris en charge | Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau uniquement] |
En-tête | vds.h |