Condividi tramite


struttura VDS_HINTS2 (vdshwprv.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.]

Contiene i suggerimenti automagic per un LUN in un pool di archiviazione.

Sintassi

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;

Members

ullHintMask

Maschera di hint LUN. Ogni membro BOOL di questa struttura ha un flag di hint corrispondente che può essere impostato nella maschera. Se il flag di hint è impostato, viene considerato l'hint corrispondente. Se il flag hint non è impostato, l'hint viene ignorato. I flag di hint sono descritti nella tabella seguente.

Valore Significato
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x00000000000000001L
Il provider limita il tempo necessario per il ripristino. Per supportare il ripristino rapido, il provider usa un log delle modifiche che consente al provider di recuperare il LUN senza confrontare l'intero contenuto del LUN.
VDS_HINT_MOSTLYREADS
0x00000000000000002L
Il provider ottimizza il LUN per un modello di utilizzo in lettura,in genere usando il mirroring anziché lo striping di parità.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x0000000000000004L
Il provider ottimizza il LUN per un modello di utilizzo in lettura sequenziale. Se questo flag non è impostato e VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES non è impostato, il LUN è ottimizzato per operazioni di I/O casuali.
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
Il provider ottimizza il LUN per un modello di utilizzo di scrittura sequenziale. Se questo flag non è impostato e VDS_HINT_OPTIMIZEFORSEQUENTIALREADS non è impostato, il LUN è ottimizzato per operazioni di I/O casuali.
VDS_HINT_READBACKVERIFYENABLED
0x00000000000000010L
Il provider verifica le scritture nel LUN usando il readback.
VDS_HINT_REMAPENABLED
0x000000000000000020L
Il mapping degli extent LUN agli extent di unità viene creato e aggiornato automaticamente dal provider. Se questo flag non è impostato, il mapping rimane fisso dopo la configurazione, tranne quando vengono eseguite azioni proattive per evitare errori di unità.
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x00000000000000040L
Il provider abilita i criteri di memorizzazione nella cache write-through nel LUN.
VDS_HINT_HARDWARECHECKSUMENABLED
0x00000000000000080L
Il provider abilita un checksum hardware nel LUN.
VDS_HINT_ISYANKABLE
0x000000000000000100L
Il provider configura il LUN in modo che le unità che contribuiscono a tale unità possano essere rimosse fisicamente con un'interruzione minima del sistema. Questa operazione viene in genere eseguita assicurando che il LUN occupi il minor numero possibile di unità.
VDS_HINT_ALLOCATEHOTSPARE
0x000000000000000200L
Il provider alloca un riserva a caldo per il LUN. Per altre informazioni, vedere Hot Sparing, VDS_DRIVE_FLAG e VDS_DISK_FLAG.
VDS_HINT_BUSTYPE
0x00000000000000400L
Il provider usa il tipo di bus specificato nel LUN. Per altre informazioni, vedere VDS_STORAGE_BUS_TYPE.
VDS_HINT_USEMIRROREDCACHE
0x000000000000000800L
Il provider usa una cache con mirroring nel LUN. Vedere il valore VDS_SF_SUPPORTS_MIRRORED_CACHE dell'enumerazione VDS_SUB_SYSTEM_FLAG .
VDS_HINT_READCACHINGENABLED
0x00000000000001000L
Il provider abilita la memorizzazione nella cache in lettura nel LUN. Vedere il valore VDS_LF_READ_CACHE_ENABLED dell'enumerazione VDS_LUN_FLAG e il valore VDS_SF_READ_CACHING_CAPABLE dell'enumerazione VDS_SUB_SYSTEM_FLAG .
VDS_HINT_WRITECACHINGENABLED
0x000000000000002000L
Il provider abilita la memorizzazione nella cache di scrittura nel LUN. Vedere il valore VDS_LF_WRITE_CACHE_ENABLED dell'enumerazione VDS_LUN_FLAG e il valore VDS_SF_WRITE_CACHING_CAPABLE dell'enumerazione VDS_SUB_SYSTEM_FLAG .
VDS_HINT_MEDIASCANENABLED
0x00000000000004000L
Il provider abilita l'analisi multimediale nel LUN. Vedere il valore VDS_LF_MEDIA_SCAN_ENABLED dell'enumerazione VDS_LUN_FLAG e il valore VDS_SF_MEDIA_SCAN_CAPABLE dell'enumerazione VDS_SUB_SYSTEM_FLAG .
VDS_HINT_CONSISTENCYCHECKENABLED
0x00000000000008000L
Il provider abilita il controllo della coerenza nel LUN. Vedere il valore VDS_LF_CONSISTENCY_CHECK_ENABLED dell'enumerazione VDS_LUN_FLAG e il valore VDS_SF_CONSISTENCY_CHECK_CAPABLE dell'enumerazione VDS_SUB_SYSTEM_FLAG .

ullExpectedMaximumSize

Dimensioni massime in byte previste per il LUN. Il valore può essere uguale, maggiore o minore del valore specificato nel parametro ullSizeInBytes quando viene chiamato il metodo IVdsHwProviderStoragePools::CreateLunInStoragePool . Alcuni provider usano questo valore per riservare spazio per il LUN. I provider che non sono in grado di riservare spazio in genere ignorano questo parametro.

ulOptimalReadSize

Dimensioni di lettura ottimali per il LUN, in byte. Zero indica che le dimensioni di lettura non sono ottimali.

ulOptimalReadAlignment

Allineamento di lettura ottimale rispetto al primo blocco logico del LUN. Zero indica che non è possibile eseguire l'allineamento di lettura ottimale.

ulOptimalWriteSize

Dimensioni di scrittura ottimali per il LUN, in byte. Zero indica che le dimensioni di scrittura non sono ottimali.

ulOptimalWriteAlignment

Allineamento ottimale della scrittura rispetto al primo blocco logico del LUN. Zero indica che non è possibile eseguire l'allineamento ottimale per la scrittura.

ulMaximumDriveCount

Numero massimo di unità da contribuire al LUN. Zero indica che nessun numero massimo di unità. Questo valore può essere usato per limitare il numero di interleaves di striping in un set di striping.

ulStripeSize

Dimensione interleave mirror o parity, in byte. Zero lascia invariate le dimensioni della striscia.

ulReserved1

Questo membro è riservato per usi futuri. Non usare.

ulReserved2

Questo membro è riservato per usi futuri. Non usare.

ulReserved3

Questo membro è riservato per usi futuri. Non usare.

bFastCrashRecoveryRequired

Se questo membro è TRUE, il tempo di ripristino è limitato. Impostare il flag VDS_HINT_FASTCRASHRECOVERYREQUIRED nel membro ullHintMask per indicare l'interesse per questo membro.

bMostlyReads

Per ottimizzare per un modello di utilizzo di lettura principalmente (ad esempio, tramite mirroring anziché striping di parità), impostare questo membro su TRUE. In caso contrario, impostarlo su FALSE. Impostare il flag VDS_HINT_MOSTLYREADS nel membro ullHintMask per indicare l'interesse in questo membro.

bOptimizeForSequentialReads

Per ottimizzare un modello di utilizzo in lettura sequenziale, impostare questo membro su TRUE. In caso contrario, impostarlo su FALSE. Impostazione dei membri bOptimizeForSequentialReads e bOptimizeForSequentialWrites sia su FALSE ottimizza per l'I/O casuale. Impostare il flag di VDS_HINT_OPTIMIZEFORSEQUENTIALREADS nel membro ullHintMask per indicare l'interesse in questo membro.

bOptimizeForSequentialWrites

Per ottimizzare un modello di utilizzo di scrittura sequenziale, impostare questo membro su TRUE. In caso contrario, impostarlo su FALSE. Impostazione dei membri bOptimizeForSequentialReads e bOptimizeForSequentialWrites sia su FALSE ottimizza per l'I/O casuale. Impostare il flag di VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES nel membro ullHintMask per indicare l'interesse in questo membro.

bRemapEnabled

Se questo membro è TRUE, il provider esegue il mapping automatico degli extent LUN per l'estensione dell'unità. Se è FALSE, il mapping degli extent LUN per le unità rimane fisso dopo la configurazione LUN, a meno che non vengano ricompressi in modo esplicito i extent per evitare blocchi danneggiati. Impostare il flag VDS_HINT_REMAPENABLED nel membro ullHintMask per indicare l'interesse di questo membro.

bReadBackVerifyEnabled

Se questo membro è TRUE, il provider verifica le scritture nel LUN tramite readback. Se è FALSE, il provider non verifica le scritture. Impostare il flag VDS_HINT_READBACKVERIFYENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

bWriteThroughCachingEnabled

Se questo membro è TRUE, il provider abilita la memorizzazione nella cache write-through nel LUN; se è FALSE, il provider non abilita la memorizzazione nella cache write-through. Impostare il flag VDS_HINT_WRITETHROUGHCACHINGENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

bHardwareChecksumEnabled

Se questo membro è TRUE, il provider abilita un checksum nel LUN. Impostare il flag VDS_HINT_HARDWARECHECKSUMENABLED nel membro ullHintMask per indicare l'interesse di questo membro.

bIsYankable

Se questo membro è TRUE, le unità che contribuiscono al LUN possono essere rimosse fisicamente senza interruzioni significative al sistema (questo è in genere vero quando il LUN è composto da solo poche unità). Se è FALSE, il LUN non può essere rimosso senza interruzioni significative al sistema. Impostare il flag VDS_HINT_ISYANKABLE nel membro ullHintMask per indicare l'interesse in questo membro.

bAllocateHotSpare

TRUE se il client vuole allocare un'unità di riserva frequente per questo LUN o FALSE in caso contrario. Impostare il flag VDS_HINT_ALLOCATEHOTSPARE nel membro ullHintMask per indicare l'interesse in questo membro.

bUseMirroredCache

TRUE se il client vuole che questo LUN usi una cache con mirroring o FALSE in caso contrario. Impostare il flag di VDS_HINT_USEMIRROREDCACHE nel membro ullHintMask per indicare l'interesse in questo membro.

bReadCachingEnabled

TRUE se il client vuole che il LUN usi la memorizzazione nella cache di lettura o FALSE in caso contrario. Impostare il flag VDS_HINT_READCACHINGENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

bWriteCachingEnabled

TRUE se il client vuole che il LUN usi la memorizzazione nella cache di scrittura o FALSE in caso contrario. Impostare il flag VDS_HINT_WRITECACHINGENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

bMediaScanEnabled

TRUE se il client vuole abilitare l'analisi multimediale per questo LUN o FALSE in caso contrario. Impostare il flag VDS_HINT_MEDIASCANENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

bConsistencyCheckEnabled

TRUE se il client vuole abilitare il controllo della coerenza per questo LUN o FALSE in caso contrario. Impostare il flag VDS_HINT_CONSISTENCYCHECKENABLED nel membro ullHintMask per indicare l'interesse in questo membro.

BusType

Valore di enumerazione VDS_STORAGE_BUS_TYPE che specifica il tipo di bus per il LUN. Impostare il flag VDS_HINT_BUSTYPE nel membro ullHintMask per indicare l'interesse in questo membro.

bReserved1

Questo membro è riservato per usi futuri. Non usare.

bReserved2

Questo membro è riservato per usi futuri. Non usare.

bReserved3

Questo membro è riservato per usi futuri. Non usare.

sRebuildPriority

Priorità di ricompilazione per il LUN. Il valore può variare da 0 (priorità più bassa) a 15 (priorità più alta).

Commenti

Il metodo IVdsHwProviderStoragePools::CreateLunInStoragePool passa questa struttura come parametro per fornire hint per la creazione di un LUN in un pool di archiviazione. Viene passato come parametro nel metodo IVdsLun2::ApplyHints2 per applicare un nuovo set di hint a un LUN. Inoltre, viene restituito dal metodo IVdsLun2::QueryHints2 per segnalare gli hint attualmente applicati a un plex LUN o LUN, rispettivamente.

Gli hint non sono direttive per l'implementazione. Anche se gli implementatori sono in generale previsti per prendere in considerazione i loro suggerimenti, non sono obbligati a seguirli. Gli implementatori possono scegliere alternative quando non è possibile seguire gli hint specificati per motivi tecnici o quando li segue possono causare una configurazione scarsa.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Intestazione vdshwprv.h

Vedi anche

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2