Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Panoramica
Il thin provisioning è una tecnica di gestione dell'archiviazione che ottimizza l'allocazione delle risorse di archiviazione fisiche. Consente agli amministratori di allocare grandi quantità di spazio di archiviazione virtuale alle applicazioni di quanto sia fisicamente disponibile, con la previsione che non tutte le risorse di archiviazione allocate verranno usate contemporaneamente.
Il thin provisioning è una soluzione di provisioning di archiviazione end-to-end che offre allocazioni JIT. Richiede la pianificazione della distribuzione e dell'esecuzione dell'archiviazione nell'host e nell'applicazione client.
Le funzionalità di thin provisioning di Windows Server fungono da interfacce tra l'archiviazione con supporto per il thin provisioning e il server host. Le funzionalità di thin provisioning includono:
- Identificazione dell'unità logica di thin provisioning
- Notifica di soglia
- Handle per l'esaurimento delle risorse
- Recupero dello spazio per fornire servizi di provisioning di archiviazione a disponibilità elevata e scalabilità agli utenti finali
Identificazione LUN thin provisioning
Windows Server ha adottato la specifica standard T10 SCSI Block Command 3 (SBC3) per identificare le unità logiche di thin provisioning (LUN) a partire da Windows Server 2012.
Durante l'enumerazione iniziale del dispositivo di destinazione, Windows Server raccoglie tutti i parametri di proprietà dal dispositivo di destinazione e identifica il tipo di provisioning e la funzionalità UNMAP e TRIM. Il dispositivo di archiviazione segnala il tipo di provisioning e la funzionalità UNMAP e TRIM in base alla specifica SBC3.
Se il dispositivo di archiviazione non segnala accuratamente la funzionalità corrente, potrebbero verificarsi problemi di compatibilità dei dispositivi. Ad esempio, se il dispositivo di archiviazione segnala che supporta il comando UNMAP ma non supporta il comando UNMAP, potrebbe verificarsi un problema di blocco del formato del disco. Quando le informazioni sul tipo di provisioning sono accurate, lo stack di archiviazione può offrire una migliore gestione di I/O in base al tipo di provisioning di archiviazione.
Modifiche al tipo di provisioning in fase di esecuzione o alla capacità LUN
Un amministratore di archiviazione può modificare il tipo di provisioning o la capacità del LUN. Quando si modifica il tipo di provisioning o la capacità LUN, l'array di archiviazione genera una condizione unit ATTENTION sense che restituisce le informazioni corrette quando vengono richiesti i dati del senso. Windows Server registra un evento di sistema per avvisare l'amministratore di sistema del tipo di provisioning o della modifica della capacità LUN.
Handle di esaurimento delle risorse e soglia
Un LUN di thin provisioning viene in genere creato con meno spazio su disco fisico rispetto alle dimensioni del LUN. La notifica di soglia è una funzione necessaria per avvisare l'host e l'applicazione client dello stato di utilizzo dello spazio di archiviazione.
La maggior parte degli array di archiviazione con thin provisioning non segnala un evento quando viene raggiunta la soglia. Queste soluzioni di archiviazione thin provisioning risolvono la notifica di soglia tramite l'utilità di gestione dell'archiviazione proprietaria. Pertanto, per l'applicazione host e client, l'unico evento che tali matrici di archiviazione segnalano l'esaurimento permanente delle risorse. Il dispositivo di archiviazione thin provisioning può usare uno degli handle seguenti per avvisare gli amministratori di sistema o le applicazioni client quando l'utilizzo dello spazio di archiviazione sta per raggiungere la capacità:
- Handle di notifica soglia.
- Handle di esaurimento delle risorse temporaneo.
- Handle di esaurimento delle risorse permanente
Notifica soglia thin provisioning
L'utilità di gestione archiviazione imposta la soglia di thin provisioning. Windows Server non sostituisce la soglia impostata dall'utilità di gestione archiviazione. Per il LUN di thin provisioning, l'amministratore di archiviazione deve specificare la soglia in base alla velocità di utilizzo media dell'archiviazione. Quando un comando di scrittura supera la soglia impostata dal dispositivo di destinazione di archiviazione, il dispositivo di destinazione termina il comando usando i dati del senso e invia un messaggio "THIN PROVISIONING SOFT THRESHOLD REACHED". Quando Windows Server riceve i dati del senso corrispondenti, si verifica quanto segue:
- Un evento di sistema viene registrato per avvisare l'amministratore host che è stata raggiunta la soglia di utilizzo o disponibilità delle risorse nel dispositivo LUN.
- Le informazioni sulle risorse mappate usate e disponibili vengono segnalate nel registro eventi di sistema dalla pagina di log del dispositivo di destinazione. Affinché si verifichi questa segnalazione, l'array di archiviazione deve supportare la specifica della pagina del log per il provisioning di blocchi logici per consentire a Windows Server di generare l'evento di sistema.
- Il comando terminato viene ritentato.
I comandi di scrittura inviati dopo la registrazione di questo errore potrebbero essere persi se FILE_FLAG_WRITE_THROUGH non è impostato perché potrebbero attivare una condizione di esaurimento permanente delle risorse.
Esaurimento risorse temporanee
Quando l'array di archiviazione abilita la funzione di aumento automatico in un LUN, un amministratore può usare la notifica di esaurimento temporaneo delle risorse per garantire che il dispositivo di archiviazione possa allocare più spazio al LUN entro quattro secondi. Quando un comando di scrittura causa una condizione di esaurimento delle risorse temporanea, il dispositivo di archiviazione termina il comando che richiede l'operazione usando i dati del senso e restituisce un messaggio "SPACE ALLOCATION IN PROGRESS". L'esaurimento temporaneo delle risorse viene gestito come segue:
- Ripetere la richiesta originale quattro volte con l'intervallo tra tentativi impostato su 1 secondo.
- Se tutti i tentativi hanno esito negativo, la richiesta viene restituita all'applicazione.
- Se il dispositivo di archiviazione non gestisce l'esaurimento temporaneo delle risorse, Windows Server prevede che il dispositivo di archiviazione non riesca alla richiesta di scrittura successiva restituendo uno stato di esaurimento permanente delle risorse.
Esaurimento permanente delle risorse
La condizione di esaurimento permanente delle risorse indica che il LUN di thin provisioning ha raggiunto il limite massimo di spazio di archiviazione. Quando si verifica l'esaurimento permanente delle risorse durante un comando di scrittura, il dispositivo di archiviazione termina l'operazione usando i dati sense e invia un messaggio "SPACE ALLOCATION FAILED WRITE PROTECT". L'esaurimento permanente viene gestito come segue:
- Il comando di scrittura viene restituito all'applicazione se il comando ha FILE_FLAG_WRITE_THROUGH impostato.
- L'applicazione potrebbe ricevere una risposta di esito positivo senza che la richiesta venga completata né scaricata su supporti fisici se il comando di scrittura non ha FILE_FLAG_WRITE_THROUGH impostato.
- Viene registrato un evento di sistema che include un messaggio di errore di "esaurimento permanente delle risorse".
- Il codice di errore viene passato di nuovo al gestore partizioni e il LUN viene portato offline.
Recupero dello spazio di archiviazione tramite il comando UNMAP
Gli scenari seguenti possono attivare il recupero dello spazio:
- Eliminazione di file.
- Taglio a livello di file system.
- Operazione di ottimizzazione dell'archiviazione.
Il taglio a livello di file system è abilitato per un dispositivo di archiviazione progettato per eseguire "read return zero" dopo un'operazione di taglio o unmap.
Operazione di recupero dello spazio nello stack di archiviazione
Windows Server converte le notifiche di eliminazione o taglio dei file in una richiesta UNMAP corrispondente:
- Quando un file di grandi dimensioni viene eliminato dal file system.
- Quando viene attivato un taglio a livello di file system.
Lo stack di driver della porta di archiviazione converte la richiesta UNMAP in un comando UNMAP SCSI o in un comando ATA TRIM in base al tipo di protocollo del dispositivo di archiviazione. Durante l'enumerazione del dispositivo di archiviazione, lo stack di archiviazione di Windows raccoglie informazioni su se il dispositivo di archiviazione supporta i comandi UNMAP o TRIM. Solo la richiesta UNMAP viene inviata al dispositivo di archiviazione se il dispositivo dispone di funzionalità UNMAP SCSI o ATA TRIM. Windows Server fornisce anche un'implementazione dell'API per annullare il mapping delle LBA in un dispositivo di destinazione di archiviazione. Windows Server non adotta set di comandi T10 SCSI WRITE SAME.
Richieste UNMAP dal sistema operativo guest Hyper-V
Durante la creazione della macchina virtuale, un host Hyper-V invia una richiesta su se il dispositivo di archiviazione in cui risiede il disco rigido virtuale (VHD) supporta i comandi UNMAP o TRIM. Quando un file di grandi dimensioni viene eliminato dal file system di un sistema operativo guest della macchina virtuale, il sistema operativo guest invia una richiesta di eliminazione di file al disco rigido virtuale (VHD) o al file VHDX della macchina virtuale. Il file VHD o VHDX della macchina virtuale esegue il tunneling della richiesta UNMAP SCSI allo stack di driver di classe dell'host Hyper-V di Windows, come indicato di seguito:
- Se la macchina virtuale ha un file VHD, il disco rigido virtuale converte i comandi UNMAP SCSI o ATA TRIM in una richiesta TRIM del codice di controllo I/O di gestione dei set di dati e quindi invia la richiesta al dispositivo di archiviazione host.
- Se la macchina virtuale ha un file VHDX, il file system VHD converte i comandi UNMAP SCSI o ATA TRIM in richieste di taglio a livello di file system e quindi invia le richieste al sistema operativo host.
Windows Hyper-V supporta anche chiamate DSM TRIM IOCTL dal sistema operativo guest.
Utilità unità di Windows Optimize
Gli utenti finali o gli amministratori di sistema possono usare l'utilità Ottimizza unità per recuperare spazio creando una richiesta manuale o ottimizzando la configurazione della pianificazione. Se l'unità disco è un LUN di thin provisioning, il tipo di supporto dell'unità disco viene visualizzato come "Unità thin provisioning".
L'amministratore di sistema può pianificare un consolidamento dello spazio di archiviazione usando l'utilità Ottimizza unità. L'utilità può anche notificare all'amministratore di sistema se il sistema non esegue tre esecuzioni pianificate consecutive.
Recupero dello stato di mapping della lalab
In un LUN di thin provisioning, tutti i blocchi logici sono raggruppati in lastre (cluster). Il parametro OPTIMAL UNMAP GRANULARITY segnalato dal dispositivo di archiviazione imposta le dimensioni della lastra. Tutte le lastre sono classificate in stati mappati, deallocati o ancorati. Windows Server considera gli stati deallocati e ancorati come stati non mappati. Windows Server fornisce un'implementazione dell'API o un'allocazione DSM IOCTL per recuperare lo stato del provisioning LBA dai LUN di thin provisioning per l'operazione di gestione dell'archiviazione. L'applicazione può chiamare la routine di allocazione DSM IOCTL per inviare il comando SCSI e recuperare lo stato mappato o non mappato di ogni lastra in un intervallo specifico. Se lo stato del provisioning LBA restituito non descrive l'intero intervallo di allocazione, l'applicazione invia un altro comando SCSI per recuperare lo stato di provisioning dell'intervallo LBA rimanente.
Il dispositivo di archiviazione non deve elaborare l'intero intervallo di LBA in un unico ritorno. Se è stato restituito l'intervallo LBA parziale della richiesta originale, viene inviato un altro comando per recuperare gli stati di mapping dell'intervallo LBA rimanente.