Controllo di integrità sulla configurazione del server da 40 TB


21

Ho 40 anni nel campo dell'informatica, ma non ho mai dovuto costruire un server abbastanza simile a questo, quindi questa potrebbe essere una domanda n00b.

Ho un client che offrirà file musicali ad altissima definizione per il download. In questo caso ciò significa 24 / 192Khz compressi FLAC = ~ 10 GB / album. (No, non voglio discernere l'opportunità del prodotto, solo la configurazione del server.) Il catalogo sarà di circa 3.000 album, con versioni sia ultra-alta che bassa definizione (per i loro iPod, suppongo), dando Circa 35-40 TB di dati primari.

Dato che si tratta di un prodotto molto specializzato, le dimensioni del mercato sono relativamente ridotte (pensate: persone che spendono $ 20.000 + sui loro sistemi audio), il che significa che la maggior parte delle volte il server sarà inattivo al 100% (o vicino ad esso). Ho quella che sembra una buona offerta di colocation da ColocationAmerica con una connessione da 1 Gbps e larghezza di banda a circa $ 20 / TB, quindi ora devo solo costruire una scatola per consegnare la merce.

Il caso d'uso dell'accesso ai dati è write-once / read-many, quindi sto pensando di utilizzare solo il software RAID 1 per coppie di unità. Ciò mi consentirebbe ( credo ) di riconfigurare le unità di riserva per quelle guaste al volo, potendo così iniziare la ricostruzione della seconda unità prima che alcuni sysadmin notino la luce rossa sul sistema (fanno swap out gratuiti). Sarebbe bello se potessi mettere la maggior parte delle unità in modalità sleep / spin-down se non sono necessarie, il che sarà il più delle volte per la maggior parte delle unità.

Non ho bisogno di molto in termini di potenza di calcolo - questa cosa sta semplicemente spingendo oggetti grassi lungo la pipa - e quindi la CPU / scheda madre può essere piuttosto modesta fintanto che può supportare questo numero di unità.

Attualmente sto considerando la seguente configurazione:

Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server

Quindi, sto andando nella giusta direzione o è un modo completamente nuovo di affrontare il problema?

Aggiornamento per chiarire un paio di punti:

  1. Non ho esperienza con ZFS, poiché l'ultimo prodotto Sun che possedevo era alla fine degli anni '80. Farò un po 'di RTFMing per vedere se mi sembra giusto.
  2. Non ho davvero bisogno che il filesystem faccia qualcosa di spettacolare poiché i nomi dei file saranno UUID semplici e gli oggetti saranno bilanciati tra le unità (un po 'come un grande sistema di cache). Quindi stavo davvero pensando a questi come 40 filesystem separati, e questo ha fatto sembrare RAID 1 giusto (ma ammetto l'ignoranza qui).
  3. Poiché le nostre aspettative attuali sono che è improbabile che scaricheremo più di una dozzina di file alla volta, e nella maggior parte dei casi ci sarà esattamente una persona che scarica un determinato file, non so se abbiamo bisogno di tonnellate di memoria per i buffer. Forse 8 GB è un po 'leggero, ma non credo che 128 GB farà altro che consumare energia.
  4. Ci sono 2 macchine separate non menzionate qui: il loro attuale negozio Web e un Download Master quasi completamente disaccoppiato che gestisce tutta l'autenticazione, la gestione dell'assunzione di nuovi prodotti, l'applicazione delle politiche (dopo tutto, questo è il parco giochi della RIAA), la creazione di URL effimera (e possibilmente consegnare i download a più di una di queste bestie se il traffico supera le nostre aspettative), tracciamento dell'utilizzo e generazione di report. Ciò significa che questa macchina potrebbe quasi essere costruita usando gerbilli su Quaaludes.

ZFS? Dov'è il vantaggio?

OK, mi sto frugando tra più guide ZFS, FAQ, ecc. Perdonami per sembrare stupido, ma sto davvero cercando di capire il vantaggio di usare ZFS sulla mia nozione antidiluviana di coppie N RAID1. In questa pagina delle migliori pratiche (dal 2006), suggeriscono addirittura di non fare uno ZFS a 48 dispositivi, ma 24 mirror a 2 dispositivi - suona un po 'come quello di cui stavo parlando. Altre pagine menzionano il numero di dispositivi a cui è necessario accedere per consegnare 1 (uno) blocco ZFS. Inoltre, ricorda, a 10 GB per oggetto e all'80% di utilizzo del disco, sto memorizzando un totale di 320 file per unità da 4 TB . Il mio tempo di ricostruzione con N RAID 1s, per ogni dato guasto dell'unità, è una scrittura da 4 TB da un dispositivo all'altro.In che modo ZFS lo rende migliore?

Devo ammettere di essere un dinosauro, ma il disco è economico, RAID 1 lo capisco, le mie esigenze di gestione dei file sono banali e ZFS su Linux (il mio sistema operativo preferito) è ancora un po 'giovane. Forse sono troppo conservatore, ma quando guardo un sistema di produzione, è così che mi muovo.

Ringrazio tutti voi per i vostri commenti che mi hanno fatto riflettere su questo. Non sono ancora del tutto deciso e potrei dover tornare e fare alcune altre domande su n00b.


6
Per questa quantità di spazio di archiviazione, non prenderei nemmeno in considerazione l'utilizzo di meno di 128 GB di RAM. Inoltre, considera fortemente l'utilizzo del filesystem zfs.
SEE

3
Le coppie di dischi in RAID1 sembrano ... orribili. Personalmente, specificherei un server di archiviazione / scaffale, lo riempirei di unità SAS near-line, metterei tutto in RAID 10 o 6, aggiungerei uno o due hot spare e lo chiamerei un giorno.
HopelessN00b

3
@etherfish: la RAM non è necessaria per scopi computazionali, ma è sicuramente necessaria per la cache del filesystem. Le prestazioni con soli 8 GB sarebbero orrende. Ancor più se usando ZFS, che è davvero l'unica fs che prenderei in seria considerazione a queste dimensioni. ZFS ha bisogno di molta RAM per funzionare bene. Fortunatamente la RAM è relativamente economica.
EEAA,

1
Le prestazioni sarebbero eccessivamente sufficienti per saturare 1 Gbps. Le prestazioni sarebbero compromesse solo nel filesystem se rileggessero blocchi dal disco che erano stati espulsi dalla cache del buffer e data poca o nessuna aspettativa di località temporali, il punto di rendimenti decrescenti per RAM aggiuntiva è raggiunto bene, ben prima di 128 GB. Dato il filesystem basato sull'estensione e i file di grandi dimensioni, anche i metadati del filesystem occuperanno una quantità insignificante di RAM. Si aspetta persino che l'utilizzo sia abbastanza scarso da consentire alle unità di essere spindown. '73s.
etherfish,

5
Solo una nota su come far girare i dischi - NON FARLO! (Fare clic su di me per scoprire perché) Spin-Up / Spin-Down è molto usurato dalle parti in movimento di un disco rigido tradizionale e causa guasti prematuri. I soldi risparmiati al potere andranno persi sostituendo i dischi guasti.
voretaq7,

Risposte:


12

In base alla descrizione del problema, il problema non è tanto il server quanto l'archiviazione.
Desideri un filesystem affidabile e robusto come ZFS , progettato per gestire bene grandi capacità di archiviazione e dotato di funzionalità di gestione integrate per semplificare la gestione di tale estremità del sistema.

Come accennato nei commenti, andrei con ZFS per il pool di archiviazione (probabilmente su FreeBSD perché ho più familiarità con quel sistema operativo e perché ha una lunga e comprovata esperienza di solide prestazioni con ZFS - La mia seconda scelta OS sarebbe Illumos , sempre a causa del ben collaudato supporto ZFS).


Per quanto riguarda la gestione dei file, sono d'accordo: non è necessario molto in termini di hardware per inviare i dati dalla porta di rete. Il tuo driver principale per CPU / RAM sarà le esigenze del filesystem (ZFS).
La regola generale è che ZFS ha bisogno di 1 GB di RAM, più 1 GB per ogni 10 TB di spazio su disco che gestisce (quindi per 40 TB occorrono 5 GB di RAM per ZFS) - la relazione non è abbastanza lineare (ci sono molti buoni libri / tutorial / documenti su ZFS che possono aiutarti a trovare un preventivo per il tuo ambiente).
Nota che l'aggiunta di campane e fischietti ZFS come la deduplicazione richiederà più RAM.

Ovviamente arrotondare i requisiti di RAM piuttosto che verso il basso e non essere avari: se la tua matematica dice che hai bisogno di 5 GB di RAM, non caricare il server con 8 GB - passa a 16 GB.

È quindi possibile eseguire il server direttamente sulla scatola di archiviazione (il che significa che sarà necessaria ancora più RAM su quella scatola per supportare i processi del server), oppure è possibile montare l'archiviazione remota su server "front-end" su effettivamente servire le richieste dei clienti.
(Il primo è inizialmente più economico, il secondo si adatta meglio a lungo termine.)


Oltre a questo consiglio, i migliori suggerimenti che posso darti sono già ben trattati nella nostra serie di domande sulla pianificazione della capacità - in pratica "Test di carico , Test di carico , Test di carico ".


Pensa che la tua matematica sia disattivata. Secondo la tua formula, avrebbe bisogno del 41G.
EEAA,

@EEAA In effetti, ho lasciato cadere uno zero :-) E nota che è una quantità minima di RAM. ZFS sarebbe abbastanza felice di usare 41G e assorbire tutto con la cache :-)
voretaq7,

@ voretaq7: grazie per il link alla pianificazione della capacità; è il prossimo sulla mia lista dopo aver letto di ZFS.
Peter Rowell,

Se vai con ZFS, considera l'hardware da ixsystems.com
sciurus,

1
@PeterRowell I principali vantaggi di ZFS sono che è progettato per gestire filesystem in scala multi-terabyte - È stato forgiato nel crogiolo di Sun Microsystems e costruito come un filesystem del 21 ° secolo per dimensioni di dati del 21 ° secolo (del tipo di cui stai parlando) . Una domanda sui vantaggi / svantaggi di ZFS rispetto a <qualche altro filesystem> sarebbe un buon argomento per un'altra domanda separata, ma lascerò cadere questo nugget: non c'è nulla di simile ad aspettare fsckse stai usando ZFS e la macchina si blocca. Ho avuto fsckfilesystem terabyte. È piuttosto terribile.
voretaq7,

2

Uso ZFS per un server multi-TB ed è stato solido. Ho usato OpenIndiana per iniziare e ora sono passato a FreeNAS perché fa quello che mi serve.

Consiglierei di utilizzare una scheda LSI HBA (9211-8i è una buona scheda di base) con espansori SAS (i ​​casi SuperMicro possono essere ordinati con espansori SAS integrati basati su chipset LSI). Il firmware LSI è supportato in FreeNAS e FreeBSD. Controlla le versioni appropriate (V16 è buono su FreeBSD V9.x).

Data la scrittura, una volta letta la natura del sistema, utilizzerei una topologia ZFS Z2 (evitare RAID-5 e Z1 con unità di queste dimensioni). Dato che si stanno utilizzando dischi da 4 TB, il tempo di ricostruzione (resilver) per un singolo array vDev di grandi dimensioni sarebbe lungo se il pool è pieno. Per evitare lunghi tempi di ricostruzione, disporre i vDev in gruppi di 6 o 10 per creare il pool (raccomandazioni dalla documentazione di FreeNAS). Un pool composto da tre vDev a 6 unità (presunte unità da 4 TB) avrebbe una capacità utilizzabile di ~ 48 TB e offre un buon livello di tolleranza agli errori (ricordarsi che è ancora necessario eseguire il backup di roba poiché RAID non sostituisce i backup :)).

Per velocizzare le cose per i file a cui si accede comunemente, è possibile aggiungere un paio di SSD per L2ARC (probabilmente non necessari per la propria applicazione ma sono abbastanza economici per SSD da 120 GB).

E come detto, usa molta RAM. 64 GB non sono eccessivamente costosi dato l'altro hardware nel sistema. Sfortunatamente, l'XEON più piccolo non può usare più di 32 GB. Potresti provarlo ma più RAM sarebbe meglio secondo la letteratura ZFS (io uso l'XEON che menzioni con ram da 32 GB e un array Z2 da 24 TB e funziona benissimo).

Un altro vantaggio di ZFS è che è possibile impostare istantanee periodiche. In questo modo, puoi ripristinare facilmente le versioni precedenti e le istantanee sono molto efficienti in termini di spazio. Inoltre, puoi replicare qualsiasi istantanea in un altro set di dati (locale o remoto) e questo può essere fatto su SSH per motivi di sicurezza.

Mi piace molto l'affidabilità del sistema ZFS. Mi piace anche il fatto che sia hardware INDIPENDENTE !! Qualsiasi sistema in grado di vedere le unità può importare il pool. Nessuna dipendenza del firmware ecc. Che può accadere con il raid hardware (non è un problema con le carte migliori ma sono più costose delle schede HBA e hanno bisogno di driver ecc. - È stato morso da quello in passato).

Dato che questo post è più vecchio, probabilmente hai una soluzione. Se è così, ti dispiace dirci cosa hai costruito?

Saluti,

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.