Condividi tramite


Informazioni sulla cache dei pool di archiviazione

Si applica a: Azure Stack HCI, versioni 22H2 e 21H2; Windows Server 2022, Windows Server 2019

Importante

Azure Stack HCI is now part of Azure Local. La ridenominazione della documentazione del prodotto è in corso. Tuttavia, le versioni precedenti di Azure Stack HCI, ad esempio 22H2 continueranno a fare riferimento ad Azure Stack HCI e non rifletteranno la modifica del nome. Altre informazioni.

Spazi di archiviazione diretta, la tecnologia di virtualizzazione dell'archiviazione di base dietro Azure Stack HCI e Windows Server, offre una cache sul lato server predefinita per ottimizzare le prestazioni di archiviazione riducendo al contempo i costi. Si tratta di una cache di lettura e scrittura in tempo reale di grandi dimensioni, persistente e in tempo reale configurata automaticamente durante la distribuzione. Nella maggior parte dei casi non è necessaria alcuna gestione manuale. Il funzionamento della cache dipende dai tipi di unità presenti.

Tipi di unità e opzioni di distribuzione

Spazi di archiviazione diretta attualmente funziona con quattro tipi di unità:

Tipo di unità Descrizione
PMem PMem si riferisce alla memoria persistente, a un nuovo tipo di archiviazione a bassa latenza e ad alte prestazioni.
NVMe NVMe (Non-Volatile Memory Express) si riferisce alle unità ssd che si trovano direttamente sul bus PCIe. I fattori di forma comuni sono 2,5" U.2, PCIe Add-In-Card (AIC) e M.2. NVMe offre una velocità effettiva di I/O al secondo e I/O superiore con una latenza inferiore rispetto a qualsiasi altro tipo di unità attualmente supportata, ad eccezione di PMem.
SSD SSD si riferisce a unità ssd, che si connettono tramite SATA o SAS convenzionali.
HDD HDD si riferisce a unità disco rigido magnetiche e rotazionali, che offrono una grande capacità di archiviazione a un costo basso.

Questi possono essere combinati in vari modi, che si raggruppano in due categorie: "all-flash" e "ibrido". Le distribuzioni con tutte le unità HDD non sono supportate.

Nota

Questo articolo illustra le configurazioni della cache con NVMe, SSD e HDD. Per informazioni sull'uso della memoria persistente come cache, vedere Informazioni e distribuzione della memoria persistente.

Possibilità di distribuzione all-flash

Le distribuzioni all-flash puntano a ottimizzare le prestazioni di archiviazione e non includono HDD.

Il diagramma mostra le distribuzioni all-flash, tra cui NVMe per la capacità, NVMe per la cache con SSD per la capacità e SSD per la capacità.

Possibilità di distribuzione ibrida

Le distribuzioni ibride mirano a bilanciare le prestazioni e la capacità o a massimizzare la capacità e includere HDD.

Diagramma che mostra le distribuzioni ibride, tra cui NVMe per la cache con unità disco rigido per la capacità, SSD per la cache con unità DISCO rigido per la capacità e NVMe per la cache con HDD più SSD per la capacità.

Nota

La distribuzione ibrida non è supportata nella configurazione a server singolo. Tutte le configurazioni di tipo di archiviazione singolo flat (ad esempio all-NVMe o all-SSD) sono l'unico tipo di archiviazione supportato per un singolo server.

Le unità cache vengono selezionate automaticamente

Nelle distribuzioni con più tipi di unità, Spazi di archiviazione diretta usa automaticamente tutte le unità del tipo più veloce per la memorizzazione nella cache. Le unità rimanenti vengono utilizzate per la capacità.

Il tipo "più veloce" viene determinato in base alla gerarchia seguente.

Il diagramma mostra i tipi di disco disposti più velocemente per rallentare nell'ordine NVMe, SSD, disco senza etichetta che rappresenta hdd.

Ad esempio, se si dispone di UNITÀ SSD e NVMe, la cache NVMe verrà memorizzata nella cache per le unità SSD.

Se si dispone di unità SSD e HDD, le unità SSD verranno memorizzate nella cache per le unità HDD.

Nota

Le unità cache non contribuiscono alla capacità di archiviazione utilizzabile nel cluster. Tutti i dati archiviati nella cache vengono archiviati anche altrove o saranno una volta de-fasi. Ciò significa che la capacità totale di archiviazione non elaborata del cluster è solo la somma delle unità di capacità.

Quando tutte le unità sono dello stesso tipo, non viene configurata automaticamente alcuna cache. È possibile configurare manualmente le unità di livello superiore per memorizzare nella cache le unità con resistenza inferiore dello stesso tipo. Per informazioni su come, vedere la sezione Configurazione manuale.

Suggerimento

In alcuni casi, l'uso della cache del pool di archiviazione non ha senso. Ad esempio, nelle distribuzioni all-NVMe o all-SSD, in particolare su scala molto ridotta, non avendo unità "spese" nella cache può migliorare l'efficienza di archiviazione e ottimizzare le prestazioni. Analogamente, piccole distribuzioni remote o succursali possono avere spazio limitato per le unità cache.

Il comportamento della cache viene impostato automaticamente

Il comportamento della cache viene determinato automaticamente in base ai tipi di unità memorizzate nella cache. Quando si memorizzano nella cache per le unità flash(ad esempio la memorizzazione nella cache NVMe per unità SSD), vengono memorizzate nella cache solo le scritture. Quando si esegue la memorizzazione nella cache per le unità disco rotanti , ad esempio la memorizzazione nella cache delle unità SSD per le unità DISCO, le letture e le scritture vengono memorizzate nella cache.

Diagramma che confronta la memorizzazione nella cache per all-flash, in cui le scritture vengono memorizzate nella cache e le letture non sono, con ibrido, in cui vengono memorizzate nella cache sia le letture che le scritture.

Memorizzazione nella cache di sola scrittura per distribuzioni all-flash

La memorizzazione nella cache può essere usata in uno scenario all-flash, ad esempio usando NVMe come cache per accelerare le prestazioni delle unità SSD. Quando si memorizza nella cache per le distribuzioni all-flash, vengono memorizzate nella cache solo le scritture. Ciò riduce l'usura delle unità di capacità perché molte scritture e scritture possono unire nella cache e quindi de-stage solo in base alle esigenze, riducendo il traffico cumulativo verso le unità di capacità e estendendone la durata. Per questo motivo, è consigliabile selezionare unità ottimizzate per la scrittura più elevate per la cache. Le unità di capacità possono ragionevolmente avere una resistenza di scrittura inferiore.

Poiché le letture non influiscono significativamente sulla durata del flash e poiché le unità SSD offrono universalmente bassa latenza di lettura, le letture non vengono memorizzate nella cache: vengono servite direttamente dalle unità di capacità (tranne quando i dati sono stati scritti così di recente che non sono ancora stati de-staging). In questo modo la cache può essere interamente dedicata alle scritture, ottimizzandone l'efficacia.

Ciò comporta caratteristiche di scrittura, ad esempio la latenza di scrittura, dettate dalle unità della cache, mentre le caratteristiche di lettura sono dettate dalle unità di capacità. Entrambi sono coerenti, prevedibili e uniformi.

Memorizzazione nella cache di lettura/scrittura per le distribuzioni ibride

Quando la memorizzazione nella cache per HDD, sia le letture che le scritture vengono memorizzate nella cache, per fornire una latenza simile a flash (spesso ~10x migliore) per entrambi. La cache di lettura archivia i dati di recente e di frequente per l'accesso rapido e ridurre al minimo il traffico casuale verso i dischi RIGIDI. A causa di ritardi di ricerca e rotazione, la latenza e il tempo perso causati dall'accesso casuale a un hdd sono significativi. Le scritture vengono memorizzate nella cache per assorbire picchi e, come in precedenza, per unire scritture e riscrizioni e ridurre al minimo il traffico cumulativo verso le unità di capacità.

Spazi di archiviazione diretta implementa un algoritmo che de-randomizza le scritture prima di eseguirne la de-staging, per emulare un modello di I/O su disco che sembra sequenziale anche quando l'I/O effettivo proveniente dal carico di lavoro (ad esempio le macchine virtuali) è casuale. In questo modo si ottimizzano le operazioni di I/O al secondo e la velocità effettiva per i dischi rigidi.

Memorizzazione nella cache nelle distribuzioni con NVMe, SSD e HDD

Quando sono presenti unità di tutti e tre i tipi, le unità NVMe forniscono la memorizzazione nella cache sia per le unità SSD che per le unità HDD. Il comportamento è quello descritto in precedenza: solo le scritture vengono memorizzate nella cache per le unità SSD e le letture e le scritture vengono memorizzate nella cache per i dischi RIGIDI. Il carico di memorizzazione nella cache per i dischi RIGIDI viene distribuito uniformemente tra le unità della cache.

Riepilogo

Questa tabella riepiloga le unità usate per la memorizzazione nella cache, usate per la capacità e il comportamento di memorizzazione nella cache per ogni possibilità di distribuzione.

Distribuzione Unità di cache Unità di capacità Comportamento della cache (impostazione predefinita)
Tutti i file NVMe Nessuno (facoltativo: configurazione manuale) NVMe Sola scrittura (se configurata)
Tutte le unità SSD Nessuno (facoltativo: configurazione manuale) SSD Sola scrittura (se configurata)
NVMe + SSD NVMe SSD Sola scrittura
NVMe + HDD NVMe HDD Lettura + scrittura
SSD + HDD SSD HDD Lettura + scrittura
NVMe + SSD + HDD NVMe SSD + HDD Lettura e scrittura per HDD, solo scrittura per SSD

Architettura lato server

La cache viene implementata a livello di unità: le singole unità cache all'interno di un server sono associate a una o più unità di capacità all'interno dello stesso server.

Poiché la cache è al di sotto del resto dello stack di archiviazione software-defined di Windows, non ha né ha bisogno di alcuna conoscenza dei concetti, ad esempio Spazi di archiviazione o tolleranza di errore. È possibile considerarlo come la creazione di unità "ibride" (parte flash, parte del disco) che vengono quindi presentate al sistema operativo. Come con un'unità ibrida effettiva, lo spostamento in tempo reale dei dati ad accesso frequente e freddo tra le parti più veloci e lente dei supporti fisici è quasi invisibile all'esterno.

Dato che la resilienza in Spazi di archiviazione diretta è almeno a livello di server (ovvero le copie dei dati vengono sempre scritte in server diversi; al massimo una copia per server), i dati nella cache traggono vantaggio dalla stessa resilienza dei dati non presenti nella cache.

Il diagramma rappresenta tre server uniti da un mirroring a tre vie in un livello spazio di archiviazione, che accede a un livello cache di unità NVMe che accedono alle unità di capacità senza etichetta.

Ad esempio, quando si usa il mirroring a tre vie, tre copie di tutti i dati vengono scritte in server diversi, in cui vengono inseriti nella cache. Indipendentemente dal fatto che siano successivamente de-staged o meno, saranno sempre presenti tre copie.

Le associazioni di unità sono dinamiche

L'associazione tra unità cache e capacità può avere qualsiasi rapporto, da 1:1 a 1:12 e versioni successive. Regola in modo dinamico ogni volta che le unità vengono aggiunte o rimosse, ad esempio quando si aumentano o si verificano errori. Ciò significa che è possibile aggiungere unità cache o unità di capacità in modo indipendente, ogni volta che si desidera.

Il diagramma animato mostra due unità cache NVMe mappate dinamicamente ai primi quattro, quindi sei, quindi otto unità di capacità.

È consigliabile rendere il numero di unità di capacità un multiplo del numero di unità della cache, per la simmetria. Ad esempio, se si dispone di 4 unità cache, si avranno prestazioni più elevate con 8 unità di capacità (rapporto 1:2) rispetto a 7 o 9.

Gestione degli errori delle unità della cache

Quando un'unità cache ha esito negativo, tutte le scritture che non sono ancora state de-staging vengono perse nel server locale, vale a dire che esistono solo nelle altre copie (in altri server). Proprio come dopo qualsiasi altro guasto dell'unità, Spazi di archiviazione può e esegue automaticamente il recupero consultando le copie sopravvissute.

Per un breve periodo, le unità di capacità associate all'unità cache persa appariranno non integre. Dopo aver eseguito il riassociamento della cache (automatico) e il ripristino dei dati è stato completato (automatico), riprenderanno a essere visualizzati come integri.

Questo scenario è il motivo per cui sono necessarie almeno due unità cache per ogni server per mantenere le prestazioni.

Diagramma animato che mostra due unità cache SSD mappate a sei unità di capacità fino a quando un'unità cache non riesce, causando il mapping di tutte e sei le unità all'unità cache rimanente.

È quindi possibile sostituire l'unità cache esattamente come qualsiasi altra sostituzione dell'unità.

Nota

Potrebbe essere necessario spegnere per sostituire in modo sicuro NVMe che è componente aggiuntivo (AIC) o fattore di forma M.2.

Relazione con altre cache

Esistono diverse altre cache non correlate nello stack di archiviazione software-defined di Windows. Gli esempi includono la cache writeback Spazi di archiviazione e la cache in lettura in memoria del volume condiviso del cluster.

Con Azure Stack HCI, la cache writeback Spazi di archiviazione non deve essere modificata dal comportamento predefinito. Ad esempio, i parametri come -WriteCacheSize nel cmdlet New-Volume non devono essere usati.

È possibile scegliere di usare o meno la cache CSV. È attivata per impostazione predefinita in Azure Stack HCI, ma non è in conflitto con la cache descritta in questo argomento in alcun modo. In alcuni scenari può offrire utili miglioramenti in termini di prestazioni. Per altre informazioni, vedere Usare la cache di lettura in memoria CSV con Azure Stack HCI.

Configurazione manuale

Per la maggior parte delle distribuzioni, la configurazione manuale non è necessaria. Se necessario, vedere le sezioni seguenti.

Se è necessario apportare modifiche al modello di dispositivo della cache dopo l'installazione, modificare il documento dei componenti di supporto di Servizio integrità, come descritto in Servizio integrità panoramica.

Specificare il modello di unità cache

Nelle distribuzioni in cui tutte le unità sono dello stesso tipo, ad esempio tutte le distribuzioni NVMe o all-SSD, non viene configurata alcuna cache perché Windows non può distinguere automaticamente caratteristiche come la resistenza di scrittura tra le unità dello stesso tipo.

Per usare le unità di resistenza più elevate per memorizzare nella cache le unità di durata inferiore dello stesso tipo, è possibile specificare il modello di unità da usare con il parametro -CacheDeviceModel del cmdlet Enable-ClusterS2D . Tutte le unità del modello verranno usate per la memorizzazione nella cache.

Suggerimento

Assicurarsi di corrispondere esattamente alla stringa del modello come appare nell'output di Get-PhysicalDisk.

Esempio

Prima di tutto, ottenere un elenco di dischi fisici:

Get-PhysicalDisk | Group Model -NoElement

Ecco un esempio di output:

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

Immettere quindi il comando seguente, specificando il modello di dispositivo della cache:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

È possibile verificare che le unità desiderate vengano usate per la memorizzazione nella cache eseguendo Get-PhysicalDisk in PowerShell e verificando che la relativa proprietà Usage indichi "Journal".

Possibilità di distribuzione manuale

La configurazione manuale consente le seguenti possibilità di distribuzione:

Il diagramma mostra le possibilità di distribuzione, tra cui NVMe per cache e capacità, UNITÀ SSD sia per cache che per capacità e SSD per cache e UNITÀ SSD mista per la capacità.

Impostare il comportamento della cache

È possibile eseguire l'override del comportamento predefinito della cache. Ad esempio, è possibile impostarla per memorizzare nella cache le letture anche in una distribuzione all-flash. È consigliabile modificare il comportamento a meno che non si sia certi che l'impostazione predefinita non sia adatta al carico di lavoro.

Per eseguire l'override del comportamento, usare il cmdlet Set-ClusterStorageSpacesDirect e i relativi parametri -CacheModeSSD e -CacheModeHDD . Il parametro CacheModeSSD imposta il comportamento della cache durante la memorizzazione nella cache per SSD. Il parametro CacheModeHDD imposta il comportamento della cache durante la memorizzazione nella cache per HDD.

È possibile usare Get-ClusterStorageSpacesDirect per verificare che il comportamento sia impostato.

Esempio

Ottenere prima di tutto le impostazioni di Spazi di archiviazione diretta:

Get-ClusterStorageSpacesDirect

Ecco un esempio di output:

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

Procedere quindi come segue:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

Ecco un esempio di output:

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

Ridimensionamento della cache

La cache deve essere ridimensionata in modo da contenere il working set (i dati che vengono letti o scritti attivamente in qualsiasi momento) delle applicazioni e dei carichi di lavoro.

Ciò è particolarmente importante nelle distribuzioni ibride con unità disco rigido. Se il working set attivo supera le dimensioni della cache o se il working set attivo si allontana troppo rapidamente, i mancati riscontri nella cache di lettura aumentano e le scritture devono essere de-staging in modo più aggressivo, danneggiando le prestazioni complessive.

È possibile usare l'utilità Monitor prestazioni predefinita (PerfMon.exe) in Windows per controllare la frequenza di mancati riscontri nella cache. In particolare, è possibile confrontare le letture di mancati riscontri nella cache/sec dal contatore Del disco ibrido di Archiviazione cluster impostato sulle operazioni di I/O al secondo di lettura complessive della distribuzione. Ogni "disco ibrido" corrisponde a un'unità di capacità.

Ad esempio, 2 unità cache associate a 4 unità di capacità generano 4 istanze di oggetti "Disco ibrido" per server.

Performance Monitor.

Non esiste alcuna regola universale, ma se mancano troppe letture, potrebbe essere sottodimensionata ed è consigliabile aggiungere unità cache per espandere la cache. È possibile aggiungere unità cache o unità di capacità in modo indipendente ogni volta che si desidera.

Passaggi successivi

Per altre informazioni di archiviazione, vedere anche: