RedHat / Oracle Linux mit NetApp FAS (SAN)

    Fortsetzung des Themas Host-Optimierung. In einem vorherigen Artikel habe ich über die Optimierung von Windows- und SAN-Netzwerken geschrieben . In diesem Artikel möchte ich das Thema der Optimierung von RedHat / Oracle Linux (mit und ohne Virtualisierung) mithilfe von NetApp FAS- Speicher in einer SAN- Umgebung behandeln . Um Engpässe in einer solchen Infrastruktur zu finden und zu beseitigen, müssen Sie sich für die Infrastrukturkomponenten entscheiden, unter denen sich die Suche lohnt. Teilen Sie die Infrastruktur in folgende Komponenten auf:



    • Hosteinstellungen mit SAN ( FC / FCoE )
    • Host-Ethernet-Netzwerkeinstellungen für IP SAN ( iSCSI ).
    • Eigentlich mit OS hosten
    • Anwendungen auf dem Host
    • Überprüfen der Treiber- und Softwareversionskompatibilität




    Um nach einem Engpass zu suchen, wird normalerweise eine sequentielle Ausschlusstechnik durchgeführt. Ich schlage vor, dass Sie in erster Linie mit der Speicherung beginnen . Verschieben Sie dann den Speicher -> Netzwerk ( Ethernet / FC) -> Host ( Windows / Linux / VMware ESXi 5.X und ESXi 6.X ) -> Anwendung. Jetzt werden wir auf dem Host anhalten.

    SAN-Multipathing


    Wenn Sie die LUN ohne Virtualisierung direkt mit dem Betriebssystem verbinden , empfiehlt es sich, das NetApp Host Utility zu installieren. Wenn Sie die Virtualisierung mit RDM oder VMFS verwenden , müssen Sie Multipathing auf dem Hypervisor konfigurieren .

    Multipathing sollte standardmäßig die bevorzugten Pfade verwenden - den Pfad zur LUN über die Controller-Ports, auf denen sie sich befindet. Nachrichten in der FCP Partner Path Misconfigured Storage Console weisen auf falsch konfiguriertes ALUA oder MPIO hin. Dies ist ein wichtiger Parameter, den Sie nicht ignorieren sollten, da es einen realen Fall gab, in dem der verärgerte Host-Multipasing-Treiber ohne Unterbrechung zwischen Pfaden wechselte und so große Warteschlangen im E / A-System verursachte. Weitere Informationen zum SAN-Booten finden Sie im zugehörigen Artikel: Red Hat Enterprise Linux / Oracle Enterprise Linux , Cent OS und SUSE Linux Enterprise. Weitere Informationen zu Zoning-

    Empfehlungen für NetApp finden Sie in Bildern .

    Ethernet


    Jumbo-Rahmen

    Wenn Sie iSCSI verwenden, wird dringend empfohlen, Jumbo-Frames für Ethernet mit einer Geschwindigkeit von mindestens 1 GB zu verwenden. Lesen Sie mehr im Ethernet- Artikel mit NetApp FAS . Denken Sie daran, dass Ping 28 Byte kürzer sein muss, wenn Sie Jumbo Frames unter Linux verwenden.
    ifconfig eth0 mtu 9000 up
    echo MTU=9000 >> /etc/sysconfig/network-scripts/ifcfg-eth0
    #ping for MTU 9000
    ping -M do -s 8972 [destinationIP]
    


    Flusskontrolle

    Die Flusskontrolle ist wünschenswert, um den gesamten Datenverkehr vom Server zum Speicher mit 10-GB-Verbindungen auszuschalten. Weitere Details .
    
    ethtool -A eth0 autoneg off
    ethtool -A eth0 rx off
    ethtool -A eth0 tx off
    echo ethtool -A eth0 autoneg off >> /etc/sysconfig/network-scripts/ifcfg-eth0
    echo ethtool -A eth0 rx off      >> /etc/sysconfig/network-scripts/ifcfg-eth0
    echo ethtool -A eth0 tx off      >> /etc/sysconfig/network-scripts/ifcfg-eth0
    


    ESXi & MTU9000

    Wenn Sie die ESXi-Umgebung verwenden, vergessen Sie nicht, den richtigen Netzwerkadapter zu erstellen - E1000 für 1 GB-Netzwerke oder VMXNET3, wenn Ihr Netzwerk größer als 1 GB ist. E1000 und VMXNET3 unterstützen MTU 9000, der standardmäßige virtuelle Netzwerkadapter „Flexible“ nicht.
    Erfahren Sie mehr über die Optimierung von VMware mit NetApp FAS .

    Konvergentes Netzwerk

    In Anbetracht der „Universalität“ von 10 GBE , wenn FCoE , NFS , CIFS , iSCSI dieselbe Physik durchlaufen können , zusammen mit der Verwendung von Technologien wie vPC und LACP sowie der einfachen Wartung von Ethernet-Netzwerken, werden das Protokoll und die Switches von FC unterschieden, wodurch die Möglichkeit geboten wird "Manöver" und Investitionserhaltung bei sich ändernden Geschäftsanforderungen.

    FC8 gegen 10 GBE: iSCSI, CIFS, NFS

    Interne Tests von NetApp- Speichersystemen (für andere Speicheranbieter kann diese Situation abweichen) FC 8G und 10 GBE iSCSI , CIFS und NFS weisen fast die gleiche Leistung und Latenz auf , die für OLTP- und Server- und Desktop-Virtualisierung typisch ist , d. H. für Lasten mit kleinen Blöcken und zufälliger Ablesung.
    Ich schlage vor, dass Sie sich mit dem Artikel vertraut machen, in dem Gemeinsamkeiten, Unterschiede und Perspektiven von Ethernet und FC beschrieben werden .

    In dem Fall, dass die Infrastruktur des Kunden zwei Switches umfasst, kann von der gleichen Komplexität der Konfiguration wie bei einem SAN gesprochen werdenund Ethernet-Netzwerke. Für viele Kunden besteht das SAN- Netzwerk jedoch nicht aus zwei SAN- Switches, bei denen „jeder jeden sieht“. In der Regel endet die Konfiguration nicht hier. In dieser Hinsicht ist die Ethernet-Wartung viel einfacher. In der Regel besteht ein SAN im Netzwerk eines Kunden aus einer Vielzahl von Switches mit redundanten Verbindungen und Verbindungen zu Remotestandorten, deren Wartung keineswegs trivial ist. Und wenn etwas schief geht, wird der Datenverkehr von Wireshark nicht "abgehört".

    Moderne konvergente Switches wie der Cisco Nexus 5500 können sowohl Ethernet- als auch FC- Datenverkehr umschalten und ermöglichen so in Zukunft eine größere Flexibilität mit einer Zwei-in-Eins-Lösung.

    Dünne Provisionierung

    Bei Verwendung der „Datei“ -Protokolle NFS und CIFS ist es sehr einfach, die Verwendung der Thin Provitioning-Technologie zu nutzen, indem der freigewordene Speicherplatz innerhalb der Dateisphäre zurückgegeben wird. Im Falle von SAN führt die Verwendung von ThinProvitioning jedoch zu der Notwendigkeit einer ständigen Kontrolle über den freien Speicherplatz, und die Freigabe von freiem Speicherplatz (der Mechanismus ist für moderne Betriebssysteme verfügbar ) erfolgt nicht „innerhalb“ derselben LUN , sondern wie innerhalb des Volumes, das diese LUN enthält . Ich empfehle, die NetApp Thin-Provisioned LUNs im Bereitstellungshandbuch für RHEL 6.2 zu lesen .

    ESXi-Host

    Отдавать гостевой ОС все ресурсы сервера не стоит, во первых гипервизору нужно оставить минимум 4ГБ ОЗУ, во вторых иногда наблюдается обратный эффект при добавлении ресурсов гостевой ОС, это нужно подбирать эмпирическим путём.
    Подробнее о настройках ESXi хоста для NetApp FAS.

    Гостевая ОС так и хост BareMetal Linux

    Ich möchte Ihre Aufmerksamkeit auf die Tatsache lenken, dass in den meisten Linux-Distributionen, sowohl als virtuelle Maschine als auch als BareMetal, der I / O-Planungsparameter auf nicht für FAS- Systeme geeignet eingestellt ist. Dies kann zu einer hohen CPU- Auslastung führen .
    Bild
    Beachten Sie die Ausgabe des Befehls top , die hohe CPU- Auslastung durch den Prozess dd , der im Allgemeinen nur das Speichersystem belasten sollte.

    Sammlung von Hoststatistiken

    Linux und andere Unix-ähnliche :

    Betrachten wir nun den Status des Festplattensubsystems auf der Hostseite
    
    iostat -dx 2 
    Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util 
    sdb               0.00     0.00    0.00  454.00     0.00 464896.00  1024.00    67.42  150.26   2.20 100.00 
    

    Achten Sie auf den hohen Wert von await = 150.26 ms . Diese beiden indirekten Anzeichen, hohe CPU- Auslastung und hohe Latenzen, lassen darauf schließen, dass das Betriebssystem und der Speicher für die Interaktion optimaler konfiguriert werden müssen . Es lohnt sich beispielsweise zu überprüfen, ob Multipasing, ALUA, bevorzugte Pfade und Warteschlangen auf dem HBA angemessen sind.

    Interpretation von iostat
    Weitere Details hier .
    IostatWindows analog
    rrqm / s (Die Anzahl der zusammengeführten Leseanforderungen in der Warteschlange pro Sekunde.) Lese-E / A pro SekundeLogicalDisk (*) \ Disk Transfers / Sek. = Rrqm / s + wrqm / s. Fügen Sie für Linux-Computer die Spalte rrqm / s hinzu und überspringen Sie LogicalDisk (*) \ Disk Transfers / Sek
    Wrqm / s (Die Anzahl der zusammengeführten Schreibanforderungen in der Warteschlange pro Sekunde.) Schreibe E / A pro SekundeLogicalDisk (*) \ Disk Transfers / sec = rrqm / s + wrqm / s. Bei Linux-Computern fügen Sie die Spalte wrqm / s hinzu, und LogicalDisk (*) \ Disk Transfers / sec überspringen
    R / s (Die Anzahl der Leseanforderungen, die pro Sekunde an das Gerät gesendet wurden.)Festplatte, liest / Sek
    W / s (Die Anzahl der Schreibanforderungen, die pro Sekunde an das Gerät gesendet wurden.)Festplatte, schreibt / Sek
    Rsec / s (Die Anzahl der pro Sekunde gelesenen Sektoren.) Sie müssen die Größe des Sektors kennen, normalerweise 512 Byte.Rsec / s * 512 =, "\ LogicalDisk (*) \ Disk, Read Bytes / sec",
    Wsec / s (Die Anzahl der Sektoren, die pro Sekunde geschrieben werden.) Sie müssen die Größe des Sektors kennen, normalerweise 512 Byte.wsec / s * 512 = "\ LogicalDisk (*) \ Disk Write Bytes / sec",
    Avgrq-sz (Die Anforderungsgröße in Sektoren.) Sie müssen die Größe des Sektors kennen, normalerweise 512 Byte.avgrq-sz - die durchschnittliche Größe des zu bedienenden Blocks - wird benötigt. Fügen Sie eine Spalte hinzu, die in Windows anhand anderer Parameter berechnet wird.
    Avgqu-sz (Die Anzahl der Anforderungen, die in der Warteschlange des Geräts warten.)"\ LogicalDisk (*) \ Avg., Disk Queue Length". Beim Lesen und Schreiben stellt sich heraus, dass dies nicht der Fall ist, aber das ist genug. Das Datensatz-Leseverhältnis wird durch "rrqm / s" mit "wrqm / s" oder "r / s" mit "w / s" berechnet. Das heißt, für Linux überspringen Sie :, LogicalDisk (*) \ Avg., Disk Länge der Lesewarteschlange, LogicalDisk (_Total) \ Avg., Länge der Festplattenschreibwarteschlange.
    Warten (Die Anzahl der Millisekunden, die erforderlich sind, um auf Anfragen zu antworten)Durchschnitt, Latenz, in Windows gibt dieser Wert nicht aus, er wird aus anderen Parametern berechnet, eine Spalte hinzufügen, der Parameter wird benötigt.
    Svctm (Die Anzahl der Millisekunden für die Wartung, Anforderungen, von Anfang bis Ende)Die Zeit, die benötigt wird, um die Anforderung abzuschließen. Fügen Sie eine separate Spalte für Linux-Computer hinzu, nützlich
    % Util (Der Prozentsatz der CPU-Zeit, in der Anforderungen ausgegeben wurden)"\ Processor (_total) \%, Processor Time", lass es auf die CPU laden (füge eine Spalte hinzu), daraus wird indirekt die Überlastung des Festplatten-Subsystems verstanden.



    Linux Aufzug

    Nun zu den Werten für Aufzug / Planer :

    Standardmäßig ist der Wert auf " Cfq" oder " Deadline" eingestellt :
    
    cat /sys/block/sda/queue/scheduler
    noop anticipatory deadline [cfq] 
    


    Es wird empfohlen, noop einzustellen :
    
    echo noop > /sys/block/sda/queue/scheduler
    cd /sys/block/sda/queue
    grep .* * 
    scheduler:[noop] deadline cfq 
    

    Um die Einstellungen dauerhaft zu machen, fügen Sie den Kernel-Boot-Parametern in der Datei /etc/grub.conf den Wert " elevator = noop " hinzu . Sie werden auf alle Block-Geräte angewendet. Oder fügen Sie das entsprechende Skript zu /etc/rc.local hinzu , um die Einstellungen für jedes einzelne Blockgerät flexibel festzulegen .
    Beispielskript zur Installation des Schedulers in noop for sdb
    Vergessen Sie nicht, sdb in den Namen Ihres Blockgeräts zu ändern
    cat /etc/rc.local | grep -iv "^exit" > /tmp/temp
    echo -e "echo noop > /sys/block/sdb/queue/scheduler\nexit 0" >> /tmp/temp
    cat /tmp/temp > /etc/rc.local; rm /tmp/temp
    



    Sysctl-Einstellungen mit virtuellem Speicher

    Es ist empfehlenswert , die optimalen Werte des virtuellen Speichers der Betriebssystemparameter sysctl experimentell auszuwählen : vm.dirty_background_ratio , vm.dirty_ratio und vm.swappiness .

    Sysctl-Werte überprüfen
    sysctl -a | grep dirty
    vm.dirty_background_bytes = 0
    vm.dirty_background_ratio = 10
    vm.dirty_bytes = 0
    vm.dirty_expire_centisecs = 3000
    vm.dirty_ratio = 20
    vm.dirty_writeback_centisecs = 500
    sysctl -a | grep swappiness
    vm.swappiness = 60
    



    Ein Kunde hatte also die optimalen Werte für RedHat Enterprice Linux 6 mit NetApp- Speicher mit SSD- Cache und FC 8G- Verbindung : vm.dirty_ratio = 2 und vm.dirty_background_ratio = 1 , wodurch die Host- CPU- Last erheblich reduziert wurde . Verwenden Sie das Dienstprogramm Linux Host Validator and Configurator , um die optimalen Linux- Hosteinstellungen zu überprüfen . Verwenden Sie zum Testen des Dienstprogramms SnapDrive unter Linux (oder anderen Unix-ähnlichen) Betriebssystemen den SnapDrive Configuration Checker für Unix . Weitere Informationen über die Auswahl der optimalen Parameter vm.dirty * finden Sie im Supporthier . Wenn Sie eine Oracle- Datenbank oder -Virtualisierung verwenden , wird empfohlen, in einem solchen Linux-Computer vm.swappiness = 0 festzulegen . Mit diesem Wert kann Swap nur verwendet werden, wenn der physische Speicher wirklich voll ist. Dies ist für solche Aufgaben am besten geeignet .

    Stellen Sie sysctl-Werte ein
    sysctl -w vm.dirty_background_ratio=1
    sysctl -w vm.dirty_ratio=2
    echo vm.dirty_background_ratio=1 >> /etc/sysctl.conf
    echo vm.dirty_ratio=2 >> /etc/sysctl.conf
    #for Guest VMs or Oracle DB
    sysctl -w vm.swappiness=0
    echo vm.swappiness=0 >> /etc/sysctl.conf
    #Reload data from /etc/sysctl.conf
    sudo sysctl –p
    



    E / A-Warteschlangengröße oder E / A-Warteschlangenlänge auf dem HBA

    Der Standardwert ist normalerweise 128 und muss manuell ausgewählt werden. Das Erhöhen der Warteschlangenlänge ist sinnvoll für zufällige E / A-Vorgänge, die viele Suchvorgänge auf dem Plattensubsystem generieren . Wir ändern es so:
    echo 100000  > /sys/block/[DEVICE]/queue/nr_requests
    Manchmal führt das Ändern dieses Parameters möglicherweise nicht zu Ergebnissen , z. B. bei InnoDB (aufgrund der Funktionen dieser Anwendung, die die Daten vor dem Schreiben selbst optimiert) oder wenn der Parameter bei der Arbeit mit SSD- Festplatten über den Standardwert erhöht wird (da dies nicht der Fall ist) Betrieb Scheibe der Such ).

    Gastbetriebssystem

    In einigen Fällen zeigt VMFS eine bessere Leistung als RDM . In einigen Tests mit FC 4G können Sie mit VMFS 300 MByte / s und mit RDM etwa 200 MByte / s erreichen .

    Dateisystem

    FS kann beim Testen der Leistung erhebliche Anpassungen vornehmen.
    Die FS- Blockgröße muss ein Vielfaches von 4 KB sein. Wenn wir beispielsweise eine synthetische Last ausführen, die der von OLTP generierten ähnlich ist , bei der die Größe der betriebenen Einheit im Durchschnitt 8 KB beträgt, setzen wir 8 KB. Ich möchte auch darauf hinweisen, dass die Implementierung des FS für ein bestimmtes Betriebssystem und eine bestimmte Version das allgemeine Leistungsbild erheblich beeinflussen kann. Also zum Schreiben von 10 MB in Blöcken von 100 Streams mit dem Befehl dd files aus der Datenbank in das UFS FS, das sich auf der über FC 4G mit dem FAS 2240- Speicher und 21 + 2-Platten gegebenen LUN befindetSAS 600 10k in einem Gerät zeigte eine Geschwindigkeit von 150 MB / s, während dieselbe Konfiguration, jedoch mit FS , doppelt so viel zeigte (in der Nähe des theoretischen Maximums des Netzwerkkanals) und der Noatime-Parameter die Situation überhaupt nicht beeinflusste.

    Noatime auf dem Host

    Auf Dateisystemebene können Sie den Parameter beim Mounten von noatime und nodiratime konfigurieren , wodurch die Zugriffszeit auf Dateien nicht aktualisiert werden kann, was sich häufig sehr positiv auf die Leistung auswirkt. Für FSs wie UFS, EXT3 usw. Für einen der Kunden hat die Installation von noatime beim Mounten des ext3-Dateisystems unter Red Hat Enterprise Linux 6 die Belastung der Host- CPU erheblich verringert .

    Ladetisch


    Für Linux - Maschinen müssen Sie erstellen die LUN ‚und wählen Sie die Festplattengeometrie :‚ die Linux ‘(für Geräte ohne xen) oder‚ xen ‘ , wenn dieser Mond Linux installiert wird die LVM aus der Dom0.

    Fehlausrichtung

    Für jedes Betriebssystem müssen Sie beim Erstellen einer LUN die richtige Geometrie in den Speichereinstellungen auswählen. Wenn die FS- Blockgröße falsch angegeben ist, die LUN- Geometrie falsch angegeben ist , der MBR / GPT- Parameter auf dem Host nicht richtig ausgewählt ist, werden wir bei Spitzenlasten Meldungen in der NetApp FAS-Konsole über ein bestimmtes " LUN- Fehlausrichtungs" -Ereignis beobachten . Manchmal werden diese Meldungen fälschlicherweise angezeigt. Wenn sie selten erscheinen, ignorieren Sie sie einfach. Sie können dies überprüfen, indem Sie den Befehl lun stats auf dem Speichersystem ausführen .

    NetApp Host Utilities

    Ignorieren Sie diesen Artikel nicht. Eine Reihe von Dienstprogrammen legt die richtigen Verzögerungen, die Warteschlangengröße auf dem HBA und andere Einstellungen auf dem Host fest. Installieren Sie die Host-Dienstprogramme nach der Installation der Treiber. Zeigt verbundene LUNs und deren detaillierte Informationen vom Speicher aus an . Die Dienstprogramme sind kostenlos und können von der Website des technischen Supports von netap heruntergeladen werden. Führen Sie nach der Installation das Dienstprogramm aus
    
    host_config <-setup> <-protocol fcp|iscsi|mixed> <-multipath mpxio|dmp|non> [-noalua]
    

    Es befindet sich unter
    / opt / netapp / santools /.
    Danach müssen Sie höchstwahrscheinlich den Host neu starten.

    NetApp Linux Forum

    Denken Sie daran, unter https://linux.netapp.com/forum nach weiteren Informationen zu suchen und Fragen zu stellen .

    Anwendungen


    Je nach Konfiguration, Protokollen, Workloads und Infrastruktur weisen Ihre Anwendungen möglicherweise verschiedene Optimierungsempfehlungen und Feinabstimmungen auf. Fordern Sie dazu den Best Practice Guide für die entsprechenden Anwendungen für Ihre Konfiguration an. Das häufigste kann sein


    Fahrer


    Denken Sie daran, die Treiber für Ihren HBA- Adapter zu installieren (sie für Ihren Kernel zu erstellen), bevor Sie das NetApp Host Utility installieren. Befolgen Sie die Empfehlungen zum Konfigurieren des HBA- Adapters. Häufig müssen die Warteschlangenlänge und das Zeitlimit geändert werden, um eine optimale Interaktion mit NetApp zu gewährleisten. Wenn Sie VMware ESXi oder eine andere Virtualisierung verwenden, vergessen Sie nicht, NPIV zu aktivieren, wenn Sie virtuelle HBA- Adapter in den virtuellen Maschinen weiterleiten müssen . Einige NPIV- basierte Adapter können mit QoS konfiguriert werden , z. B. die Qlogic HBA 8100-Serie .

    Kompatibilität


    Wenden Sie die Kompatibilitätsmatrix in Ihrer Praxis weitgehend an, um potenzielle Probleme in der Rechenzentrumsinfrastruktur zu reduzieren .

    Ich bin mir sicher, dass ich mit der Zeit etwas zu diesem Artikel über die Optimierung des Linux-Hosts hinzufügen werde. Schauen Sie also von Zeit zu Zeit hier vorbei.

    Bitte senden Sie Fehlermeldungen im Text an das LAN .
    Kommentare und Ergänzungen im Gegenteil bitte kommentieren

    Jetzt auch beliebt: