File server - Configurazione archiviazione: RAID vs LVM vs ZFS qualcos'altro ...?


35

Siamo una piccola azienda che si occupa di editing video, tra le altre cose, e ha bisogno di un posto dove conservare copie di backup di file multimediali di grandi dimensioni e semplificarne la condivisione.

Ho una scatola configurata con Ubuntu Server e 4 unità da 500 GB. Attualmente sono configurati con Samba come quattro cartelle condivise che le workstation Mac / Windows possono vedere bene, ma voglio una soluzione migliore. Ci sono due ragioni principali per questo:

  1. 500 GB non sono abbastanza grandi (alcuni progetti sono più grandi)
  2. È complicato gestire la configurazione corrente, poiché i singoli dischi rigidi hanno diverse quantità di spazio libero e dati duplicati (per il backup). Si confonde la società e che non può che peggiorare una volta che ci sono più server. ("il progetto è su sever2 in share4" ecc.)

Quindi, ho bisogno di un modo per combinare i dischi rigidi in modo tale da evitare la completa perdita di dati con il fallimento di una singola unità, e quindi gli utenti vedono solo una singola condivisione su ciascun server. Ho fatto il software linux RAID5 e ho avuto una brutta esperienza con esso, ma ci riproverei. LVM sembra ok ma sembra che nessuno lo usi. ZFS sembra interessante ma è relativamente "nuovo".

Qual è il modo più efficiente e meno rischioso di combinare l'hdd che è conveniente per i miei utenti?


Modifica: l'obiettivo qui è fondamentalmente quello di creare server che contengono un numero arbitrario di dischi rigidi ma limitano la complessità dal punto di vista dell'utente finale. (ovvero vedono una "cartella" per server) Il backup dei dati non è un problema qui, ma il modo in cui ciascuna soluzione risponde a guasti hardware è una preoccupazione seria. Questo è il motivo per cui lump RAID, LVM, ZFS e chissà cosa insieme.

La mia precedente esperienza con RAID5 era anche su un server Ubuntu e c'erano una serie di circostanze difficili e improbabili che hanno portato alla completa perdita di dati. Ho potuto evitare che ancora una volta, ma è stato lasciato con una sensazione che stavo aggiungendo un ulteriore punto inutile di guasto al sistema.

Non ho usato RAID10 ma siamo su hardware di base e la maggior parte delle unità dati per scatola è praticamente fissata a 6. Abbiamo un sacco di unità da 500 GB e 1,5 TB è piuttosto piccola. (Comunque un'opzione per almeno un server)

Non ho esperienza con LVM e ho letto rapporti contrastanti su come gestisce il guasto dell'unità. Se un'installazione LVM (senza striping) fosse in grado di gestire una singola unità guasta e perdesse solo qualsiasi file avesse una parte memorizzata su quell'unità (e memorizzava la maggior parte dei file su una singola unità), potremmo persino conviverci.

Ma finché dovrò imparare qualcosa di completamente nuovo, potrei anche andare fino a ZFS. A differenza di LVM, però, dovrei anche cambiare il mio sistema operativo (?) In modo da aumentare la distanza tra dove sono e dove voglio essere. Ho usato una versione di Solaris su uni e non mi dispiacerebbe terribilmente, però.

Dall'altro lato dello spettro IT, penso che potrei anche esplorare FreeNAS e / o Openfiler, ma ciò non risolve davvero il problema delle unità di comando.


4
ZFS è davvero considerato un'opzione stabile pronta per la produzione su Solaris / OpenSolaris (anche se alcune persone litigherebbero anche con la sua prontezza lì).
Christopher Cashell,

6
Un'altra nota riguardante LVM. . . smettere di pensarci in termini di ridondanza e guasto del disco. LVM non dovrebbe mai conoscere errori del disco, perché dovrebbe essere gestito a un livello inferiore (RAID). LVM ti dà la possibilità di gestire e partizionare i tuoi dischi in un modo più pulito e flessibile, ma non aggiunge ridondanza e gestisce un guasto del disco allo stesso modo di una partizione non LVM (esplode).
Christopher Cashell,

Risposte:


28

LVM è in realtà molto usato. Fondamentalmente, LVM si trova sopra il livello hardware (driver). Non aggiunge ridondanza o maggiore affidabilità (si affida al sistema di archiviazione sottostante per gestire l'affidabilità). Al contrario, offre molta flessibilità e funzionalità aggiuntive. LVM non dovrebbe mai vedere un disco scomparire o guastarsi, poiché l'errore del disco dovrebbe essere gestito da RAID (sia esso software o hardware). Se si perde un disco e non si riesce a continuare a funzionare (ricostruire il RAID, ecc.), Si dovrebbe andare ai backup. Cercare di recuperare dati da un array incompleto non dovrebbe mai essere necessario (in tal caso, è necessario rivalutare l'intero progetto).

Tra le cose che ottieni con LVM ci sono la capacità di espandere e ridurre facilmente le partizioni / i filesystem, la capacità di allocare dinamicamente nuove partizioni, la capacità di creare istantanee delle partizioni esistenti e montare le istantanee come partizioni di sola lettura o scrivibili. Le istantanee possono essere incredibilmente utili, in particolare per cose come i backup.

Personalmente, utilizzo LVM per ogni partizione (tranne / boot) su ogni box che costruisco, e lo faccio da 4 anni. Trattare con scatole non LVM è un grosso problema quando si desidera aggiungere o modificare il layout del disco. Se stai usando Linux, vuoi sicuramente usare LVM. [Nota: questa roba sopra su LVM è stata aggiornata per spiegare meglio di cosa si tratta e come si adatta all'equazione di archiviazione.]

Per quanto riguarda RAID, non faccio server senza raid. Con i prezzi del disco più economici di così, andrei con RAID1 o RAID10. Più veloce, più semplice e molto più robusto.

Sinceramente, a meno che tu non sia sposato con Ubuntu (che normalmente consiglierei), o se la scatola sta eseguendo altre attività, potresti voler esaminare OpenFiler . Trasforma la tua scatola in un'appliance di archiviazione con un'interfaccia web e gestirà tutto il RAID / LVM / etc per te e ti consentirà di esportare l'archiviazione come SMB, NFS, iSCSI, ecc. Piccola installazione semplice.


2
Secondo il suggerimento di OpenFiler. Sembra che non si possa mai tenere il passo con la quantità di spazio su disco necessaria e separare il server dai dati può rendere l'esperienza dell'utente finale e la gestione molto più facili e migliori. C'è una ragione per cui Netapp ha avuto così tanto successo. Suggerirei di seguire quel modello.
pcapademic,

1
Avevo esaminato brevemente freeNAS .. qualche motivo per scegliere OpenFiler invece?
privatehuff,

Quando ho iniziato a giocare con loro un paio di anni fa, OpenFiler sembrava più stabile, più ricco di funzionalità, aveva un migliore supporto per i driver ed era in fase di sviluppo più attivo. Ho deciso di provarci e ha funzionato davvero bene per me. Onestamente non guardo FreeNAS da allora. È possibile che FreeNAS abbia raggiunto OpenFiler, ma non lo so.
Christopher Cashell,

Ho usato FreeNAS per SMB e target iSCSI ed è stato geniale, non ho mai perso un colpo. D'altra parte, non ho valutato OpenFiler, quindi non ho idea di come si confronta
Mark Henderson

13

ZFS è davvero affidabile e rende la gestione della memoria molto più semplice. Come bonus: smb è integrato con ZFS in OpenSolaris e gestisce Raid molto bene. Attendi qualche giorno, scarica la versione 2009.6 rilasciata e provala su un computer di prova. Sono sicuro che adorerai ZFS.

E riguardo al tuo commento ZFS è nuovo: non molto più nuovo!


"Nuovo" significava principalmente per me, e solo che non ne ho sentito parlare e non ci gioco da anni, ecc. Ma allora devo usare OpenSolaris per usare ZFS?
privatehuff,

Ho sentito che esiste un supporto su altri unix per ZFS.
Brad Gilbert,

1
Se hai bisogno di ZFS, ne hai bisogno su OpenSolaris. Le implementazioni su Linux vengono eseguite tramite userspace e, di conseguenza, sono soggette a sovraccarico di prestazioni e criteri di cache in conflitto.
jldugger,

3
Il supporto ZFS su altri sistemi operativi è gravemente privo di funzionalità. E davvero, OpenSolaris è un sistema operativo davvero carino, ma per favore usa il vero OpenSolaris. zfs set sharemb = on backup / share1 integrazione davvero piacevole.
Wijnand,

9

La domanda centrale è: "Quanto sono importanti questi dati?"

Se la risposta è "Posso ricrearlo facilmente", vuoi RAID5, possibilmente con LVM sopra per semplicità di gestione.

Se la risposta è "Posso ricrearla ma ci vorrebbe un po 'e la gente si lamenterebbe" vuoi RAID 6 o più probabilmente RAID 1/10.

Se la risposta è "Nessuno fa alcun lavoro mentre lo ricrea e assicuro che sia un po 'perfetto", vuoi ZFS / Raid-Z

Nota che sei sempre in grado di ricrearlo. RAID non è un backup.


1
"Se la risposta è" Nessuno fa alcun lavoro mentre lo ricrea e mi assicuro che sia un po 'perfetto "vuoi ZFS / Raid-Z" Questa affermazione mostra che non sai nulla di ZFS o RAID in generale. Ogni sistema che prevede tentativi di ridondanza dei blocchi subisce un calo delle prestazioni durante la ricostruzione.
Jharley,

Stavo cercando l'importanza dei dati più delle relative caratteristiche prestazionali. Anche il degrado durante la ricostruzione è ovviamente importante, ma non quello a cui mi stavo rivolgendo.
user2108,

In che modo RAID-Z o RAIDZ2 offrono una ridondanza migliore rispetto a RAID6? Entrambi gestiscono al massimo 2 dischi non funzionanti in un array. Inoltre RAID10 gestisce un secondo disco guasto non buono come RAID6 perché è necessario il disco giusto per non funzionare, non uno dei rimanenti. Le prestazioni sono molto migliori con RAID10 che con RAID6. Nota a margine: Linux 2.6.30 è uscito e ti permette di migrare da RAID1 -> RAID5 <-> RAID6 == meraviglia!
serverhorror,

5

Per collegare molte unità nello stesso chassis, un controller RAID hardware è lo strumento migliore. Fornirà molti connettori SATA per le tue unità, ridondanza tramite RAID-5 o preferibilmente RAID-6, e potrebbe fornire anche prestazioni migliori.

Le prestazioni del software RAID sono spesso migliori del RAID hardware nei benchmark, tuttavia il servizio di file e il software RAID richiedono sia CPU che competono per i processori mentre lavorano. La mia esperienza dimostra che, a meno che non si utilizzino sistemi quad-core doppi, un RAID hardware correttamente configurato distruggerà il RAID software.

Buoni controller hardware con buon supporto linux:

  • Areca
  • 3Ware
  • la nuova serie Adaptec (le vecchie sono slooooow)
  • LSI MegaRAID

2
vado in giro con le schede 3ware, sono malvagie soprattutto con 9650se e 9690se, hanno usato entrambi i tipi di carte con un massimo di 16 unità su 9650se, nessun problema reale e un buon prodotto stabile.

4

RAID NON è come LVM. È possibile utilizzare RAID per creare partizioni di tolleranza agli errori, ma LVM viene utilizzato per semplificare il partizionamento del disco e l'edizione del filesystem. È possibile utilizzare RAID su LVM o ZFS (ZFS può funzionare sia su RAID che su LVM). Secondo me, ZFS funziona meglio di LVM, ma:

  • solo su Solaris 10/11 / OpenSOlaris, non è possibile utilizzarlo da Linux
  • ZFS è la gestione del disco e del filesystem, LVM consente di utilizzare qualsiasi filesystem di cui hai bisogno

Su Ubuntu preferisco usare RAID5 MD con LVM.


1
ZFS è disponibile su FreeBSD 7.x e Nexenta.
Jharley,

4

Dai un'occhiata a ciò che offrono Nexenta e OpenSolaris e penso che sarai molto contento di non poter ottenere nulla. Si dice che le prossime versioni di OpenFiler useranno anche la porta ZFS di FreeBSD (anche se sono abbastanza indietro dal punto di vista delle funzionalità).

Detto questo, cerco di evitare di fare RAID5, RAID6 o RAID50 nel software e preferisco usare i controller hardware per scaricare tutto il lavoro XOR. RAID1 e RAID10 nel software Linux funzionano abbastanza bene, e da lì ho messo LVM sopra di loro per consentire una maggiore flessibilità in ciò che è fatto con i blocchi che ho dopo la ridondanza in atto. RAID + LVM + XFS è la mia configurazione Linux preferita, ma lo prenderei ZFS ogni giorno.


Tradizionalmente il RAID hardware non ha funzionato altrettanto come il RAID software - in genere ha un vantaggio solo quando ci sono più scritture che il controller dedicato può duplicare (cioè non deve passare sul bus PCI), vale a dire RAID 1. Ci sono altri problemi con RAID hardware, ad esempio la qualità e l'incapacità del firmware di essere (facilmente) aggiornate. Infine, aggiunge un altro punto di errore. Per questi motivi, tendo a evitare l'hardware RAID. Detto questo, per questi stessi motivi, non ho giocato con le nuove opzioni RAID hardware! :)
Brian M. Hunt,

2

RAID vs LVM non è davvero un buon confronto, ma svolgono ruoli separati e vengono spesso usati insieme. Il RAID viene utilizzato per la ridondanza dell'unità, LVM può essere utilizzato per suddividere il dispositivo RAID in volumi logici, viene utilizzato per un ridimensionamento semplice e per scattare istantanee.


2

Ho eseguito il file server per un'azienda / situazione molto simile. Fondamentalmente un reparto grafico per 3 persone con 30 TB di spazio di archiviazione e il budget ridotto di una piccola azienda. I nostri progetti tipici hanno funzionato da 0,5 TB a 6 TB. E il file server serviva una considerevole farm di rendering che poteva davvero martellare su di essa.

Nella mia configurazione ho eseguito un server 3U che esegue Linux con array RAID6 hardware esterno collegati ad esso. Ho gestito i volumi fisici e logici con LVM ed eseguito il file system XFS. Quello che vorrei fare è creare un volume logico per ciascun progetto e quindi espanderlo man mano che il progetto cresce. Al termine del progetto, ho potuto archiviare il lavoro su nastro e eliminare il volume logico. Ciò restituirebbe quello spazio al gruppo di volumi in cui verrebbe riassegnato ai progetti successivi.

Questo è stato un modo molto pulito di utilizzare la nostra memoria ma ci sono due svantaggi di questo approccio. Si finisce per dover gestire in modo microscopico le dimensioni dei volumi logici cercando di bilanciare la quantità di spazio allocata a un volume logico in modo da avere abbastanza spazio per fare il proprio lavoro ma non allocarlo eccessivamente e finire per sprecare spazio. La nostra farm di rendering è stata in grado di generare molti TB di dati al giorno e se non prestassi molta attenzione a questo, rimarrebbe a corto di spazio in fretta. Alla fine ho installato alcuni script che monitoravano le tendenze dello spazio disponibile sui volumi logici e li aumentavano automaticamente. Anche con quello in atto con circa 80 volumi logici, c'era molto spazio inutilizzato legato in tutti i volumi logici. Ho già accennato al secondo problema ... LVM non lo fa Esegui il thin provisioning e XFS ti consente solo di far crescere un file system. Quindi un'allocazione eccessiva di spazio a un volume logico può aggiungere molto spazio inutilizzabile.

Tutto questo è stato installato circa 5 anni fa e se lo stessi configurando oggi userei OpenSolaris e ZFS. Il motivo principale è che l'approccio di archiviazione in pool ZFS implica una minore gestione del volume. È comunque possibile separare ciascun progetto nel proprio file system ma senza dover gestire in modo microscopico le dimensioni dei singoli volumi. ZFS ha alcune altre caratteristiche molto carine che la rendono una scelta migliore, ma ci sono altre domande su serverfault che vanno in questo.

A mio avviso, ZFS è semplicemente la migliore soluzione gratuita disponibile oggi.


2

Alcune cose da considerare se rimani con Linux:

  • Pensa anche al filesystem. Il tuo esempio 4x 500 GB riguarda la capacità più grande che consiglierei con buona coscienza per ext3. Non consiglio di creare filesystem ext3 molto più grandi perché ad esempio il tempo fsck può essere enorme. Crea diversi filesystem più piccoli invece di un grande.
  • Come hai menzionato i dati video: ext3 gestisce file di grandi dimensioni in modo inefficiente perché dovrà creare blocchi di metadati indiretti, doppi indiretti e tripli indiretti per archiviare i dati di file di grandi dimensioni e pagherai il prezzo. Oggi ext4 supporta le estensioni e le gestisce molto meglio. Tuttavia, è piuttosto nuovo e ad esempio Red Hat Enterprise Linux 5 non lo supporta ancora. (Alcune distribuzioni Enterprise supporteranno alternative come XFS).
  • Se c'è un danneggiamento dei dati su qualsiasi blocco di dati, avrai difficoltà a notarlo con i filesystem Linux. ZFS invece controlla tutti i metadati e i dati e verifica anche il checksum ogni volta che i dati vengono letti dal disco. (C'è anche uno scrubbing di fondo)
  • Il tempo di ricostruzione del RAID su Linux è proporzionale alla dimensione del disco perché il livello RAID non conosce il contenuto del filesystem (livello). Il tempo di ricostruzione RAID-Z di ZFS dipende dalla quantità di dati effettivi sul disco guasto perché solo i blocchi utilizzati verranno copiati / ricostruiti su un disco sostitutivo.
  • Vuoi creare un'istantanea del tuo filesystem? Le istantanee LVM non si confrontano nemmeno con le istantanee istantanee di ZFS. Quest'ultimo può anche essere facilmente esposto agli utenti finali, ad esempio per ripristini facili.
  • Utilizzare RAID6 (RAID-Z2) e non solo RAID5 (RAID-Z) con dischi di grandi dimensioni (> 500 GB) perché è probabile che un altro disco si guasta durante la ricostruzione.

Punti eccellenti che non avevo considerato su ext3. Ext4 è ancora un po 'nuovo per il mio sangue, ma XFS dovrebbe essere supportato dal server Ubuntu che sto usando, lo consiglieresti per questo?
privatehuff,

1

Utilizzare l'utilità "mdadm" per creare un array RAID-5 dalle unità.

Ciò fornisce la ridondanza necessaria, quindi se un'unità si spegne è possibile sostituirla senza perdita di dati e offre anche l'utilizzo di 3 su 4 unità.

Consiglio anche di creare un volume LVM sopra il RAID, in modo da poter dividere lo spazio secondo necessità.


1

Potresti dare un'occhiata ad AFS. Ciò fornirà una certa misura sia della disponibilità (è possibile accedere a questi file sia all'interno che all'esterno della rete) e della ridondanza (i file possono essere replicati). Per un flusso di lavoro in cui apri un file, lavoraci su per qualche tempo e poi salvalo, questo sarebbe meglio (dal punto di vista della rete) di NFS, almeno NFS più vecchio.


1

Come dice l'altra risposta, LVM è ampiamente utilizzato e può combinare diversi dischi in un unico "gruppo di volumi" che assomiglia a un enorme dispositivo a blocchi. Vale la pena ricordare, tuttavia, che ciò aumenta la probabilità di errore: basta un disco per fallire in un gruppo di volumi per eliminare l'intero file system e se si hanno quattro dischi uniti insieme, questo è quattro volte più probabile. Meglio usare LVM sopra un RAID1 o simile per mitigarlo. Il RAID software Linux è abbastanza adeguato per questo, sebbene il RAID hardware possa essere più conveniente.


La tua affermazione "basta un disco per fallire in un gruppo di volumi per eliminare l'intero filesystem" dipende fortemente da come si creano e si usano i volumi logici all'interno del gruppo di volumi. Se crei un solo volume logico riempiendo l'intero gruppo di volumi, ciò che dici è vero. È del tutto possibile e, a seconda dei requisiti del filesystem, anche raccomandato, creare più volumi logici in un singolo gruppo di volumi.
pag

1

Scusate questo sarebbe un commento ma non ho il rappresentante ...

In che modo RAID-Z o RAIDZ2 offrono una ridondanza migliore rispetto a RAID6?

ZFS ha checksum ovunque

Sulla domanda originale. Qualunque siano i dati, utilizzerei 2 parità attive per 10 dischi. Vorrei utilizzare una scheda RAID di buona qualità, quelli 3ware sono eccellenti. Personalmente utilizzo hardware RAID con batteria di riserva. LVM solo per poter migrare facilmente i dati alla fine della vita dell'hardware. XFS come file system.


0

Perché non usi un disco o una scheda SSD per avere il server di sistema per l'avvio e i 500 GB come unica memoria. Utilizzare un disco da 500 GB e quando diventa pieno scambiarlo manualmente. Puoi eseguire il backup in un secondo momento con calma su un altro computer. Perché mentre il disco rigido gira (gira) può essere danneggiato. Ad ogni modo, se si collegano tutti i dischi contemporaneamente, tutti girano e possono subire danni se lo si utilizza o meno. La probabilità di errore aumenta quando sono attivi più dischi. Usane uno alla volta e scambialo quando sono pieni o in un periodo di tempo anticipando un guasto (usa anche la capacità SMART per sbarazzartene). Utilizzare un disco di trasporto o utilizzare un adattatore disco SCSI / SATA esterno in modo da non dover smontare il server ogni volta che si scambia un disco. Questa è la forma più sicura e affidabile. L'uso del RAID è più costoso e sprechi solo alcuni dischi (perché lo lasci acceso rischiando di danneggiarsi solo per averlo lasciato acceso? Stupido o no?). Se vuoi più dati in uscita, allora usare una configurazione RAID per quello che credo sia una buona scelta ma non fidarti mai di una configurazione del computer. Il backup deve essere eseguito sempre manualmente con una persona (l'amministratore della rete o del server). Questa è una delle opere di un amministratore. È possibile utilizzare nastri, DVD, BlueRay o altri dischi per eseguire il backup. Ma avrai sempre bisogno di un supporto di archiviazione affidabile e un disco in esecuzione non è uno. Un disco spento e ben salvato (in un luogo fresco e privo di umidità) è un supporto di archiviazione affidabile. Se vuoi più dati in uscita, allora usare una configurazione RAID per quello che credo sia una buona scelta ma non fidarti mai di una configurazione del computer. Il backup deve essere eseguito sempre manualmente con una persona (l'amministratore della rete o del server). Questa è una delle opere di un amministratore. È possibile utilizzare nastri, DVD, BlueRay o altri dischi per eseguire il backup. Ma avrai sempre bisogno di un supporto di archiviazione affidabile e un disco in esecuzione non è uno. Un disco spento e ben salvato (in un luogo fresco e privo di umidità) è un supporto di archiviazione affidabile. Se vuoi più dati in uscita, allora usare una configurazione RAID per quello che credo sia una buona scelta ma non fidarti mai di una configurazione del computer. Il backup deve essere eseguito sempre manualmente con una persona (l'amministratore della rete o del server). Questa è una delle opere di un amministratore. È possibile utilizzare nastri, DVD, BlueRay o altri dischi per eseguire il backup. Ma avrai sempre bisogno di un supporto di archiviazione affidabile e un disco in esecuzione non è uno. Un disco spento e ben salvato (in un luogo fresco e privo di umidità) è un supporto di archiviazione affidabile. Ma avrai sempre bisogno di un supporto di archiviazione affidabile e un disco in esecuzione non è uno. Un disco spento e ben salvato (in un luogo fresco e privo di umidità) è un supporto di archiviazione affidabile. Ma avrai sempre bisogno di un supporto di archiviazione affidabile e un disco in esecuzione non è uno. Un disco spento e ben salvato (in un luogo fresco e privo di umidità) è un supporto di archiviazione affidabile.

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.