Marvin Pascale

[B.Log]

23 Aprile 2020

Deduplica con Opendedup

In questi ultimi anni si sente spesso parlare con entusiasmo di deduplica e con mia somma gioia posso dire che anche in questo ambito la risposta opensource non ha nulla da invidiare ai nomi più blasonati.

Cosa è la deduplica?

La deduplica dei dati è una forma particolare di compressione che elimina i dati doppi o ripetuti. Questa tecnica si utilizza per ottimizzazioni in abito storage ma si può anche applicare in contesti di rete. Nel processo di deduplica un insieme di byte ‘unici’ vengono scritti su disco durante il processo di analisi. Col procedere della stessa, tutti i blocchi di byte vengono confrontati con quelli già memorizzati e nel caso siano ridondanti, non vengono memorizzati nuovamente e al loro posto viene messo un puntatore al dato.

Esistono fondamentalmente due tecniche di deduplica: post-process e in-line.

Deduplica post-process

Con la deduplica post-process, i dati vengono scritti su disco senza nessuna verifica. La deduplica ha luogo in un secondo momento, il che consente di non avere rallentamenti nello storage e non richiede particolari capacità di calcolo.

Per contro vengono sistematicamente memorizzati tutti i dati, buona parte dei quali verranno cancellati dalla deduplica, sprecando quindi, in prima battuta spazio disco e sovraccaricando lo stesso con scritture inutili.

Deduplica in-line

Con la deduplica in-line invece gli algoritmi di deduplica operano in tempo reale. Ogni qual volta transiteranno nuovi dati questi verranno prima confrontati con i blocchi conosciuti e nel caso fossero già presenti questi non verranno scritti ma verrà assegnato un puntamento.

Il vantaggio principale della deduplica in-line è che richiede molto meno spazio e meno scritture su disco.

Per contro questo sistema richiede capacità di calcolo non indifferenti, perché se il sistema di deduplica è lento, anche lo storage risulta lento.

Opendedup

Opendedup è un software opensource rilasciato sotto licenza GPLv2. Questo software vuole essere non solo un file system ma anche un gateway per gli storage offerti dai provider cloud.

Vediamo un po più nel dettaglio i vantaggi di SDFS.

File System

SDFS è un file system conforme POSIX (Linux e Windows) ed esegue la deduplica in-line in locale o in cloud. In termini pratici significa che funziona nativamente con i sistemi operativi e applicazioni. Tutto ciò che devi fare è copiare i dati e goderteli che sia in locale o in cloud. Gli storage in cloud saranno visti come locali semplificando l’utilizzo.

Su Windows viene montato come unità (es: D:\) e su Linux si comporta come un file system locale assoggettato alle politiche di mascheramento. 

Non mancano le moderne funzioni di snapshot a livello di file e replica.

Poiché SDFS memorizza solo blocchi univoci, con la replica, vengono replicati solo i blocchi univoci non condivisi tra i due volumi SDFS. Ciò rende la replica più veloce e ottimizzata.

Cloud Storage

SDFS offre compatibilità con tutti i grandi cloud provider (AWS, Azure, GCP) e la maggior parte dei backend compatibili con S3. La deduplica e la compressione in generale sono fondamentali quando si utilizza l’archiviazione cloud poiché riducono la quantità di dati in transito da e verso il cloud. Inoltre, riduce i costi di archiviazione. E’ inoltre possibile sfruttare le dinamiche di archiviazione ad oggetti.

I vantaggi di SDFS plus sono: costi ridotti, scalabilità, disaster recovery, accesso rapido ai dati più recenti.

Con la deduplica i dati inviati e poi memorizzati sono ridotti rispetto ad un utilizzo senza deduplica ed è possibile collegare più volumi SDFS allo lo stesso bucket. L’archiviazione in cloud è altamente resiliente e SDFS la sfrutta per garantire che i dati possano essere recuperati istantaneamente su qualsiasi volume SDFS condivida lo stesso bucket inoltre ogni singolo volume utilizza una cache su disco. La cache opera con un sistema di riciclo che elimina i dati più vecchi all’arrivo di quelli nuovi.

Scalabilità

SDFS funziona su dischi standard e non necessita di alcun hardware speciale.

Si ridimensiona con semplicità grazie a un’implementazione di tabelle hash personalizzata e ottimizzata per la deduplica. La tabella hash cresce su segmenti lineari limitando la frammentazione. I segmenti di accesso più vecchi e meno frequenti vengono mantenuti su disco mentre i segmenti di accesso più recenti o più necessari vengono mantenuti in memoria rendendo la deduplica veloce anche su larga scala. 

Sicurezza

Durante l’inizializzazione SDFS crea una chiave univoca AES a 256 bit e utilizza la codifica AES-CBC a 256 bit sui dati (locale e cloud) prima che vengano salvati.

Quando si lavora in locale per aumentare le prestazioni i metadati vengono salvati in chiaro, diversamente da quanto accade per il salvataggio in cloud. In questo ultimo caso i metadati sono crittografati prima di essere inviati. Questo processo è integrato, trasparente e non utilizza i  metodi di crittografia proprietari offerti dai provider.

Mettiamo le mani in pasta

Musica: The Entertainer by Kevin MacLeod

Link: https://incompetech.filmmusic.io/song/5765-the-entertainer

License: http://creativecommons.org/licenses/by/4.0/


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: