Qual è il modo migliore per spiegare i problemi di archiviazione a sviluppatori e altri utenti


40

Quando la memoria del server si riduce, gli sviluppatori iniziano a lamentarsi, "Posso ottenere un'unità da 1 TB a Walmart per 100 dollari, qual è il problema".

Come possono essere spiegate agli sviluppatori le complessità dell'archiviazione in modo che possano capire perché un'unità da 1 TB di Walmart non funzionerà.

ps sono uno sviluppatore e voglio sapere anche io:)


5
Oppure "Posso ottenere spazio di archiviazione per $ 0,15 per gigabyte da Amazon S3, qual è il problema?"
Chris Upchurch,

@Chris Upchurch: Ma il problema è che potresti dover scrivere un rapporto sull'opportunità di scegliere Amazon S3, Google App Engine o ... Accidenti, potrebbe essere un problema. ;)
dance2die,

6
Potrei capovolgerti. Il mio lavoro sta generando entrate e ho bisogno di un po 'più di spazio per svolgere il mio lavoro in modo efficace. È un investimento solido, quindi perché non puoi semplicemente acquistare più spazio di archiviazione?

1
@Chris: Naturalmente dipende sempre dalla situazione attuale, ma ho scoperto attraverso l'esperienza (costosa) che l'utilizzo di Amazon S3 per l'archiviazione di base non è esattamente conveniente. S3 è molto meglio usato per gestire i picchi di traffico in modo da non dover investire in un sistema in grado di gestire rari casi peggiori - ma se inizi a usarlo per le operazioni quotidiane potresti scoprire che stai molto meglio pagare il costo del capitale ...
Mihai Limbăşan,

Risposte:


53

Alcune verità domestiche sullo storage o perché lo storage aziendale è così costoso?

I dischi rigidi di consumo offrono grandi volumi di spazio in modo che anche l'utente più esigente di * tosse * streaming media * tosse * possa acquistare abbastanza per archiviare una raccolta di diversi terabyte. In effetti, la capacità del disco è cresciuta più velocemente di quanto il transistor conta sul silicio ormai da un paio di decenni.

Lo storage "Enterprise" è un problema un po 'più complesso in quanto i dati hanno requisiti di prestazioni e integrità che dettano un approccio un po' più pesante. I dati devono avere una certa garanzia di disponibilità in caso di guasti hardware e potrebbe essere necessario condividerli con un gran numero di utenti, il che genererà molte più richieste di lettura / scrittura rispetto a un singolo utente.

Le soluzioni tecniche a questo problema possono essere molte, molte volte più costose per gigabyte rispetto alle soluzioni di archiviazione dei consumatori. Richiedono anche manutenzione fisica; i backup devono essere eseguiti e spesso archiviati fuori sede in modo che un incendio non distrugga i dati. Questo processo aggiunge costi continui.

Prestazione

Sul tuo consumatore da 1 TB o anche sul drive near-line aziendale hai solo una testa. Il disco ruota a 7200 RPM, o 120 giri al secondo. Ciò significa che è possibile ottenere al massimo 120 operazioni I / O ad accesso casuale al secondo in teoria * e un po 'meno in pratica. Pertanto, la copia di un file di grandi dimensioni su un singolo volume da 1 TB è relativamente lenta.

Su un array di dischi con 14x 72 GB di dischi, hai 14 teste su dischi che vanno (diciamo) a 15.000 giri / min o circa 250 giri al secondo. Ciò fornisce un massimo teorico di 3.500 operazioni I / O casuali al secondo * (di nuovo, un po 'meno nella pratica). A parità di altre condizioni, una copia del file sarà molte, molte volte più veloce.

*È possibile ottenere più di un accesso casuale per giro del disco se la geometria delle letture permettesse all'unità di spostare le testine e leggere un settore che è risultato disponibile all'interno di un giro del disco. Se gli accessi al disco fossero ampiamente dispersi, probabilmente ne avrai in media meno di uno. Laddove un array di dischi formattato in un layout a strisce (vedi sotto) otterrai un massimo di una lettura di striping per giro del disco nella maggior parte dei casi e (a seconda del controller RAID) probabilmente meno di uno in media.

L'unità da 1 TB da 7200 RPM sarà probabilmente ragionevolmente veloce sull'I / O sequenziale. Gli array di dischi formattati in uno schema a strisce (RAID-0, RAID-5, RAID-10 ecc.) In genere possono leggere al massimo uno strip per giro del disco. Con una striscia da 64 KB possiamo leggere 64 KB x 250 = circa 16 MB di dati al secondo da un disco da 15.000 giri / min. Ciò offre un throughput sequenziale di circa 220 MB al secondo su un array di 14 dischi, che non è molto più veloce sulla carta rispetto ai 150 MB / sec circa citati per un moderno disco SATA da 1 TB.

Per lo streaming video (ad esempio), un array di 4 dischi SATA in un RAID-0 con una dimensione di striping di grandi dimensioni (alcuni controller RAID supporteranno dimensioni di striping fino a 1 MB) hanno un throughput sequenziale piuttosto elevato. Questo esempio potrebbe teoricamente trasmettere circa 480 MB / sec, il che è abbastanza comodo per eseguire l'editing video HD non compresso in tempo reale. Pertanto, i proprietari di Mac Pro e hardware simile possono eseguire attività di composizione di video HD che avrebbero richiesto una macchina con un array di fibre ad attacco diretto solo pochi anni fa.

Il vero vantaggio di un array di dischi è il lavoro di database che è caratterizzato da un gran numero di richieste I / O sparse di piccole dimensioni. Su questo tipo di carico di lavoro, le prestazioni sono limitate dalla latenza fisica di bit di metallo nel disco che ruota in tondo e avanti e indietro. Questa metrica è nota come IOPS (operazioni I / O al secondo). Più dischi fisici hai, indipendentemente dalla capacità, più IOPS teoricamente puoi fare. Più IOPS significa più transazioni al secondo.

Integrità dei dati

Inoltre, la maggior parte delle configurazioni RAID offre ridondanza dei dati, che per definizione richiede più di un disco fisico. La combinazione di uno schema di archiviazione con tale ridondanza e un numero maggiore di unità offre a un sistema la capacità di servire in modo affidabile un carico di lavoro transazionale elevato.

L'infrastruttura per array di dischi (e SAN nel caso più estremo) non è esattamente un elemento di mercato di massa. Inoltre è uno dei bit che davvero, davvero, non può fallire. Questa combinazione di standard di costruzione e volumi di mercato più piccoli non è economica.

Costo totale di archiviazione incluso il backup

In pratica, il costo maggiore per il mantenimento di 1 TB di dati è probabilmente il backup e il ripristino. Un'unità nastro e 34 set di nastri SDLT o ultrium per un ciclo di nonni completo di backup e ripristino costerà probabilmente più di un array di dischi da 1 TB. Aggiungi i costi di archiviazione off-site e lo stipendio anche di una singola scimmia nastro e improvvisamente il tuo 1 TB di dati non è così economico.

Il costo dei dischi è spesso un modo equo nella gerarchia dei costi di archiviazione dominanti. In una banca, ho avuto occasione di lavorare per l'archiviazione SAN a £ 900 / GB per un sistema di sviluppo e £ 5.000 / GB per un disco su un server di produzione. Anche ai prezzi dei fornitori aziendali il costo fisico dei dischi era solo una piccola parte di ciò. Un altro esempio di cui sono a conoscenza ha una SAN Shark IBM (relativamente) configurata in modo modesto che gli è costata da qualche parte in eccesso di £ 1 milione. Solo l'archiviazione fisica su questo viene caricata a circa £ 9 / gigabyte, o circa £ 9.000 per spazio equivalente al tuo HDD consumer da 1 TB.


40

Basta dire: "Sì, e posso ottenere un programmatore Java in mare aperto per $ 5 / ora."


8
Adesso va bene!
John Dyer,

3
Questa è un'osservazione piuttosto spiritosa, ma non riesco a votarla perché in realtà non risponde alla domanda, per la quale non vedo l'ora di trovare una risposta
dance2die

1
@ dance2die Penso che risponda alla domanda abbastanza chiaramente.
Joe Phillips,

11
Penso che sia una risposta valida. Il punto è che ognuno di noi ha le proprie aree di competenza e i membri di una squadra devono fidarsi l'uno dell'altro. Capovolgere la domanda allo sviluppatore in questo modo li aiuterà a capire quanto sia inutile provare a indovinarsi l'un l'altro.
Portman,

2
Un'altra risposta valida sarebbe che il ragazzo di Geek Squad potrebbe probabilmente capire come farlo, farlo in modo più economico e avere un atteggiamento molto migliore nel farlo. Seriamente, perché questa è la risposta più votata per questa domanda? Ho avuto una bella risatina mentre lo leggevo, ma se questo sarà il modo in cui i membri del sito risponderanno a domande ingenue, seguirò Google e lo scambio di esperti.
dfjacobs,

14

Forse fai loro alcune domande sulla loro unità Walmart:

  • qual è il suo tempo medio di fallimento?
  • cosa succede se fallisce catastroficamente?
  • con quale frequenza viene eseguito il backup?
  • quanta memoria richiederà 12 mesi di backup?
  • come può essere eseguito il backup fuori dal sito?
  • come potrebbe essere ripristinato? (nel complesso? un singolo file? un paio di directory?)
  • quanto costa archiviare i backup?
  • come garantirà la sicurezza dei backup? sicuro?
  • quale assicurazione deve coprire la perdita di dati vitali?

... Confronta queste risposte con un'unità in esecuzione come parte di un array RAID 5 in un datacenter ben gestito.

(Divulgazione: anch'io sono uno sviluppatore - sto solo indovinando!)


1
+1 per un buon approccio globale al "perché" della domanda.
Avery Payne,

4

Forse dovresti considerare uno storage differenziato.

Il tuo sviluppatore potrebbe aver bisogno di più spazio, ma forse non è lo spazio su disco di "classe enterprise" che sta cercando. Forse ha solo bisogno di avere un posto in cui archiviare .vhd e ISO che in caso di crash del disco possono essere scaricati di nuovo da MSDN. Forse le esecuzioni di test richiedono grandi requisiti di spazio transitorio che devono essere presenti solo per la durata dell'esecuzione di test. Per tutti questi un drive Wallmart da $ 50 può essere una soluzione valida.


3

La prima cosa che le persone devono rendersi conto dello storage è che c'è una grande differenza tra capacità e IOPS. Cose come la durabilità, ecc. Di solito sono discutibili, si riduce quasi sempre alla IOPS rispetto alla capacità.


4
IOPS: Operazioni di input / output al secondo
Sam Hasler,

2

Dipende dal tipo di server che chiedono. Per uno sviluppatore di base o un server di test, le unità TB da Wallmart sono probabilmente abbastanza buone. Se hai a che fare con un server di fascia alta che non utilizza componenti standard, chiedi loro se costruiscono un'auto da corsa e acquistano pneumatici da un negozio di ricambi per risparmiare qualche soldo.


1
Consiglio comunque di non usare questa tecnica sui manager. La risposta potrebbe benissimo essere "sì".
Jason Baker,

1

Il modo in cui lo spiego è questo. Se il tuo capo firmerà per l'acquisto. Metterò un cartello sull'unità Wal-Mart che afferma ...

"l'annuncio Sys è stato incaricato di metterlo qui contro la sua volontà e il suo istinto" E quando il disco si spegne, lo consegnerò e lo noterò allo sviluppatore e chiederò loro come fare il mio lavoro questa volta.

Sono d'accordo con Portman ... fidati della squadra o vattene.


0

Una semplice risposta su una riga: le unità da 1 TB sono in genere SATA, ma il server è SCSI. (Anche se il server non è SCSI, questo potrebbe interrompere la linea di ricerca ... per ora.)

Un'unità SCSI da 300 GB è in genere 4 volte il prezzo, quindi è necessario eseguire il backup dei dati esistenti, organizzare i tempi di inattività, eseguire l'installazione, qualcosa potrebbe andare storto, gli straordinari, ecc. Tutto sommato, un semplice aggiornamento dello storage può portare a tutto tipi di dolore - nessuno dei quali lo sviluppo è direttamente responsabile. Dire che è possibile acquistare un'unità standard che soddisfa l'attuale necessità è irrimediabilmente semplicistico.

Ma sai che avresti dovuto inserire unità più grandi nei dannati server quando li hai acquistati e ti stai prendendo a calci ora! Ma tu volevi che i server fossero installati e che avrebbero aggiunto un costo iniziale e che avrebbe dovuto fare un ulteriore giro di approvazione ... benvenuto nel mondo del dolore del sysadmin ...

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.