Condividi tramite


VDS_HINTS struttura (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.

Definisce gli hint automagic per un lun o un plex LUN.

Sintassi

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;

Members

ullHintMask

Maschera di hint LUN. Ognuno dei membri 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 di hint non è impostato, l'hint viene ignorato. I flag 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 di modifiche che consente al provider di ripristinare il LUN senza confrontare l'intero contenuto del LUN.
VDS_HINT_MOSTLYREADS
0x000000000000000002L
Il provider ottimizza il LUN per un modello di utilizzo di lettura, in genere usando il mirroring anziché lo striping di parità.
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x00000000000000004L
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 l'I/O casuale.
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 l'I/O casuale.
VDS_HINT_READBACKVERIFYENABLED
0x00000000000000010L
Il provider verifica le scritture nel LUN usando il readback.
VDS_HINT_REMAPENABLED
0x000000000000000020L
Il mapping degli extent LUN per le 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
0x000000000000000080L
Il provider abilita un checksum hardware nel LUN.
VDS_HINT_ISYANKABLE
0x000000000000000100L
Il provider configura LUN in modo che le unità che contribuiscono a tale unità possano essere rimosse fisicamente con interruzioni minime del sistema. Questa operazione viene normalmente eseguita assicurandosi che il LUN occupa il minor numero possibile di unità.

ullExpectedMaximumSize

Dimensione massima a cui si prevede che il LUN venga a crescere, in byte. Il valore può essere uguale a, maggiore o minore del valore specificato in ullSizeInBytes quando viene chiamato il metodo IVdsSubSystem::CreateLun . Alcuni provider usano questo valore per riservare lo spazio per il LUN. I provider che non possono riservare spazio in genere ignorano questo parametro.

ulOptimalReadSize

Dimensioni di lettura ottimali per il LUN, in byte. Zero indica nessuna dimensione di lettura ottimale.

ulOptimalReadAlignment

Allineamento di lettura ottimale rispetto al primo blocco logico del LUN. Zero indica un allineamento di lettura ottimale.

ulOptimalWriteSize

Dimensioni di scrittura ottimali per il LUN, in byte. Zero indica nessuna dimensione di scrittura ottimale.

ulOptimalWriteAlignment

Allineamento di scrittura ottimale rispetto al primo blocco logico del LUN. Zero indica un allineamento di scrittura ottimale.

ulMaximumDriveCount

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

ulStripeSize

Dimensione dell'interleave mirror o della parità, in byte. Zero lascia invariate le dimensioni della striscia.

bFastCrashRecoveryRequired

Se questo membro è TRUE, il tempo di ripristino è limitato. Impostare il flag VDS_HINT_FASTCRASHRECOVERYREQUIRED nel membro ullHintMask per indicare l'interesse in 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 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 è impostato su TRUE, il provider verifica le scritture nel LUN tramite readback. Se è impostato su 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 in scrittura. 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.

sRebuildPriority

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

Commenti

Il metodo IVdsSubSystem::CreateLun passa questa struttura come parametro per fornire hint per la creazione di un LUN. Viene passato come parametro nel metodo ApplyHints rispettivamente nelle interfacce IVdsLun e IVdsLunPlex per applicare rispettivamente un nuovo set di hint a un LUN o lun. Inoltre, viene restituito dal metodo QueryHints rispettivamente nelle interfacce IVdsLun e IVdsLunPlex per segnalare gli hint attualmente applicati a un lun o a un plex LUN.

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 Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione vdshwprv.h

Vedi anche

IVdsLun::ApplyHints

IVdsLun::QueryHints

IVdsLunPlex::ApplyHints

IVdsLunPlex::QueryHints

IVdsSubSystem::CreateLun

Strutture VDS