Saltar al contenutoSaltar alla navigazione delle pagine: pagina precedente [chiave d’accesso p]/pagina successiva [chiave d’accesso n]
Si applica a SUSE Enterprise Storage 6

15 Miglioramento delle prestazioni con la cache LVM

Avviso
Avviso: tecnologia in anteprima

La cache LVM è attualmente una tecnologia in anteprima.

Si tratta di un meccanismo di memorizzazione nella cache utilizzato per il miglioramento delle prestazioni di un volume logico (LV). Per migliorare le prestazioni I/O di un volume logico più grande e lento, di solito viene utilizzato un dispositivo più piccolo e rapido. Fare riferimento alla relativa documentazione (man 7 lvmcache) per ulteriori dettagli sulla cache LVM.

In SUSE Enterprise Storage, la cache LVM può migliorare le prestazioni degli OSD. Il relativo supporto è fornito dal plug-in ceph-volume. Per informazioni dettagliate sul suo utilizzo, eseguire ceph-volume lvmcache.

15.1 Prerequisiti

Per utilizzare le funzioni della cache LVM per il miglioramento delle prestazioni di un cluster Ceph, è necessario disporre di:

  • Un cluster Ceph in esecuzione in uno stato stabile ("HEALTH_OK").

  • OSD distribuiti con BlueStore e LVM. Questa è l'opzione di default se gli OSD sono stati distribuiti con SUSE Enterprise Storage 6 o versioni successive.

  • Dischi o partizioni vuoti da utilizzare per la memorizzazione nella cache.

15.2 Aspetti da considerare

Prendere in considerazione gli aspetti seguenti prima di configurare gli OSD per l'utilizzo della cache LVM:

  • Verificare che la cache LVM sia adatta al proprio caso d'uso. Come regola generale, se sono disponibili soltanto alcune unità rapide che non sono utilizzate per gli OSD, si consiglia di utilizzarle come dispositivi WAL/DB per gli OSD. In questo caso, le operazioni WAL e DB (brevi e poco frequenti) vengono applicate all'unità rapida, mentre le operazioni sui dati vengono applicate all'unità OSD più lenta.

    Suggerimento
    Suggerimento

    Se nella distribuzione attiva la latenza è più importante delle operazioni IOPS o della velocità effettiva, è possibile utilizzare le unità rapide come cache LVM al posto delle partizioni WAL/DB.

  • Se si pianifica di utilizzare un'unità rapida come cache LVM per più OSD, tenere presente che tutte le operazioni degli OSD (inclusa la replica) passeranno attraverso il dispositivo di memorizzazione nella cache. Tutte le operazioni di lettura vengono interrogate dal dispositivo di memorizzazione nella cache e sono soddisfatte dal dispositivo più lento solo in caso di un mancato riscontro nella cache. Le operazioni di scrittura vengono sempre applicate innanzitutto al dispositivo di memorizzazione nella cache e quindi svuotate in un secondo momento nel dispositivo più lento (la modalità di memorizzazione nella cache di default è la modalità "writeback").

    Per decidere se è opportuno utilizzare una cache LVM, verificare se l'unità rapida è in grado di fungere da elemento anteriore di più OSD e fornire al contempo una quantità accettabile di IOPS. È possibile testare questa capacità misurando la quantità massima di IOPS a cui il dispositivo rapido è in grado di provvedere e dividere il risultato per il numero di OSD posteriori a tale dispositivo. Se il risultato è inferiore o vicino alla quantità massima di IOPS che l'OSD può fornire senza la cache, probabilmente non è opportuno utilizzare la cache LVM per la configurazione attuale.

  • L'interazione del dispositivo della cache LVM con gli OSD è un fattore importante. Le operazioni di scrittura vengono svuotate periodicamente dal dispositivo di memorizzazione nella cache nel dispositivo lento. Se il traffico in entrata è sostenuto ed elevato, il dispositivo di memorizzazione nella cache avrà difficoltà a restare al passo con le richieste in entrata e con il processo di svuotamento, causando un calo delle prestazioni. Nel caso di workload con un volume costantemente elevato, non utilizzare la cache LVM a meno che il dispositivo rapido non sia in grado di fornire un numero molto più elevato di IOPS a una latenza migliore rispetto al dispositivo lento. Il traffico che segue un modello burst è invece molto più adeguato per la cache LVM, poiché le consente di svuotare i dati modificati senza interferire con il traffico del client. Nel caso di workload prolungati con un traffico costantemente ridotto, è difficile sapere in anticipo se l'utilizzo della cache LVM migliorerebbe le prestazioni. Per farsi un'idea, eseguire un benchmark e un confronto tra la configurazione della cache LVM e quella del WAL/DB. Inoltre, dal momento che le operazioni di scrittura di piccole dimensioni gravano significativamente sulla partizione WAL, si suggerisce di utilizzare il dispositivo rapido per il DB e/o WAL al posto della cache LVM.

  • Se non si ha la certezza che la cache LVM sia la scelta giusta, utilizzare il dispositivo rapido come dispositivo WAL e/o DB.

15.3 Preparazione

È necessario suddividere il dispositivo rapido in più partizioni. Ogni OSD necessita di due partizioni per la relativa cache: una per i dati e una per i metadati della cache. Le dimensioni minime di entrambe le partizioni sono 2 GB. È possibile utilizzare un solo dispositivo rapido per memorizzare nella cache più OSD. Basta semplicemente suddividerlo in partizioni di conseguenza.

15.4 Configurazione della cache LVM

Per informazioni dettagliate sull'aggiunta, sulla rimozione e sulla configurazione della cache LVM, eseguire il comando ceph-volume lvmcache.

15.4.1 Aggiunta della cache LVM

Per aggiungere la cache LVM a un OSD esistente, utilizzare il comando seguente:

cephadm@osd > ceph-volume lvmcache add
 --cachemetadata METADATA-PARTITION
 --cachedata DATA-PARTITION
 --osd-id OSD-ID

L'impostazione facoltativa --data, --db o --wal consente di specificare la partizione da memorizzare nella cache. L'impostazione di default è --data.

Suggerimento
Suggerimento: specifica del volume logico (LV)

In alternativa, è possibile utilizzare l'opzione --origin al posto di --osd-id per specificare il volume logico da memorizzare nella cache:

[...]
--origin VOLUME-GROUP/LOGICAL-VOLUME

15.4.2 Rimozione della cache LVM

Per rimuovere una cache LVM esistente da un OSD, utilizzare il comando seguente:

cephadm@osd > ceph-volume lvmcache rm --osd-id OSD-ID

15.4.3 Impostazione della modalità della cache LVM

Per specificare la modalità di memorizzazione nella cache, utilizzare il comando seguente:

cephadm@osd > ceph-volume lvmcache mode --set CACHING-MODE --osd-id OSD-ID

CACHING-MODE può essere "writeback" (default) o "writethrough"

15.5 Gestione degli errori

In caso di errori del dispositivo di memorizzazione nella cache, è necessario rimuovere tutti gli OSD posteriori a tale dispositivo dal cluster (vedere la Sezione 2.6, «Rimozione di un OSD»), eliminarli definitivamente e ridistribuirli. In caso di errori dell'unità OSD, il volume logico dell'OSD e quello della relativa cache saranno attivi ma non funzionanti. Utilizzare pvremove PARTITION per eliminare definitivamente le partizioni (volumi fisici) utilizzate per le partizioni dei metadati e dei dati di cache dell'OSD. Il comando pvs consente di visualizzare un elenco di tutti i volumi fisici.

15.6 Domande frequenti

Domanda: 1. Cosa succede se un OSD viene rimosso?

Se si rimuove il volume logico dell'OSD tramite il comando lvremove, verranno rimossi anche i volumi logici della cache. Tuttavia, sarà comunque necessario richiamare pvremove nelle partizioni per assicurarsi che tutte le etichette siano state eliminate.

Domanda: 2. Cosa succede se l'OSD viene cancellato con ceph-volume zap?

Vale la stessa risposta alla domanda Cosa succede se un OSD viene rimosso?

Domanda: 3. Cosa succede se si verificano errori nell'unità di origine?

I volumi logici continuano a esistere e a risultare come disponibili in cache info. Dal momento che il dispositivo del volume logico di origine non esiste più, LVM non riuscirà a svuotare la cache e pertanto non sarà possibile rimuoverla. In questa situazione, esiste il volume logico, ma non il relativo dispositivo di supporto. È possibile correggere il problema con il comando pvs, individuare i dispositivi associati al volume logico di origine e rimuoverli con

cephadm@osd > sudo pvremove /dev/DEVICE or PARTITION

Per le partizioni della cache si applica la stessa procedura, tramite cui è possibile rimuovere il volume logico di origine e quello della cache. È inoltre possibile utilizzare

cephadm@osd > sudo dd if=/dev/zero of=/dev/DEVICE or PARTITION

per cancellarli prima di utilizzare pvremove.

Stampa pagina