Wie lassen sich Speicherprobleme Entwicklern und anderen Benutzern am besten erklären?

40

Wenn der Serverspeicher knapp wird, jammern alle Entwickler: "Ich kann bei Walmart eine 1-TB-Festplatte für 100 Dollar kaufen, was ist das Problem?"

Wie kann man den Entwicklern die Komplexität des Speichers erklären, damit sie verstehen, warum ein 1-TB-Laufwerk von Walmart einfach nicht funktioniert?

ps Ich bin ein Entwickler und möchte auch wissen:)

John Dyer
quelle
5
Oder "Ich kann Speicherplatz für 0,15 USD pro Gigabyte von Amazon S3 erhalten, was ist das Problem?"
Chris Upchurch
@ Chris Upchurch: Aber das Problem ist, dass Sie möglicherweise einen Bericht darüber schreiben müssen, ob Sie sich für Amazon S3, Google App Engine oder ... entscheiden. ;)
dance2die
6
Ich könnte das umdrehen. Meine Arbeit generiert Einnahmen und ich brauche etwas mehr Speicher, um meine Arbeit effektiv zu erledigen. Es ist eine solide Investition. Warum können Sie nicht einfach mehr Speicher kaufen?
1
@ Chris: Natürlich hängt es immer von der jeweiligen Situation ab, aber ich habe durch (teure) Erfahrung herausgefunden, dass die Verwendung von Amazon S3 für den Basisspeicher nicht gerade kostengünstig ist. S3 ist viel besser für die Bewältigung von Verkehrsspitzen geeignet, sodass Sie nicht in ein System investieren müssen, das seltene Worst-Case-Szenarien bewältigt. Wenn Sie es jedoch für den täglichen Betrieb einsetzen, sind Sie möglicherweise viel besser dran Kapitalkosten zahlen ...
Mihai Limbăşan

Antworten:

53

Einige Hauptwahrheiten über Speicher, oder warum ist Enterprise-Speicher so teuer?

Consumer-Festplatten bieten viel Speicherplatz, sodass selbst der anspruchsvollste Benutzer von * cough * Streaming-Medien * cough * genug kaufen kann, um eine Sammlung von mehreren Terabyte zu speichern. Tatsächlich wächst die Festplattenkapazität seit einigen Jahrzehnten schneller als der Transistor auf Silizium setzt.

Der Speicher für Unternehmen ist etwas komplexer, da die Daten Leistungs- und Integritätsanforderungen aufweisen, die einen etwas schwereren Ansatz erfordern. Die Daten müssen eine gewisse Garantie für die Verfügbarkeit bei Hardwarefehlern haben und müssen möglicherweise mit einer großen Anzahl von Benutzern gemeinsam genutzt werden, wodurch viel mehr Lese- / Schreibanforderungen als ein einzelner Benutzer generiert werden.

Die technischen Lösungen für dieses Problem können pro Gigabyte um ein Vielfaches teurer sein als Consumer-Speicherlösungen. Sie erfordern auch physische Wartung; Backups müssen außerhalb des Standorts erstellt und häufig aufbewahrt werden, damit ein Brand die Daten nicht zerstört. Dieser Prozess erhöht die laufenden Kosten.

Performance

Auf Ihrem 1-TB-Consumer- oder sogar Enterprise-Nearline-Laufwerk haben Sie nur einen Kopf. Die Scheibe dreht sich mit 7200 U / min oder 120 Umdrehungen pro Sekunde. Dies bedeutet, dass Sie theoretisch maximal 120 I / O-Operationen mit wahlfreiem Zugriff pro Sekunde * und in der Praxis etwas weniger ausführen können. Daher ist das Kopieren einer großen Datei auf ein einzelnes 1-TB-Volume relativ langsam.

Auf einem Festplatten-Array mit 14 x 72-GB-Festplatten haben Sie 14 Heads-Over-Festplatten mit beispielsweise 15.000 U / min oder ungefähr 250 Umdrehungen pro Sekunde. Dies ergibt ein theoretisches Maximum von 3.500 zufälligen E / A-Operationen pro Sekunde * (in der Praxis wiederum etwas weniger). Alle anderen Dinge, die einer Dateikopie gleichkommen, sind um ein Vielfaches schneller.

*Sie könnten mehr als einen Direktzugriff pro Umdrehung der Festplatte erhalten, wenn die Geometrie der Lesevorgänge es dem Laufwerk ermöglichte, die Köpfe zu bewegen und einen Sektor zu lesen, der zufällig innerhalb einer Umdrehung der Festplatte verfügbar war. Wenn die Festplattenzugriffe weit verteilt waren, werden Sie wahrscheinlich weniger als einen Durchschnitt haben. Wenn ein Festplatten-Array in einem gestreiften Layout (siehe unten) formatiert ist, wird in den meisten Fällen maximal ein Streifen pro Umdrehung der Festplatte gelesen, und (abhängig vom RAID-Controller) möglicherweise weniger als einer im Durchschnitt.

Das 1-TB-Laufwerk mit 7200 U / min ist bei sequenziellen E / A-Vorgängen wahrscheinlich relativ schnell. Festplatten-Arrays, die in einem Striping-Schema (RAID-0, RAID-5, RAID-10 usw.) formatiert sind, können in der Regel höchstens einen Stripe pro Umdrehung der Festplatte lesen. Mit einem 64K-Stripe können wir 64Kx250 = 16MB Daten pro Sekunde von einer Festplatte mit 15.000 U / min lesen. Dies ergibt einen sequentiellen Durchsatz von etwa 220 MB pro Sekunde auf einem Array von 14 Festplatten, was auf Papier nicht viel schneller ist als die für eine moderne 1-TB-SATA-Festplatte angegebenen 150 MB / s.

Für Video-Streaming (zum Beispiel) hat ein Array von 4 SATA-Festplatten in einem RAID-0 mit einer großen Stripe-Größe (einige RAID-Controller unterstützen Stripe-Größen bis zu 1 MB) einen recht hohen sequenziellen Durchsatz. In diesem Beispiel könnten theoretisch ca. 480 MB / s gestreamt werden, was bequem genug ist, um unkomprimierte HD-Videos in Echtzeit zu bearbeiten. So können Besitzer von Mac-Pros und ähnlicher Hardware HD-Video-Compositing-Aufgaben ausführen, für die noch vor wenigen Jahren ein Computer mit einem Direct-Attach-Glasfaser-Array erforderlich gewesen wäre.

Der eigentliche Vorteil eines Festplatten-Arrays liegt in der Datenbankarbeit, die durch eine große Anzahl kleiner, verstreuter E / A-Anforderungen gekennzeichnet ist. Bei dieser Art von Workload wird die Leistung durch die physische Latenz von Metallteilen auf der Festplatte eingeschränkt, die sich hin und her bewegen. Diese Metrik wird als IOPS (I / O-Operationen pro Sekunde) bezeichnet. Je mehr physische Festplatten Sie haben - unabhängig von der Kapazität - desto mehr IOPS können Sie theoretisch ausführen. Mehr IOPS bedeutet mehr Transaktionen pro Sekunde.

Datenintegrität

Darüber hinaus bieten die meisten RAID-Konfigurationen eine gewisse Datenredundanz - für die per Definition mehr als eine physische Festplatte erforderlich ist. Die Kombination eines Speicherschemas mit einer solchen Redundanz und einer größeren Anzahl von Laufwerken ermöglicht es einem System, eine große Transaktions-Workload zuverlässig zu bedienen.

Die Infrastruktur für Festplatten-Arrays (und SANs im Extremfall) ist nicht gerade ein Massenprodukt. Darüber hinaus ist es eines der Bits, die wirklich, wirklich nicht scheitern können. Diese Kombination aus Standardbauweise und kleineren Marktvolumina ist nicht billig.

Gesamtspeicherkosten einschließlich Backup

In der Praxis dürften die größten Kosten für die Wartung von 1 TB Daten die Sicherung und Wiederherstellung sein. Ein Bandlaufwerk und 34 Sätze SDLT- oder Ultrium-Bänder für einen vollständigen Zyklus der Sicherung und Wiederherstellung kosten wahrscheinlich mehr als ein 1-TB-Festplattenarray. Wenn Sie die Kosten für die externe Speicherung und das Gehalt eines einzelnen Bandaffen hinzufügen, ist Ihre Datenmenge von 1 TB plötzlich nicht mehr ganz so günstig.

Die Kosten für die Datenträger sind in der Hierarchie der dominanten Speicherkosten häufig angemessen. Bei einer Bank, bei der ich Gelegenheit hatte, für SAN-Speicher zu arbeiten, kostete ein Entwicklungssystem 900 GBP / GB und eine Festplatte auf einem Produktionsserver 5.000 GBP / GB. Die physischen Kosten der Festplatten betrugen selbst zu Preisen von Unternehmensanbietern nur einen winzigen Bruchteil davon. Ein anderes Beispiel, das mir bekannt ist, hat ein (relativ) bescheiden konfiguriertes IBM Shark SAN, das sie mehr als 1 Million Pfund gekostet hat. Lediglich der physische Speicher wird mit etwa 9 GBP / Gigabyte oder etwa 9.000 GBP für Speicherplatz berechnet, der Ihrer 1-TB-Consumer-Festplatte entspricht.

Betroffen vonTunbridgeWells
quelle
40

Sagen Sie einfach: "Ja, und ich kann einen Java-Programmierer für 5 US-Dollar pro Stunde von der Küste holen."

Portman
quelle
8
Nun das ist gut!
John Dyer
3
Dies ist eine ziemlich witzige Bemerkung, aber ich kann sie anscheinend nicht gutheißen, da sie die Frage, die ich
unbedingt
1
@dance2die Ich denke es beantwortet die Frage ganz klar.
Joe Phillips
11
Ich denke, es ist eine gültige Antwort. Der Punkt ist, dass wir alle unsere eigenen Fachgebiete haben und die Mitglieder eines Teams einander vertrauen müssen. Das Zurückblättern der Frage an den Entwickler hilft ihnen zu erkennen, wie sinnlos es ist, sich gegenseitig zu überdenken.
Portman
2
Eine andere gültige Antwort wäre, dass der Typ bei Geek Squad wahrscheinlich herausfinden könnte, wie man es macht, es billiger macht und eine viel bessere Einstellung dazu hat. Im Ernst, warum ist dies die am höchsten bewertete Antwort auf diese Frage? Ich hatte ein nettes Kichern beim Lesen, aber wenn die Site-Mitglieder so auf naive Fragen antworten, bleibe ich bei Google und Experts Exchange.
dfjacobs
14

Vielleicht stellen Sie ihnen ein paar Fragen zu ihrem Walmart-Laufwerk:

  • Was ist die mittlere Zeit bis zum Scheitern?
  • Was passiert, wenn es katastrophal ausfällt?
  • Wie oft wird es gesichert?
  • Wie viel Speicherplatz werden für 12 Monate Backups benötigt?
  • Wie kann es außerhalb des Standorts gesichert werden?
  • Wie könnte es wiederhergestellt werden? (insgesamt? eine einzelne Datei? ein paar Verzeichnisse?)
  • Wie viel kostet es, die Backups zu speichern?
  • Wie garantiert er, dass die Backups sicher aufbewahrt werden? sichern?
  • Welche Versicherung hat er, um den Verlust lebenswichtiger Daten zu decken?

... Vergleichen Sie diese Antworten mit einem Laufwerk, das als Teil eines RAID 5-Arrays in einem gut verwalteten Rechenzentrum ausgeführt wird.

(Offenlegung: Ich bin auch ein Entwickler - ich rate nur!)

AJ.
quelle
1
+1 für eine gute, umfassende Herangehensweise an das "Warum" der Frage.
Avery Payne
4

Vielleicht sollten Sie eine differenzierte Lagerung in Betracht ziehen.

Ihr Entwickler benötigt möglicherweise mehr Speicherplatz, aber möglicherweise ist es nicht der von ihm angestrebte "Enterprise Class" -Drive-Space. Möglicherweise muss er nur einen Ort zum Speichern von .vhd- und ISO-Dateien haben, die im Falle eines Festplattenabsturzes erneut von MSDN heruntergeladen werden können. Möglicherweise erfordern Testläufe einen großen vorübergehenden Platzbedarf, der nur für die Dauer des Testlaufs vorhanden sein muss. Für all diese Fälle kann ein Wallmart-Laufwerk im Wert von 50 USD eine gültige Lösung sein.

Peter Stuer
quelle
3

Das Wichtigste, was Menschen an Speicher erkennen müssen, ist, dass zwischen Kapazität und IOPS ein großer Unterschied besteht. Dinge wie Haltbarkeit usw. sind normalerweise umstritten, es kommt fast immer auf IOPS vs. Kapazität an.

Mark S. Rasmussen
quelle
4
IOPS: Eingabe / Ausgabe-Operationen pro Sekunde
Sam Hasler
2

Es kommt darauf an, nach welchen Servern dort gefragt wird. Für einen einfachen Entwickler oder einen Testserver sind wahrscheinlich 1-TB-Laufwerke von Wallmart ausreichend. Wenn Sie es mit einem High-End-Server zu tun haben, der keine Standardkomponenten verwendet, fragen Sie ihn, ob er ein Rennauto bauen und Reifen in einem Autoteilegeschäft kaufen würde, um ein paar Dollar zu sparen.

Jared
quelle
1
Ich würde jedoch empfehlen, diese Technik nicht bei Managern anzuwenden. Die Antwort könnte sehr wohl "ja" sein.
Jason Baker
1

Ich erkläre es so. Wenn Ihr Chef den Kauf abmeldet. Ich werde ein Schild auf dem Wal-Mart-Laufwerk anbringen, das besagt ..

"Die Sys Ad wurde angewiesen, dies hier gegen seinen Willen und Willen zu platzieren." Und wenn der Antrieb stirbt, werde ich den Antrieb übergeben und dem Entwickler notieren und ihn fragen, wie er diesmal meinen Job machen soll.

Ich stimme Portman zu ... vertraue dem Team oder gehe.

Thomas Denton
quelle
0

Eine einfache einzeilige Antwort: 1-TB-Laufwerke sind normalerweise SATA-Laufwerke, Ihr Server ist jedoch SCSI. (Auch wenn der Server kein SCSI-Server ist, könnte dies die Abfrage beenden ... für den Moment.)

Ein 300-GB-SCSI-Laufwerk kostet in der Regel das Vierfache. Anschließend werden die vorhandenen Daten gesichert, Ausfallzeiten organisiert, die Installation ausgeführt. Möglicherweise läuft etwas schief, Überstunden usw. Alles in allem kann ein einfaches Speicher-Upgrade zu allen führen Arten von Schmerzen - keine, für die der Entwickler direkt verantwortlich ist. Zu sagen, dass Sie ein handelsübliches Laufwerk kaufen können, das den aktuellen Bedarf befriedigt, ist hoffnungslos einfach.

Aber du weißt, du hättest größere Laufwerke in die verdammten Server stecken sollen, als du sie gekauft hast und du trittst dich jetzt selbst in Tritt! Aber Sie wollten, dass die Server installiert werden, und sie hätten zu den Vorabkosten beigetragen, und es hätte möglicherweise eine zusätzliche Genehmigungsrunde erforderlich sein können ... Willkommen in der Welt der Schmerzen des Systemadministrators ...

Cawflands
quelle