Frage Was ist der beste Weg, um Speicherprobleme für Entwickler und andere Benutzer zu erklären?


Wenn der Server-Speicher langsam wird, fangen alle an zu meckern: "Ich kann ein Wallet von 1 TB für 100 Dollar bekommen, 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?

p.s. Ich bin Entwickler und möchte es auch wissen:)


39
2018-05-01 14:12


Ursprung


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 du vielleicht einen Bericht darüber schreiben musst, ob du Amazon S3, Google App Engine oder ... Gosh wählst, das könnte farbig sein. ;) - Sung Kim
Ich könnte das an dir wenden. Meine Arbeit bringt Umsatz und ich brauche etwas mehr Speicherplatz, um meine Arbeit effektiv zu erledigen. Es ist eine solide Investition, warum können Sie nicht einfach mehr Speicher kaufen?
@Chris: Natürlich kommt es immer auf die aktuelle Situation an, aber ich habe durch (kostspielige) Erfahrung herausgefunden, dass die Verwendung von Amazon S3 für den Basisspeicher nicht gerade kosteneffektiv ist. S3 ist viel besser geeignet, um Verkehrsspitzen zu bewältigen, so dass Sie nicht in ein System investieren müssen, das mit seltenen Worst-Case-Szenarien umgehen kann. Wenn Sie es jedoch für den täglichen Betrieb nutzen, werden Sie sich wahrscheinlich besser fühlen Kapitalkosten bezahlen ... - Mihai Limbăşan


Antworten:


Einige Grundwahrheiten über Speicher oder warum ist Enterprise Storage so teuer?

Consumer-Festplatten bieten viel Platz, so dass selbst der anspruchsvollste Benutzer von * hust * streaming media * hust * 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.

"Enterprise" -Speicher ist ein etwas komplexeres Problem, da die Daten Leistungs- und Integritätsanforderungen haben, die einen etwas schwereren Ansatz diktieren. Die Daten müssen im Fall von Hardwarefehlern eine gewisse Verfügbarkeitsgarantie haben und müssen möglicherweise mit einer großen Anzahl von Benutzern geteilt werden, wodurch viel mehr Lese- / Schreibanforderungen als bei einem einzelnen Benutzer generiert werden.

Die technischen Lösungen für dieses Problem können pro Gigabyte um ein Vielfaches teurer sein als Speicherlösungen für Endverbraucher. Sie erfordern auch physische Wartung; Backups müssen erstellt und oft extern gespeichert werden, damit ein Brand die Daten nicht zerstört. Dieser Prozess fügt fortlaufende Kosten hinzu.

Performance 

Auf Ihrem 1 TB Consumer oder sogar Enterprise Nearline-Laufwerk haben Sie nur einen Kopf. Die Platte dreht sich mit 7200 U / min oder 120 Umdrehungen pro Sekunde. Das bedeutet, dass Sie in der Theorie maximal 120 wahlfreie E / A-Operationen pro Sekunde * und in der Praxis etwas weniger erreichen können. Daher ist das Kopieren einer großen Datei auf einem einzelnen 1 TB-Volume relativ langsam.

Auf einem Festplatten-Array mit 14x 72-GB-Festplatten haben Sie 14 Festplatten über Festplatten mit etwa 15.000 RPM oder etwa 250 Umdrehungen pro Sekunde. Dies ergibt ein theoretisches Maximum von 3.500 zufälligen I / O-Operationen pro Sekunde * (wiederum etwas weniger in der Praxis). Wenn alle anderen Dinge gleich sind, wird eine Dateikopie um ein Vielfaches schneller sein.

* Sie können mehr als einen wahlfreien Zugriff pro Umdrehung der Festplatte erhalten, wenn die Geometrie der Lesevorgänge es dem Laufwerk ermöglicht, die Köpfe zu verschieben und einen Sektor zu lesen, der innerhalb einer Umdrehung der Festplatte verfügbar war. Wenn die Festplattenzugriffe weit verstreut sind, werden Sie wahrscheinlich weniger als einen Durchschnittswert haben. Wenn ein Disk-Array in einem Striped-Layout formatiert wird (siehe unten), erhalten Sie unter den meisten Umständen maximal einen Stripeset pro Umdrehung der Festplatte und (abhängig vom RAID-Controller) möglicherweise weniger als einen im Durchschnitt.

Das 1-TB-Laufwerk mit 7200 U / min wird wahrscheinlich bei sequentiellen I / O-Vorgängen relativ schnell sein. Festplattengruppen, die in einem gestreiften Schema (RAID-0, RAID-5, RAID-10 usw.) formatiert sind, können typischerweise höchstens einen Streifen pro Umdrehung der Festplatte lesen. Mit einem 64K-Stripe können wir 64Kx250 = ungefähr 16MB Daten pro Sekunde von einer 15.000 RPM-Platte lesen. Dies ergibt einen sequentiellen Durchsatz von ungefähr 220 MB pro Sekunde auf einem Array von 14 Platten, was auf dem Papier nicht viel schneller ist als die 150 MB / s, die für eine moderne 1 TB SATA-Platte angegeben sind.

Für Video-Streaming (zum Beispiel), 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) haben ziemlich viel sequentiellen Durchsatz. Dieses Beispiel könnte theoretisch etwa 480 MB / s streamen, was komfortabel genug ist, um unkomprimierte HD-Videobearbeitung in Echtzeit zu ermöglichen. So können Besitzer von Mac Pros und ähnlicher Hardware vor wenigen Jahren HD-Video-Compositing-Aufgaben erledigen, für die eine Maschine mit einem Direct-Attach-Faser-Array erforderlich gewesen wäre.

Der eigentliche Vorteil eines Plattenarrays 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 physikalische Latenz von Metallbits in der Platte eingeschränkt, die sich hin- und herbewegt. Diese Metrik wird als IOPS (I / O-Vorgänge pro Sekunde) bezeichnet. Je mehr physische Festplatten Sie haben - unabhängig von der Kapazität - desto mehr IOPS können Sie theoretisch tun. Mehr IOPS bedeutet mehr Transaktionen pro Sekunde.

Datenintegrität

Darüber hinaus bieten die meisten RAID-Konfigurationen eine gewisse Datenredundanz, die definitionsgemäß mehr als eine physische Festplatte erfordert. Die Kombination eines Speicherschemas mit einer solchen Redundanz und einer größeren Anzahl von Laufwerken gibt einem System die Möglichkeit, eine große Transaktionsarbeitslast zuverlässig zu bedienen.

Die Infrastruktur für Disk-Arrays (und im Extremfall SANs) ist nicht gerade ein Massenartikel. Darüber hinaus ist es eines der Bits, die wirklich wirklich kann nicht fehlschlagen. Diese Kombination aus Stückzahlen und kleineren Marktvolumina ist nicht billig.

Gesamtspeicherkosten einschließlich Backup

In der Praxis sind die größten Kosten für die Verwaltung von 1 TB an Daten wahrscheinlich Backup und Recovery. Ein Bandlaufwerk und 34 Sätze von SDLT- oder Ultrium-Bändern für einen Voll-Großvater-Zyklus von Sicherung und Wiederherstellung werden wahrscheinlich mehr kosten als ein 1 TB-Platten-Array. Fügen Sie die Kosten für Off-Site-Speicher und das Gehalt eines einzelnen Band-Affen hinzu und plötzlich ist Ihre 1 TB Datenmenge nicht ganz so billig.

Die Kosten für die Festplatten liegen oft in der Hierarchie der dominierenden Speicherkosten. Bei einer Bank, die ich für SAN-Speicher arbeiten musste, kostete ich für ein Entwicklungssystem £ 900 / GB und für eine Platte auf einem Produktionsserver £ 5.000 / GB. Selbst bei den Preisen der Hersteller waren die physischen Kosten der Platten nur ein winziger Bruchteil davon. Ein anderes Beispiel, das mir bekannt ist, ist ein (relativ) bescheiden konfiguriertes IBM Shark SAN, das sie irgendwo über £ 1 Million kostete. Nur der physische Speicherplatz auf diesem ist bei etwa £ 9 / Gigabyte oder etwa £ 9.000 für Speicherplatz entsprechend Ihrer 1 TB Verbraucher HDD aufgeladen.


53
2018-05-01 15:07





Sag einfach: "Ja, und ich kann einen Java-Programmierer für fünf Dollar pro Stunde ins Ausland holen."


40
2018-05-01 14:15



Nun, das ist gut! - John Dyer
Das ist eine ziemlich witzige Bemerkung, aber ich kann es nicht aufwerten, da es die Frage nicht beantwortet, auf die ich eifrig eine Antwort finden möchte - Sung Kim
@ dance2die Ich denke, es beantwortet die Frage ganz klar. - Joe Phillips
Ich denke, es ist eine gültige Antwort. Der Punkt ist, wir haben jeweils unsere eigenen Fachgebiete und die Mitglieder eines Teams müssen einander vertrauen. Wenn Sie die Frage so auf den Entwickler zurückwerfen, können Sie erkennen, wie sinnlos es ist, sich gegenseitig zu erraten. - Portman
Eine andere gültige Antwort wäre, dass der Typ bei Geek Squad wahrscheinlich herausfinden würde, wie man es macht, es billiger macht und eine viel bessere Einstellung dazu hat. Im Ernst, warum ist dies die höchste Wahl für diese Frage? Ich hatte ein nettes Schmunzeln beim Lesen, aber wenn die Site-Mitglieder so auf naive Fragen reagieren, bleibe ich bei Google und Experts Exchange. - dfjacobs


Vielleicht können Sie ihnen ein paar Fragen über ihre Walmart-Fahrt stellen:

  • Was ist seine mittlere Zeit bis zum Scheitern?
  • Was passiert, wenn es katastrophal scheitert?
  • Wie oft ist es gesichert?
  • Wie viel Speicher benötigen 12 Monate Backups?
  • Wie kann es außerhalb der Site gesichert werden?
  • Wie könnte es wiederhergestellt werden? (insgesamt? eine einzelne Datei? ein paar Verzeichnisse?)
  • Wie viel kostet das Speichern der Backups?
  • Wie garantiert er, dass die Backups sicher aufbewahrt werden? sichern?
  • Welche Versicherung muss er für den Verlust lebenswichtiger Daten leisten?

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

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


14
2018-05-01 14:45



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


Vielleicht sollten Sie eine differenzierte Speicherung in Betracht ziehen.

Ihr Entwickler braucht vielleicht mehr Speicherplatz, aber vielleicht ist es nicht der "Enterprise Class" Drive-Space, nach dem er sucht. Vielleicht muss er nur einen Platz zum Speichern von .vhd's und ISO's haben, das bei einem Festplattencrash von MSDN heruntergeladen werden kann. Möglicherweise erfordern Testläufe große transiente Platzanforderungen, die nur für die Dauer des Testlaufs vorhanden sein müssen. Für alle diese kann ein $ 50 Wallmart-Laufwerk eine gültige Lösung sein.


4
2018-06-04 07:34





Das Wichtigste, was die Leute über Speicher wissen müssen, ist, dass es zwischen Kapazität und IOPS einen großen Unterschied gibt. Dinge wie Haltbarkeit usw. sind in der Regel unwichtig, es kommt fast immer auf IOPS vs. Kapazität.


3
2018-05-01 14:14



IOPS: Eingabe- / Ausgabeoperationen pro Sekunde - Sam Hasler


Es hängt davon ab, um welche Art von Servern es sich handelt. Für einen Basic Dev oder Testing Server sind wahrscheinlich ein Tb Laufwerk von Wallmart gut genug. Wenn Sie mit einem High-End-Server zu tun haben, der keine Standardkomponenten verwendet, fragen Sie ihn, ob er ein Rennauto bauen und Reifen aus einem Autoteileladen kaufen würde, um ein paar Dollar zu sparen.


2
2018-05-01 14:35



Ich würde jedoch empfehlen, diese Technik nicht für Manager zu verwenden. Die Antwort könnte sehr gut "ja" sein. - Jason Baker


Die Art, wie ich es erkläre, ist dies. Wenn sich Ihr Chef beim Kauf abmeldet. Ich werde ein Zeichen auf die Wal-Mart-Laufwerk setzen, dass Staaten ..

"Die Sys-Anzeige wurde angewiesen, dies hier gegen seinen Willen und Bauch zu setzen." Und wenn die Festplatte stirbt, werde ich die Festplatte und die Notiz dem Entwickler geben und sie fragen, wie ich diesmal meine Arbeit machen soll.

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


1
2018-05-14 23:07





Eine einfache einzeilige Antwort: 1TB Laufwerke sind normalerweise SATA, aber Ihr Server ist SCSI. (Selbst wenn der Server nicht SCSI ist, könnte dies die Ermittlungslinie stoppen ... für den Moment.)

Ein 300-GB-SCSI-Laufwerk ist normalerweise 4x teurer als der Preis, dann werden die vorhandenen Daten gesichert, Ausfallzeiten organisiert, die Installation durchgeführt, etwas schief gehen, Überstunden usw. Alles in allem kann ein einfaches Speicher-Upgrade zu allem führen Arten von Schmerzen - für die der Entwickler nicht direkt verantwortlich ist. Zu sagen, dass man ein Standard-Laufwerk kaufen kann, 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 machst dich jetzt selbst fertig! Aber du wolltest die Server installiert haben und sie hätten die Vorlaufkosten erhöht und es hätte vielleicht eine zusätzliche Runde der Genehmigung bekommen ... willkommen in der Welt des Systemadministrators ...


0
2018-05-05 00:59