Impostazioni avanzate di Deduplicazione dati

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

In questo documento viene descritto come modificare le impostazioni di deduplicazione avanzate. Per i carichi di lavoro consigliati, le impostazioni predefinite dovrebbero essere sufficienti. Il motivo principale per cui si modificano queste impostazioni è migliorare le prestazioni della deduplicazione dei dati con altri tipi di carichi di lavoro.

Modifica delle pianificazioni dei processi di deduplicazione dati

Le pianificazioni predefinite dei processi di deduplicazione dati sono progettate in modo da funzionare per i carichi di lavoro consigliati ed essere il meno possibile intrusive (escluso il processo Ottimizzazione della priorità che è abilitato per il tipo di utilizzo Backup). Quando i carichi di lavoro richiedono la disponibilità di un gran numero di risorse, è possibile garantire che i processi vengano eseguiti solo durante le ore di inattività oppure ridurre o aumentare la quantità di risorse di sistema che un processo di deduplicazione dati è autorizzato a consumare.

Modifica di una pianificazione della deduplicazione dei dati

I processi di deduplicazione dati vengono pianificati dal servizio Utilità di pianificazione di Windows, che consente di visualizzarli e modificarli nel percorso Microsoft\Windows\Deduplication. La deduplicazione dei dati include diversi cmdlet che semplificano la pianificazione.

Il motivo più comune per cui si modifica l'orario in cui devono essere eseguiti i processi di deduplicazione dei dati è la necessità di assicurarsi che vengano eseguiti durante le ore non lavorative. L'esempio dettagliato seguente illustra come modificare la pianificazione di Deduplicazione dati per uno scenario di giorno di sole: un host Hyper-V iperconvergente che è inattivo nei fine settimana e dopo le 19:00 durante la settimana. Per modificare la pianificazione, eseguire i cmdlet di PowerShell indicati di seguito in un contesto Amministratore.

  1. Disabilitare i processi di ottimizzazione con pianificazione oraria.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Rimuovere i processi Garbage Collection e Pulitura dell'integrità attualmente pianificati.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Creare un processo di ottimizzazione notturno che venga eseguito alle 19:00 con priorità alta e tutte le CPU e tutta la memoria disponibili nel sistema.

     New-DedupSchedule -Name "NightlyOptimization" -Type Optimization -DurationHours 11 -Memory 100 -Cores 100 -Priority High -Days @(1,2,3,4,5) -Start (Get-Date "2016-08-08 19:00:00")
    

    Nota

    La parte date del System.Datetime trasmesso a -Start è irrilevante (purché sia nel passato), ma la parte time specifica quando deve iniziare il processo.

  4. Creare un processo di Garbage Collection settimanale che venga eseguito il sabato a partire dalle 7:00 con priorità alta e tutte le CPU e tutta la memoria disponibili nel sistema.

     New-DedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(6) -Start (Get-Date "2016-08-13 07:00:00")
    
  5. Creare un processo di Pulitura dell'integrità settimanale che venga eseguito la domenica a partire dalle 7:00 con priorità alta e tutte le CPU e tutta la memoria disponibili nel sistema.

     New-DedupSchedule -Name "WeeklyIntegrityScrubbing" -Type Scrubbing -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(0) -Start (Get-Date "2016-08-14 07:00:00")
    

Impostazioni disponibili a livello di processo

È possibile attivare o disattivare le impostazioni seguenti per i processi di deduplicazione dati nuovi o pianificati:

Nome parametro Definizione Valori accettati Motivo per cui si vuole impostare questo valore
Tipo Il tipo di processo che deve essere pianificato
  • Ottimizzazione
  • GarbageCollection
  • Pulitura
Questo valore è obbligatorio perché è il tipo di processo che si vuole pianificare. Questo valore non può essere modificato dopo che l'attività è stata pianificata.
Priorità Priorità di sistema del processo pianificato
  • Alto
  • Normale
  • Bassa
Questo valore consente al sistema di determinare la modalità di allocazione del tempo della CPU. Alto userà più tempo della CPU, Basso ne userà il minimo.
giorni I giorni in cui il processo è pianificato Matrice di numeri interi da 0 a 6 che rappresenta i giorni della settimana:
  • 0 = domenica
  • 1 = lunedì
  • 2 = martedì
  • 3= mercoledì
  • 4 = giovedì
  • 5 = venerdì
  • 6 = sabato
Le attività pianificate devono essere eseguite in almeno un giorno.
Core La percentuale di core del sistema che deve usata da un processo Numeri interi da 0 a 100 (indica una percentuale) Per controllare il livello di impatto di un processo sulle risorse di calcolo del sistema
DurationHours Numero massimo di ore consentite per l'esecuzione di un processo Numeri interi positivi Per evitare che un processo venga eseguito fuori dall'orario di inattività di un carico di lavoro
Attivato Se il processo verrà eseguito True/false Per disabilitare un processo senza rimuoverlo
Completa Per la pianificazione di un processo di Garbage Collection completo Opzione (true/false) Per impostazione predefinita, ogni quarto processo è un processo di Garbage Collection completo. Con questa opzione, è possibile pianificare l'esecuzione di Garbage Collection completa in modo che sia più frequente.
InputOutputThrottle Specifica la quantità di limitazione di input/output applicata al processo Numeri interi da 0 a 100 (indica una percentuale) La limitazione garantisce che i processi non interferiscano con altri processi ad uso intensivo di I/O.
Memoria Percentuale di memoria del sistema che deve usata da un processo Numeri interi da 0 a 100 (indica una percentuale) Per controllare il livello di impatto del processo sulle risorse di memoria del sistema
Nome Il nome del processo pianificato Stringa Un processo deve avere un nome identificabile in modo univoco.
ReadOnly Indica che il processo di pulitura elabora e segnala i danneggiamenti che trova, ma non effettua alcuna azione di riparazione Opzione (true/false) Si vuole ripristinare manualmente i file che risiedono in sezioni danneggiate del disco.
Avvio Specifica l'ora in cui un processo deve iniziare System.DateTime La parte date del System.Datetime trasmesso a Start è irrilevante (purché sia nel passato), ma la parte time specifica quando deve iniziare il processo.
StopWhenSystemBusy Specifica se la deduplicazione dei dati deve essere interrotta se il sistema è occupato Opzione (true/false) Questa opzione consente di controllare il comportamento della deduplicazione dei dati. Ciò è particolarmente importante se si vuole eseguire la deduplicazione dei dati mentre il carico di lavoro è attivo.

Modifica delle impostazioni della deduplicazione dei dati a livello di volume

Attivazione e disattivazione delle impostazioni dei volumi

È possibile specificare impostazioni predefinite a livello di volume per la deduplicazione dei dati usando il tipo di utilizzo che si seleziona quando si abilita una deduplicazione per un volume. La deduplicazione dei dati include cmdlet che semplificano la modifica delle impostazioni a livello di volume:

I motivi principali per cui si modificano le impostazioni di volume per il tipo di utilizzo selezionato sono migliorare le prestazioni di lettura per file specifici, ad esempio elementi multimediali o altri tipi di file che sono già compressi, e regolare la deduplicazione dei dati per ottimizzarla al meglio per il carico di lavoro specifico. Nell'esempio seguente viene illustrato come modificare le impostazioni del volume della deduplicazione dei dati per un carico di lavoro che è molto simile a un carico di lavoro generale del file server, ma usa file di grandi dimensioni che cambiano frequentemente.

  1. Vedere le impostazioni correnti del volume per il Volume condiviso cluster 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Abilitare OptimizePartialFiles nel Volume condiviso cluster 1 in modo che il criterio MinimumFileAge venga applicato a sezioni del file anziché all'intero file. Ciò garantisce che la maggior parte del file venga ottimizzata anche se le sezioni del file cambiano regolarmente.

     Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
    

Impostazioni disponibili a livello di volume

Nome impostazione Definizione Valori accettati Motivo per cui si vuole modificare questo valore
ChunkRedundancyThreshold Numero di volte in cui si fa riferimento a un blocco prima che un blocco venga duplicato nella sezione hotspot dell'Archivio blocchi. Il valore della sezione hotspot indica che i cosiddetti blocchi "hot" a cui si fa riferimento di frequente usano più percorsi di accesso per migliorare i tempi di accesso. Numeri interi positivi Il motivo principale per cui si modifica questo numero è incrementare la percentuale di riduzione per i volumi con elevata duplicazione. In generale, il valore predefinito (100) è l'impostazione consigliata e non è necessario modificarlo.
ExcludeFileType Tipi di file che vengono esclusi dall'ottimizzazione Matrice di estensioni file Per alcuni tipi di file, in particolare i file multimediali o quelli già compressi, l'ottimizzazione non comporta particolari vantaggi. Questa impostazione consente di configurare quali tipi sono esclusi.
ExcludeFolder Specifica i percorsi delle cartelle che non devono essere considerate per l'ottimizzazione Matrice di percorsi di cartelle Per migliorare le prestazioni o evitare che il contenuto in determinati percorsi venga ottimizzato, è possibile escludere determinati percorsi nel volume dal processo di ottimizzazione.
InputOutputScale Specifica il livello di parallelizzazione IO (code IO) per la deduplicazione dei dati da usare in un volume durante un processo di post-elaborazione Numeri interi positivi da 1 a 36 Il motivo principale per cui si modifica questo valore è ridurre l'impatto sulle prestazioni di un elevato carico di lavoro IO limitando il numero di code IO che la deduplicazione dei dati può usare in un volume. Si noti che la modifica di questa impostazione dal valore predefinito può rallentare l'esecuzione dei processi di post-elaborazione della deduplicazione dei dati.
MinimumFileAgeDays Numero di giorni dopo la creazione del file prima che il file sia considerato conforme ai criteri per l'ottimizzazione. Numeri interi positivi (incluso zero) I tipi di uso predefinito e HyperV impostano questo valore su 3 per ottimizzare le prestazioni sui file attivi o creati di recente. È consigliabile modificare il valore per rendere più aggressiva la deduplicazione dei dati o se non è rilevante la latenza aggiuntiva associata alla deduplicazione.
MinimumFileSize Dimensione minima che un file deve avere per essere considerato conforme ai criteri per l'ottimizzazione Numeri interi positivi (byte) maggiori di 32 KB Il motivo principale della modifica di questo valore è escludere i file di piccole dimensioni che possono avere un valore di ottimizzazione limitato per risparmiare tempo di calcolo.
NoCompress Indica se i blocchi devono essere compressi prima di essere inseriti nell'Archivio blocchi Vero/falso Alcuni tipi di file, in particolare quelli multimediali e già compressi, non vengono compressi in modo appropriato. Questa impostazione consente di disattivare la compressione per tutti i file nel volume. Questa funzionalità è ideale se si sta ottimizzando un dataset che contiene molti file già compressi.
NoCompressionFileType Tipi di file i cui blocchi non devono essere compresso prima di essere aggiunti all'Archivio blocchi Matrice di estensioni file Alcuni tipi di file, in particolare quelli multimediali e già compressi, non vengono compressi in modo appropriato. Questa impostazione consente la disattivazione della compressione per tali file e quindi di risparmiare risorse della CPU.
OptimizeInUseFiles Se abilitata, i file con handle verranno considerati conformi ai criteri per l'ottimizzazione. True/false Abilitare questa impostazione se il carico di lavoro tiene aperti i file per lunghi periodi di tempo. Se questa impostazione non è abilitata, un file non verrà mai ottimizzato se il carico di lavoro ha un handle aperto per il file, anche se è solo occasionalmente l'accodamento dei dati alla fine.
OptimizePartialFiles Se abilitata, il valore di MinimumFileAge si applica ai segmenti di un file anziché all'intero file. True/false Abilitare questa impostazione se il carico di lavoro funziona con file di grandi dimensioni, modificati di frequente, in cui la maggior parte del contenuto del file rimane invariato. Se questa impostazione non è abilitata, questi file non verranno mai ottimizzati poiché continuano a essere modificati, anche se la maggior parte del contenuto dei file è pronto per essere ottimizzato.
Verificare Se abilitata, se l'hash di un blocco corrisponde a un blocco che è già presente nell'Archivio blocchi, i blocchi vengono confrontati byte per byte per verificare che siano identici. True/false Questa è una funzionalità di integrità che assicura che l'algoritmo hash che confronta i blocchi non commetta errori confrontando due blocchi di dati che sono effettivamente diversi ma hanno lo stesso hash. In pratica, è molto improbabile che questo si verifichi. L'abilitazione della funzionalità di verifica comporta un sovraccarico significativo per il processo di ottimizzazione.

Modifica delle impostazioni della deduplicazione dei dati a livello di sistema

La deduplicazione dei dati include impostazioni aggiuntive a livello di sistema che possono essere configurate dal Registro di sistema. Queste impostazioni sono valide per tutti i processi e i volumi eseguiti nel sistema. Prestare particolare attenzione ogni volta che si modifica il Registro di sistema.

Ad esempio, è possibile disattivare completamente Garbage Collection. Altre informazioni sui motivi per cui queste operazioni possono risultare utili per lo scenario sono reperibili nelle Domande frequenti. Per modificare il Registro di sistema con PowerShell:

  • Se la deduplicazione dei dati è in esecuzione in un cluster:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
      Set-ItemProperty -Path HKLM:\CLUSTER\Dedup -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    
  • Se la deduplicazione dei dati non è in esecuzione in un cluster:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    

Impostazioni disponibili a livello di sistema

Nome impostazione Definizione Valori accettati Motivo per cui si vuole modificare il valore
WlmMemoryOverPercentThreshold Questa impostazione consente ai processi di usare più memoria rispetto a quella che la deduplicazione dei dati ritiene effettivamente disponibile. Ad esempio, un'impostazione di 300 significa che il processo deve usare tre volte la memoria assegnata per essere annullato. Numeri interi positivi (il valore 300 significa 300% o 3 volte) Se si ha un'altra attività che verrà interrotta se la deduplicazione dei dati richiede più memoria
DeepGCInterval Questa impostazione consente di configurare l'intervallo in cui i processi di Garbage Collection normali diventano processi di Garbage Collection completi. L'impostazione n significa ogni n processi si ha un processo di Garbage Collection completo. Si noti che Garbage Collection completo è sempre disabilitato (indipendentemente dal valore del Registro di sistema) per i volumi con Tipo di utilizzo del backup. Start-DedupJob -Type GarbageCollection -Full può essere usato se si desidera un'operazione completa di Garbage Collection in un volume di backup. Numeri interi (-1 indica disabilitato) Vedere questa domanda nelle Domande frequenti

Domande frequenti

Dopo aver modificato un'impostazione di deduplicazione dei dati, i processi sono lenti o non terminano e le prestazioni del carico di lavoro sono peggiorate. Perché? Queste impostazioni offrono un notevole controllo sul modo in cui viene eseguita la deduplicazione dei dati. Usarle in modo responsabile e monitorare le prestazioni.

Desidero eseguire un processo di deduplicazione dati al momento, ma non voglio creare una nuova pianificazione. È possibile eseguire questa operazione? Sì, tutti i processi possono essere eseguiti manualmente.

Qual è la differenza tra Garbage Collection completa e normale? Esistono due tipi di processi di Garbage Collection:

  • Processo di Garbage Collection normale: usa un algoritmo statistico per trovare grandi blocchi senza riferimenti che soddisfano determinati criteri (memoria e IOP ridotti). Un processo di Garbage Collection normale compatta un contenitore di archivio blocchi solo se una percentuale minima dei blocchi è priva di riferimento. Questo tipo di processo di Garbage Collection viene eseguito molto più velocemente e usa meno risorse rispetto a un processo di Garbage Collection completo. La pianificazione predefinita del processo di Garbage Collection normale è l'esecuzione una volta alla settimana.
  • Processo di Garbage Collection completo: è un processo molto più accurato per la ricerca di blocchi senza riferimento e la liberazione di più spazio su disco. Il processo di Garbage Collection completo compatta ogni contenitore anche se solo un singolo blocco nel contenitore non ha riferimenti. Il processo di Garbage Collection completo inoltre libera sul disco spazio che può essere stato usato se si è verificato un arresto anomalo del sistema o un guasto all'alimentazione durante un processo di ottimizzazione. I processi di Garbage Collection completi ripristinano al 100% lo spazio disponibile che può essere ripristinato in un volume deduplicato richiedendo più tempo e risorse di sistema rispetto a un processo di Garbage Collection normale. Il processo di Garbage Collection completo in genere trova e rilascia fino al 5% più di dati senza riferimenti rispetto a un processo di Garbage Collection normale. La pianificazione predefinita del processo di Garbage Collection completo viene eseguita ogni quarta volta che è pianificato un processo di Garbage Collection.

Perché disabilitare i processi di Garbage Collection completi?

  • I processi di Garbage Collection possono influire negativamente sulle copie shadow della durata del volume e sulle dimensioni del backup incrementale. I carichi di lavoro ad alta varianza o con numero elevato di operazioni di I/O possono subire un calo delle prestazioni a causa dei processi di Garbage Collection completi.
  • È possibile eseguire manualmente un processo di Garbage Collection completo da PowerShell per pulire le perdite se si è verificato un arresto anomalo del sistema.