Chepko Danil - Fotolia

Mit geschicktem Tuning können Sie optimale Leistung aus Storage herauskitzeln

Tuning ist kein Hexenwerk. Wir zeigen Ihnen, wie sie die letzten Reserven nutzen, um aus Storage einen Formel-1-Rennwagen zu machen.

Seit langen Jahren gilt das Tunen von Storage, um höchste Leistungen für verschiedene Workloads herauszukitzeln, als Schwarzkunst, die nur echte Experten beherrschen. Aber mit der fortschreitenden Marktentwicklung sollte man meinen, dass es nun weniger Anstrengung kostet, den Erfordernissen unterschiedlicher Workloads gerecht zu werden.

Aber Tuning ist immer noch notwendig. Wir widmen uns nun häufigen Problemen und wie man Storage-Hardware optimal an anspruchsvolle Anwendungen anpassen kann.

Typischerweise diente externes Storage als ständiger Speicher für Anwendungsdaten. Der Nachteil ist, dass dieser ständige Speicher wesentlich langsamer ist als der Hauptspeicher.

Festplatten haben Latenzen im Millisekundenbereich und sind geeignet für sequentielle Leistung, weniger für Random-I/O-Leistung (Eingabe/Ausgabe).

NAND Flash ist wesentlich schneller und bietet auch eine gute I/O-Leistung, allerdings auf Kosten der Lebensdauer der Medien. Ein weiteres Problem bei Flash Storage ist es, dass Hintergrundaufgaben wie Garbage Collection manchmal zu Zeiten von Spitzenbelastung ausgeführt werden.     

DRAM bietet hohe Geschwindigkeit und kann dazu benutzt werden, die Storage Performance zu steigern, wie wir zeigen werden.

Schließlich sollten wir uns vor Augen führen, dass in Shared Arrays Storage und Server über das Netzwerk verbunden werden. Ebenso spielt bei Scale-Out knotenbasierten Lösungen (wie hyperkonvergenter Infrastruktur (HCI)) das Netzwerk eine wichtige Rolle, das die Knoten verbindet und die Datenintegrität gewährleistet.

Hier kann man den Hebel ansetzen

Dies sind die Hauptansatzpunkte für Tuning:

  1. Das Layout der Daten: Wenn Daten über physische Medien verteilt werden, kann sich dies positiv auf die I/O-Leistung auswirken. Einzelne Festplatten und Flashlaufwerke haben eine begrenzte  I/O-Leistung. Deshalb kann eine Verteilung auf mehrere (Striping) die I/O zur Abarbeitung gleichzeitiger Schreib-/Leseoperationen ausbreiten.
    Bei RAID Data Protection kann die Stripe-Breite nicht unbegrenzt ausgedehnt werden, weil dies auf Kosten der Widerstandsfähigkeit der RAID-Gruppe geht und der Wiederaufbauzeit bei großen RAID-Gruppen. Ein RAID-6 Schema erweitert den Schutz, benötigt aber mehr Platz und Overhead für die Parity-Berechnung. Eine Alternative wäre Erasure Coding, das aber eher für Objekt-Storage geeignet ist.
  2. Caching: Das Caching der Daten in Flash oder DRAM kann die I/O-Latenz verbessern, weil Leseanfragen vom Cache beantwortet werden (in einem Shared Array oder im Anwendungs-Host). Die Schreib-I/O kann auch beschleunigt werden, muss aber gegen Hardwareausfall durch Replikation oder durch das Schreiben auf ein persistentes Cache-Gerät geschützt werden. Moderne Caching-Lösung wie die Nimble Adaptive Flash oder die HPE 3PAR Adaptive Flash Cache versuchen, den Einsatz teurer Ressourcen zu optimieren und dabei die Geschwindigkeit zu steigern.
  3. Tuning des Netzwerkes: Fibre Channel (FC) und Ethernet-Verbindung sind zum Tuning in Shared-Storage-Umgebungen geeignet. Beim Fibre Channel sollte man sich die Einstellungen der Buffer Credits ansehen und beim Ethernet die Paket-Größe. Switches, die sich nicht blockieren, garantieren eine Punkt-zu-Punkt-Verbindung mit einem guten Datendurchsatz für jeden Port am Switch. Auch das Design des Netzwerkes hat Bedeutung. Historisch waren Fibre Channel Netzwerke mit verschiedenen Topologien unter dem Gesichtspunkt des Kostensparens ausgelegt. Heutzutage erreichen Fibre Channel und Ethernet Geschwindigkeiten, die gar nicht voll genutzt werden können (32Gbps für FC, 40Gbps für Ethernet), so dass es gar kein großes Problem ist, Ports zu teilen. Allerdings sind dedizierte Ports hilfreich dabei, Flaschenhälse zu vermeiden.
  4. Tiering: Verschiedene Storage Tiers bieten Kostenvorteile, sind aber auch bei der Geschwindigkeit von Nutzen. Die Daten können auf dem jeweils geeigneten Tier abgelegt werden, abhängig vom Bedarf an I/O-Leistung und der Kosteneffizienz der Medien. Die Tiering-Algorithmen haben sich rapide entwickelt von LUN zu blockbasiertem Tiering. Wenn der Tiering-Algorithmus und das Daten-Layout stimmen, kann die Geschwindigkeit verbessert werden, ohne dass die Neuanschaffung von Hardware nötig ist.

Anwendungskategorien

Um das Beste aus dem Tuning herauszuholen, sollte man das I/O-Profil einer Anwendung kennen. Hier gibt es erhebliche Unterschiede, aber grob kann man folgende Kategorien unterscheiden:

  1. Strukturierte Daten: Hier reden wir über Datenbanken, sowohl SQL (Oracle, SQL Server) als auch NoSQL (MongoDB, CouchDB) mit einem gemischten I/O-Profil. Die gespeicherten Daten haben normalerweise ein I/O-Profil, das Random I/O verlangt (außer bei vollständigen Tabellen-Scans). Die Schreibvorgänge werden in Log-Files festgehalten. Traditionell wurden vorzugsweise die Daten auf RAID-5 und die Logs auf RAID-10 gespeichert, aber dies war nur relevant bei geringem I/O-Caching. Bei modernen Storage Arrays werden die meisten Datenbank-Workloads (außer den anspruchsvollsten) leicht gemanaged. Manuelles Eingreifen ist unnötig. Bei den anspruchsvollsten Workloads sollten die Logs auf Hochgeschwindigkeits-Storage gelegt werden.
  2. Virtuelle Server: Mit dem Aufkommen der Server-Virtualisierung kam auch der I/O-Mixereffekt zum Tragen. Selbst sequentielle I/O-Workloads wurden Random. Dies geschieht, weil Daten aus vielen virtuellen Maschinen (VM) über ein LUN oder Volumen verteilt werden. Jede davon agiert unabhängig und erzeugt ein zufälliges Workload-Profil. Um die Leistung virtueller Server zu verbessern, benötigt man schnellere Medien, die die I/O-Latenz verringern, oder Caching. Sowohl VMware vSphere als auch Microsoft Hyper-V erlauben Caching für einzelne VMs. Es gibt auch Lösungen von Drittanbietern, die sich in den Hypervisor einklinken, um I/O-Operationen zu beschleunigen. VMware vSAN bietet für HCI eine All-Flash-Option, die eine Mischung aus Laufwerken mit hoher Kapazität oder hoher Leistung nutzt, um I/O-Workloads zu optimieren.
  3. Virtuelle Desktops: Bei virtuellen Desktop-Infrastrukturen (VDI) gibt es ähnliche Herausforderungen wie bei virtuellen Servern, aber auch einige Unterschiede. Zunächst fußen die meisten Desktops auf einem einzigen Image, so dass etliche Datendoubletten erzeugt werden, wenn viele Desktops gleichzeitig gestartet werden. Zweitens werden Desktops oft neugestartet, meistens täglich. Dabei gibt es intensive Lesezugriffe beim Start und Schreibvorgänge beim Beenden. Die Leistung virtueller Desktops kann dramatisch verbessert werden durch Caching und Deduplikation des Desktop-Images in einem Shared Array oder durch Software von Drittanbietern. Nichtständige Desktops können sogar im RAM vorgehalten werden. Diese Lösung ist viel billiger als die Anschaffung eines dedizierten All-Flash-Arrays.
  4. Webserver: Webserver und andere leseintensive Anwendungen wie Content-Management-Systeme profitieren von einem zusätzliche Lese-Cache. Dieser kann in den Shared Array eingebaut werden oder in den Hypervisor. Natürlich kann auch der Webserver selbst einen Cache haben, aber der stößt an Grenzen und muss manchmal auf externe I/O zugreifen.
  5. E-Mail-Server: Vor einigen Jahren waren die I/O-Ansprüche pro Mailbox bei Microsoft Exchange recht hoch. Mit jedem Update sind diese drastisch gesunken. Exchange 2016 braucht nur noch etwa fünf Prozent der IOPs, die für Exchange 2003 nötig waren. Heute kann man deswegen Exchange auf einem  JBOD-System (Just a Bunch of Disks) ausrollen statt auf einem SAN. Dennoch können E-Mail-Plattformen von Caching und Striping profitieren.
  6. Analyse: Viele Analyseanwendungen lesen Daten wiederholt, um ein Profil aufzubauen. Diese Anwendungen sind für Latenz verwundbar und müssen parallele Abfragen durchführen. Dies spiegelt das Design von Hadoop auf vielen Knoten und Laufwerksspindeln wieder. Um die Leistung zu verbessern, muss das Latenzproblem beim I/O-Lesen angegangen werden. Das ist möglich mit Flash-Medien oder zusätzlichem Cache. Die Platzierung der Daten ist nicht so nützlich, weil es schwer vorauszusagen ist, welche Daten bei der Analyse einbezogen werden. Der Fokus bei Analyse sollte auf der Ausbalancierung von Storage und Cache liegen und der Möglichkeit, bei Bedarf Cache hinzuzufügen.

Fazit

In all diesen Szenarien kommt es auf detaillierte Angaben zu Leistung und Ressourcenauslastung an. Die Auswirkung jedes Eingriffes kann dann gemessen werden und die mögliche Geschwindigkeitssteigerung gegen die Kosten abgewogen werden.               

Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Ober- oder unterhalb des Hypervisors? Performance-Tuning für hyperkonvergente IT

Die zentralen Funktionen und Features von Datenbank-Performance-Tools

Windows 10: Performance-Optimierung mit RAM- und Service-Einstellungen

Tools und Tipps zur Verbesserung der Netzwerk-Performance mit Hyper-V

Artikel wurde zuletzt im Mai 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Kapazitätsoptimierung von Primärspeicher

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close