Linux LVM: rallenta il sistema?

linux lvm performanceUno dei possibili dubbi relativi all’installazione di Linux LVM su un server o un proprio sistema personale è se LVM rallenti il sistema.

Ovviamente ogni software installato consuma risorse, cioè occupa RAM e utilizza la CPU e Linux LVM non è da meno. Ma quale è effettivamente l’impatto di LVM sulle prestazioni del sistema? In realtà molto meno di quello che si può immaginare.

Si potrebbe immaginare che LVM sia uno strato di “roba virtuale” posto tra il disco fisico e il filesystem. E che ogni singola operazione di I/O (Input/Output) debba passare per questa “traduzione”. In parole più semplici, si potrebbe pensare che ogni singola operazione di lettura o scrittura di un file, debba passare per un ulteriore strato software che effettua la “traduzione” prima di accedere al settore fisico del disco. E se fosse effettivamente così il rallentamento causato da LVM alla macchina Linux sarebbe notevole.

Fortunatamente le cose non stanno così, lo strato del Logical Volume Manager è stato disegnato in maniera molto intelligente e si integra perfettamente col kernel di Linux. In un normale sistema Linux, e per normale in questo caso intendo un sistema Linux senza LVM, l’accesso al disco non è diretto. Esiste uno strato software che collega le operazioni di alto livello come ad esempio “scrivere su questo file”, con i driver della periferica che va a scrivere fisicamente i blocchi del disco. Più che uno strato software si tratta in realtà di una “mappatura” (o meglio diverse mappature) dei blocchi logici (filesystem) con le posizioni fisiche del disco.

Quando si utilizza LVM non si va quindi ad aggiungere un ulteriore strato software, ma si va solamente a sostituire la mappatura “standard” con quella del Logical Volume Manager, il cui modulo è già presente nel kernel di Linux. Ovviamente la nuova mappatura è più complessa di quella standard, ma l’accesso a questa tabella è estremamente veloce. Questo sia perché la mappatura è mantenuta nella memoria RAM, sia perché le operazioni di ricerca su una tabella sono le operazioni più veloci e più semplici che un computer può fare.

Oltre a questo la mappatura di LVM è piuttosto piccola, poche decine di kilobyte, e parte di questa mappa viene mantenuta nella cache di primo livello della CPU, rendendo le operazioni di lettura/scrittura della tabella ancora più veloci. Per chi non si accontenta della teoria, ma vuole vedere in pratica la velocità di accesso al disco con LVM e senza, è disponibile un software di benchmark chiamato Bonnie++ che misura molto bene i tempi di accesso al disco.

Esistono dei casi in cui LVM rallenta le performance del sistema? La risposta è sì, quando si usano gli snapshot. Nonostante gli snapshot siano utilissimi, sia per attività tipo backup, sia per attività in cui possa essere necessario tornare alla situazione precedente (roll-back), l’utilizzo di uno snapshot rallenta il sistema. Per cui raccomando l’utilizzo degli snapshot solamente quando necessari e solamente per il tempo necessario, cancellandoli subito dopo.

Ci sono stati dei casi di rallentamento delle performance del sistema dovute all’accoppiata Linux LVM con “mdraid“, il software per creare raid, striping e mirroring dei dischi. Personalmente non solo sconsiglio di usare queste due tecnologie insieme, ma sconsiglio del tutto l’uso di “mdraid“. Nonostante in passato abbia usato spesso quest’ultima soluzione, non ne vedo l’utilità al giorno d’oggi.

Questo perché in sistemi enterprise si usano storage intelligenti in grado di fare da soli, ed in maniera molto più efficiente, il raid o il mirroring dei dischi, per cui non c’è motivo di delegare questo compito ad uno strato software. In sistemi più piccoli, è comunque possibile effettuare il raid, striping e mirroring direttamente da Logical Volume Manager, senza la necessità di un ulteriore software. Quindi no “mdraid“, Linux LVM è in grado di fare tutto quello che serve da solo.

In conclusione il Logical Volume Manager non rallenta il sistema, salvo casi particolari. Quindi, considerati tutti i vantaggi che offre, non ci sono motivi validi per non utilizzare Linux LVM su tutti i propri server e sistemi personali.

i 5 errori da evitare con Linux LVM

 

Filed in: Linux LVM | Tags:

Leave a Reply

Trackback URL | RSS Feed for This Entry