Quale filesystem per LVM di dischi di grandi dimensioni (8 TB)?


21

Ho un server Linux con molti dischi da 2 TB, tutti attualmente in un LVM con circa 10 TB di spazio. Uso tutto questo spazio su una partizione ext4 e attualmente ho circa 8,8 TB di dati.

Il problema è che spesso ricevo errori sui miei dischi e anche se li sostituisco (vale a dire copio il vecchio disco su uno nuovo con dd, quindi inserisco quello nuovo sul server) non appena compaiono errori, Ricevo spesso circa 100 MB di dati corrotti su di esso. Questo fa impazzire e2fsck ogni volta, e spesso ci vuole una settimana per riportare il filesystem ext4 in uno stato sano.

Quindi la domanda è: cosa mi consiglieresti di usare come filesystem sul mio LVM? O cosa mi consiglieresti di fare invece (non ho davvero bisogno di LVM)?

Profilo del mio filesystem:

  • molte cartelle di dimensioni totali diverse (alcune per un totale di 2 TB, altre per un totale di 100 MB)
  • quasi 200.000 file con dimensioni diverse (3/4 dei quali circa 10 MB, 1/4 tra 100 MB e 4 GB; al momento non riesco a ottenere più statistiche sui file poiché la mia partizione ext4 è completamente distrutta per alcuni giorni)
  • molte letture ma poche scritture
  • e ho bisogno di tolleranza d'errore (ho smesso di usare mdadm RAID perché non mi piace avere UN errore su tutto il disco, e qualche volta ho dei dischi guasti, che sostituisco appena posso, ma ciò significa che posso ottenere dati corrotti su il mio filesystem)

Il problema principale sono i dischi guasti; Posso perdere alcuni file, ma non posso permettermi di perdere tutto allo stesso tempo.

Se continuo a usare ext4, ho sentito che dovrei provare a creare file system più piccoli e "unirli" in qualche modo, ma non so come.

Ho sentito che btrfs sarebbe carino, ma non riesco a trovare alcun indizio su come riesca a perdere una parte di un disco (o un intero disco), quando i dati NON vengono replicati ( mkfs.btrfs -d single?).

Qualsiasi consiglio sulla domanda sarà il benvenuto, grazie in anticipo!


1
Esattamente quali errori del disco si ottengono. Questo dovrebbe dare un indizio
Soham Chakraborty,

Settori danneggiati, spesso sono solo uno o due settori danneggiati sull'intero disco ...
alphatiger

Ciò significa che il tuo disco sta andando male. Quasi nulla a che fare con il filesystem. Se il disco è danneggiato, qualunque cosa tu usi, sarà utile. Come altri hanno già detto, scegli dischi RAID e / o acquista dischi aziendali. Inoltre, cerca anche i controller di qualità.
Soham Chakraborty,

Sì, lo so, è per questo che sostituisco i dischi che stanno andando male. Scusa se la mia domanda non era chiara. Tuttavia, ho pensato che alcuni filesystem si sarebbero comportati meglio con dati corrotti ...
alphatiger

Dovresti davvero sostituire i pezzi difettosi del tuo hardware. È come guardare un manichino da crash test dopo che un'auto è stata guidata contro il muro 200 km / h. "Oh guarda! La sua gamba sinistra è quasi OK! Il test ha avuto successo!" ... nessun filesystem può aiutarti se l'hardware sottostante si rompe. XFS ha fsck più veloce di ext *, e dopo che passa abbastanza tempo e il filesystem matura un po 'di più, forse anche btrfs funzionerebbe. Poi c'è ZFS ma su Linux il suo stato è un po 'triste.
Janne Pikkarainen,

Risposte:


22

Non è un problema di file system, sono i limiti fisici dei dischi. Ecco alcuni dati:

Le unità SATA sono comunemente specificate con un tasso di errore di lettura (URE) irrecuperabile di 10 ^ 14. Ciò significa che 1 byte per 12 TB verrà irrimediabilmente perso anche se i dischi funzionano correttamente .

Ciò significa che senza RAID perderai dati anche se nessuna unità si guasta : RAID è l'unica opzione.

Se si sceglie RAID5 (capacità totale n-1, dove n = numero di dischi) non è ancora sufficiente. Con RAID5 da 10 TB composto da HDD da 6 x 2 TB avrai una probabilità del 20% di un guasto di un'unità all'anno e con un singolo disco guasto, a causa di URE avrai il 50% di possibilità di ricostruire correttamente RAID5 e recuperare il 100% dei tuoi dati .

Fondamentalmente con l'elevata capacità dei dischi e l'REA relativamente elevato, è necessario RAID6 per essere sicuri anche in caso di guasto del disco singolo.

Leggi questo: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162


3
Attendere, URE significa irreversibile Leggi errore, ma questo non significa che il disco in realtà HA l'errore. La lettura successiva potrebbe (e probabilmente restituirà) il bit corretto. Il sistema operativo probabilmente rileggerà il settore e otterrà i dati corretti. Hai anche dimenticato di parlare di SMART: prima che un settore sia permanentemente danneggiato, SMART proverà a leggere / scrivere dati da / su di esso. Se rileva troppi guasti, SMART sposta semplicemente il contenuto del settore in un altro posto e contrassegna il settore come MALE e nessuno sarà in grado di riscriverlo.
Avio,

Quindi, stai semplicemente suggerendo di acquistare tonnellate di dischi senza chiedere PERCHÉ i suoi dischi sono così difettosi. Potrebbe essere un problema di calore, potrebbe essere un problema con un controller SATA difettoso, potrebbe essere un problema di connettori SATA difettosi, ecc. Ecc. Ecc.
Avio

@Avio Quello che sto dicendo è che con 10 TB di dati avrai errori di lettura dovuti a limitazioni del disco rigido, anche se tutti i dischi, controller SATA, connettori SATA ecc. Sono in perfette condizioni e funzionano secondo le specifiche. Sto anche dicendo che anche se decidi di usare RAID per mitigare che dovresti andare con RAID6 perché la capacità del disco + URE rendono anche RAID5 non abbastanza affidabile. Anche il guasto di una singola unità su RAID5 ha un'alta probabilità di perdita dei dati (50% FFS!).
c2h5oh,

1
@Avio U in URE sta per irrecuperabile come in via per sempre.
c2h5oh,

Può essere il problema dei file system, se si utilizza una copia sul file system di scrittura come btrfs o xfs è molto probabile che si recuperi una versione precedente del file, perdendo quindi solo l'ultima modifica al file. (se mai fosse cambiato)
Jens Timmerman,

13

Fatti un favore e usa un RAID per i tuoi dischi, potrebbe anche essere un RAID software con mdadm. Pensa anche al motivo per cui "ricevi spesso errori sui tuoi dischi" - questo non è normale tranne quando si utilizzano unità SATA di classe desktop a basso costo invece di dischi di livello RAID.

Dopodiché, il filesystem non è più così importante: ext4, xfs sono entrambe ottime scelte.


1
Sono d'accordo che dovrei;) ma non uso RAID per molte ragioni. Il principale è il prezzo, in quanto sono 2-3 volte più costosi e non posso proprio permettermelo. Il secondo motivo è che l'ultima volta che ho usato RAID 5, ho avuto la fortuna di ottenere due dischi danneggiati prima di poterne collegare uno nuovo e risincronizzarlo (al momento non avevo dischi di riserva, dovevo aspettare un nuovo; sono d'accordo che con i dischi di classe RAID avrei avuto questo problema). Il terzo motivo è che, man mano che i dati che devo archiviare stanno crescendo, aggiungo progressivamente nuovi dischi di dimensioni maggiori, cosa che non posso fare con una configurazione RAID.
alphatiger,

Quindi sto cercando di vedere se esiste un filesystem che qualcuno mi consiglierebbe di usare in una configurazione in cui non posso fare affidamento su dati non corrotti. Comunque, grazie per la tua risposta!
alphatiger

4
Quindi stai dicendo che i tuoi dati non valgono la spesa aggiuntiva? Se non puoi permetterti di avere almeno due copie dei tuoi dati, dovresti considerarli persi. Hai ragione sul fatto che RAID5 probabilmente non è una buona scelta, probabilmente dovresti guardare RAID6 o RAID10.
Zoredache,

@alphatiger: i dischi sono troppo costosi se il tempo e i dati sono troppo economici.
Ripristina Monica - M. Schröder,

8

Ho avuto buona fortuna con ZFS, puoi controllare per vedere se è disponibile su qualsiasi distribuzione tu usi. Un avvertimento equo, probabilmente significherà ricostruire l'intero sistema, ma offre prestazioni e tolleranza agli errori davvero buone.


Attualmente uso Debian GNU / Linux, sembra che ci sia un'implementazione di FUSE, ma nessun pacchetto (a causa di problemi di licenza). Probabilmente ci proverò (dopo aver compilato da fonti, poiché usando FUSE non è molto bello per l'output elevato), non mi preoccupo di dover ricostruire il mio intero filesystem. Grazie !
alphatiger,

+1 per ZFS. Il RAID tradizionale corromperà silenziosamente i dati perché non è abbastanza intelligente da sapere quando i blocchi sono errati o come ripararli. ZFS d'altra parte rileverà i blocchi corrotti (tramite checksum) e li riparerà da copie mirror conosciute. L'esecuzione di ZFS in FUSE, sebbene non ideale, funzionerà abbastanza bene per molti carichi di lavoro. Detto questo, è necessario caricare test dell'applicazione prima di utilizzarlo in un ambiente di produzione.
bahamat,

1
Un altro +1 per ZFS. Praticamente tutti i server qui eseguono Linux e ne sono un grande fan, ma ZFS si è dimostrato così utile per me negli ultimi 3+ anni che ho effettivamente attraversato lo sforzo di apprendere e configurare FreeBSD sul grande macchina di archiviazione per poter utilizzare ZFS senza problemi di licenza o prestazioni.
ssc,

Lo sto eseguendo sotto Solaris sulla mia vecchia workstation Sun e le prestazioni sono a dir poco sorprendenti, considerando l'hardware (Opteron single-core a 2,2 GHz con 3G di memoria e una coppia di unità SATA da 250 G).
TMN,

8

Aggiungo progressivamente nuovi dischi di dimensioni maggiori

Dato che sei interessante nell'uso di LVM e vuoi gestire più unità, la risposta semplice sarebbe usare semplicemente la funzione mirror che fa parte di LVM. Aggiungi semplicemente tutti i volumi fisici nel tuo LVM. Quando si crea un volume logico, passare l' --mirrorsopzione. Questo duplica i tuoi dati.

Un'altra opzione potrebbe essere quella di configurare solo diverse coppie RAID1. Quindi aggiungi tutti i volumi RAID1 come PV al tuo VG. Quindi ogni volta che vuoi espandere il tuo spazio di archiviazione, acquista solo un paio di dischi.


7

Guarda i miei commenti sulla risposta di SvenW per capire perché non voglio davvero RAID. (In effetti, ho già configurato più RAID software in un'azienda che se lo poteva permettere ...) Comunque grazie!
alphatiger,

Ho sempre usato unità di prodotto per RAID, non ho mai usato quelle classificate per l'uso RAID e non ho mai avuto problemi con questo, purché si scelga un RAID che abbia abbastanza ridondanza al suo interno (RAID 6 o RAID 60). Utilizzando un RAID 6 è necessario un numero pari. Puoi far crescere i RAID abbastanza facilmente sostituendo i membri esistenti con dischi più grandi e poi crescendo nello spazio dei dischi più recenti.
slm,

4

Se sei davvero preoccupato per il danneggiamento dei dati, consiglierei un filesystem con checksum come zfs e btrfs - sebbene si noti che btrfs è ancora considerato in fase di sviluppo e non pronto per la produzione.

Non vi è alcuna garanzia che i dati letti (anche correttamente letti) da un disco siano corretti. I blocchi hanno checksum, ma sono semplici checksum che non sempre rilevano errori. I filesystem più recenti come ZFS collegano checksum più capaci ai file e possono (e come si dice) catturare e riparare errori di dati non rilevati dal disco rigido o dal controller RAID.


1

Come dice @ c2h5oh , l' irrigidibile è fondamentale: significa che il disco ha già provato e non è riuscito a rileggere il settore.

Nella mia esperienza, una volta che un disco inizia a produrre errori di lettura irrecuperabili (URE), alcuni dati vengono persi per sempre e la tua unica speranza è di eseguire immediatamente il backup di tutti i dati utilizzando GNU ddrescue , che può riprovare i settori in errore e saltare quelli irrecuperabili.

Supponendo che tu abbia dei backup, potrebbero non aver funzionato a causa degli URE e avranno sicuramente dei file corrotti, quindi dovrai mettere insieme un set completo di dati da vari backup dello stesso filesystem.

Le altre risposte che raccomandano ZFS meritano di essere lette, in quanto il suo scrubbing continuo dei dati e le funzionalità RAID aiuteranno a mantenere i tuoi dati più sicuri in futuro, anche se non sostituiscono i backup, che proteggono anche dagli errori dell'utente e dell'amministratore.

Userei LVM solo se non avessi bisogno di istantanee - non si integra così bene con RAID, non include scrubbing dei dati / checksum dei dati e hai ancora bisogno di backup, quindi qualcosa come ZFS è probabilmente un'opzione migliore. Vedi questa risposta su problemi e rischi LVM per ulteriori informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.