Sehr gute Erfahrungen mit SSD Samsung 840 PRO

Auf einem vorgestern eingerichteten Laptop unter Linux habe ich die eingebaute SATA3 HD gegen eine SSD ausgetauscht.

Gewählt hatte ich die “Samsung SSD 840 PRO” in der 256 GB-Variante. Animiert dazu hatte mich folgender Testbericht:

http://www.guru3d.com/articles_pages/samsung_840_pro_ssd_benchmark_review_test,16.html

Wie die dortigen Vergleiche zeigen, ist das Pro in der Datenträger-Bezeichnung durchaus bedeutsam, weil die Pro-Variante gegenüber der Basis-Variante nochmal deutliche Performance-Vorteile bringt.

Im BIOS muss man für den Betrieb der SSD das SATA-Interface auf AHCI umstellen.

http://wiki.ubuntuusers.de/SSD/Grundlagen

Optimierungstipps findet man z.B. hier:

https://sites.google.com/site/easylinuxtipsproject/ssd-in-opensuse
http://www.linuxbibel.org/ssd_optimieren.html
http://wiki.ubuntuusers.de/SSD/TRIM
http://www.pcwelt.de/ratgeber/Linux-Special-SSDs-unter-Linux-6593528.html
http://wiki.siduction.de/index.php?title=Solid_State_Disks_%28SSDs%29_unter_Linux_optimal_nutzen

Am wichtigsten erscheint es mir bei normaler Nutzung und in dem Fall, dass man keine weitere normale Festplatte verfügbar hat, die Option “noatime” für das “ext4”-Filesystem zu nutzen sowie regelmäßig händisch oder über cron den Befehl

fstrim -v /

abzusetzen. Logs im tempfs unterzubringen ist zwar nett, aber auch eine Übung, die im Ernstfall wertvolle Informationen kosten kann.

Erster Eindruck von der Performance
Ich wurde nicht entäuscht. Unter Opensuse 12.3 erlebte ich für eine normale Desktop-Konfiguration ohne Serverkomponenten

  • Shutdownzeiten deutlich unter 2 Sekunden
  • Bootzeiten im Anschluss an Grub 2 von unter 4,5 Sekunden (inkl. Hochfahren von KDM – also bis zum grafischen Login).

Da kommen meine als Raid 10 am 3ware-Controller konfigurierten SATA 2 Platten der Workstations nicht mit. Es fehlt ein Faktor 2 bei gleicher Konfiguration. Das setzt sich mit Faktoren von 1.6 bis 2.0 bei Tests mit “bonnie++” zu verschiedenen Lese- und Schreib-Vorgängen so fort.

Die Samsung SSD 840 Pro hält wirklich, was sie verspricht.

Fazit:
Wer seine Linux-Systeme richtig beschleunigen möchte, richte sich eine SSD des genannten Typs als Träger für die Systempartition ein.

Wenn man gegen SSD-Ausfälle gefeit sein möchte, kaufe man sich für etwa den gleichen Preis (rund 205 Euro) zwei “128 GB”-SSD-Platten des hier betrachteten Typs und fahre die im Raid 1 Verbund an einem passenden “SATA 3”-Controller. Andere erstrebenswerte Konfigurationen wie etwa Raid 10 wären für mich auf Basis von SSDs nicht erschwinglich.

User-Daten, Anwendungsdaten, Datenbanken, etc. und alles, wo ein hoher Schreibdurchsatz gegeben ist, lege man dagegen auf konventionellen Platten (in einem geeigneten, performancesteigernden Raid-Verbund) ab – schlicht um die Lebenszeit der SSD zu verlängern.

LSI/3ware – 3DM2-Update – Browser

Ich benutze schon seit langem LSI/3ware-Raid-Controller unter Opensuse. Dabei setze ich gerne das grafische Administrations-Tool “3DM2” für die Verwaltung der Controller-Einstellungen, evtl. Verify-Läufe etc. ein. Diese Tool ist eine Java-basierte Applikation für den Browser.

Seit etwa Ende 2009 gab/gibt es Probleme mit dem 3DM2-Tool in aktuellen Browsern wie Firefox, Chrome, Safari, MS IE9, Opera. Zumindest auf x86_64-Systemen. Das äußerte sich darin, dass der Standardaufruf

https://localhost:888

zu Fehlermeldungen wegen des selbst signierten Zertifikats führte und dass auch nach einem Akzeptieren des Zertifikats Netzwerkfehler hochkamen – vermutl. wegen eines falschen oder veralteten SSL-Algorithmus. Im Ergebnis wurde die 3ware-3DM2-Admin-Oberfläche nicht angezeigt.

Dies war auch unter der von LSI/3ware herausgegebenen “9.5.3_codeset”-SW-Paket-Version noch der Fall.

Ich hatte mir bis heute dadurch geholfen, dass ich für “3DM2” die Browser “Epiphany” oder “Konqueror” benutzte. Die erlaubten noch den Aufbau der Seiten. (Vielleicht weil hier laxer mit Sicherheitsanforderungen umgegangen wird ???)

Doch nun funktioniert die Sache mit einem aktuellen Codeset wieder. Heute habe ich mir jedenfalls das aktuelle “9.5.5_codeset”-SW-Paket von folgender Seite

http://www.lsi.com/channel/support/Pages/Download-Results.aspx?productcode=P00080&assettype=Software&component=Storage%20Component&productfamily=RAID%20Controllers&productname=3ware%209650SE-4LPML

heruntergeladen. Man bekommt dann ein ISO-Image-File auf die Platte. In meinem Fall auf ein aktuelles Opensuse 12.2 (x86_64)-System.

Das ISO-File mounted man dann (als root) direkt in Form eines “Loopback-Devices” (s. hierzu http://www.cyberciti.biz/tips/how-to-mount-iso-image-under-linux.html)

#   mount   -o   loop /extras/Updates/3ware/955_codeset/9.5.5.1-Codeset-Complete.iso   /mnt/

und startet dann mit

#   cd   /mnt/packages/installers/tools/linux
#   ./install.sh -i

die Installation. Man behält bei der entsprechenden Rückfrage am besten den Inhalt des Konfigurationsfiles unter
“/etc/3dm2/3dm2.conf” bei – sprich : man entscheidet sich für die Option, die das File unangetatstet lässt.

Nach dem Abschluss der Installation muss man den Service TDM2-Service neu starten.

# cd   /etc/init.d/
# ./tdm2   restart
redirecting to systemctl
redirecting to systemctl
Stopping 3ware DiskSwitch Daemon: done
redirecting to systemctl
Starting 3ware DiskSwitch daemon: done

Danach funktioniert der Aufruf von 3DM2 über https://localhost:888 auch unter Chromium/Chrome, Firefox und Opera wieder !

Opensuse – Fehlermeldung zu ata_piix

Auf meinem Laptop fiel mir nach ein paar Updates auf, dass folgende Botschaft gleich am Anfang des Bootvorgangs erscheint:

FATAL: Module ata_piix not found
FATAL: Error running install command for ata_piix

Faktisch geschieht dies bereits während des ersten Ladens der Module von der “initrd”.

Die Meldung hört sich beunruhigend an, sie es in meinem Fall aber nicht. Denn trotz der Meldung läuft auf meinem Laptop, den ich nun schon ein paar Jahre unter Opensuse betreibe, alles ganz normal. Was also ist der Hintergrund der Fehlermeldung?

Checkt man auf dem gebooteten System die geladenen Module, so findet man, dass ein Modul “ata_piix” tatsächlich nicht geladen ist.

lap3lux64:~ # lsmod | grep ata_piix
lap3lux64:~ #

Dennoch zeigt ein Blick in die System-Konfiguration mittels “hwinfo” oder Yast2’s “Hardware-Information” sehr schnell, dass für die Harddisk und auch ein an Bord befindliches DVD-Laufwerk der benötigte Treiber “ata_piix” eingesetzt wird:

lap3lux64:~ # hwinfo | grep ata_piix

   0170-0177 : ata_piix
   01f0-01f7 : ata_piix
   0376-0376 : ata_piix
   03f6-03f6 : ata_piix
   bfa0-bfaf : ata_piix
   14:   244245    0    IO-APIC-edge    ata_piix
   15:   223066    0    IO-APIC-edge    ata_piix
   ata_piix: /devices/pci0000:00/0000:00:1f.2
   ata_piix: module = ata_piix
i/o:0 0x0170 – 0x0177 (0x08) “ata_piix”
i/o:0 0x01f0 – 0x01f7 (0x08) “ata_piix”
i/o:0 0x0376 – 0x0376 (0x01) “ata_piix”
i/o:0 0x03f6 – 0x03f6 (0x01) “ata_piix”
i/o:0 0xbfa0 – 0xbfaf (0x10) “ata_piix”
irq:0 14 ( 244245) “ata_piix”
irq:0 15 ( 223066) “ata_piix”
   ata_piix: /devices/pci0000:00/0000:00:1f.2
   ata_piix: module = ata_piix
   E: DRIVER=ata_piix
<7>[ 0.846528] ata_piix 0000:00:1f.2: version 2.13
<6>[ 0.846545] ata_piix 0000:00:1f.2: PCI INT B -> GSI 17 (level, low) -> IRQ 17
<6>[ 0.846551] ata_piix 0000:00:1f.2: MAP [ P0 P2 IDE IDE ]
<7>[ 0.846596] ata_piix 0000:00:1f.2: setting latency timer to 64
<6>[ 0.846951] scsi0 : ata_piix
<6>[ 0.847068] scsi1 : ata_piix
Driver: “ata_piix”
Driver Modules: “ata_piix”
Driver: “ata_piix”, “sd”
Driver Modules: “ata_piix”
Driver: “ata_piix”, “sr”
Driver Modules: “ata_piix”
lap3lux64:~ #

Die Ursache dafür ist, dass man bei dem aktuellen Kernel 3.1.10-1.16, den Opensuse anbietet, das benötigte “ata_piix”-Modul nicht mehr extra laden muss. Es ist bereits in den Kernel einkompiliert. Dies erkennt man an der Konfigurationsübersicht für den aktuellen Kernel. Unter Opensuse findet man die entsprechende Datei unter dem Verzeichnis “/boot” :

Die Datei “boot/config-KERNELVERSION” – in meinem Fall “/boot/config-3.1.10-1.16-default” – enthält Informationen zur aktuellen Kernelkonfiguration, die die Opensuse-Leute für das System vorgesehen haben. U.a. findet man:

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SIL=m
CONFIG_SATA_SIS=m
CONFIG_SATA_SVW=m
nCONFIG_SATA_ULI=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m

Der Treiber ist also bereits in den Kernel intergriert und nicht als nachzuladendes Modul vorgesehen.

Zur Beseitigung der ata_piix-Fehlermeldung genügt es deshalb, das Treibermodul aus der Datei

/etc/sysconfig/kernel

zu entfernen. Betroffen ist die Zeile:

INITRD_MODULES=”ata_generic processor fan ata_piix”

aus der man den Eintrag “ata_piix” schlicht löscht.

Am besten macht man das unter Opensuse allerdings mit YasT2’s “Editor für /etc/sysconfig”, da dabei gleich auch noch die “initrd” neu erstellt wird. Siehe im sysconfig-Editor die Einstellungen unter

“System >> Kernel >> INITRD_MODULES”

.
Ansonsten muss man den Befehl “SuSEconfig” ausführen und “auch noch den Befehl mkinitrd” absetzen.

Bei den anschließenden Bootvorgängen ist die Meldung dann verschwunden.

Ich denke, das ganze “Problem” ist dadurch entstanden, dass das Linux-System auf dem Laptop mehrere Male auf die neueste Opensuse-Version upgegradet wurde. Die ursprünglichen Einstellungen zur “initrd” aus einer Zeit, als das ata_piix-Modul noch separat nachgeladen wurde, bleiben dabei offenbar unverändert.

Also keine Panik, wenn die obige Meldung auftaucht !

Opensuse 11.4, XEN, Nvidia, uvesafb

Wie bekommt man auf einem System mit einer Nvidia-Karte

  • Opensuse 11.4,
  • den zugehörigen XEN-Kernel
  • und einen graphischen Desktop mit 3D-Beschleunigung in der Dom0 des XEN-Systems

zum Laufen ?

Dieses Thema mag auf den ersten Blick fast esoterisch erscheien. Aber es gibt tatsächlich Entwickler für graphische Applikationen, die auf einem System virtualisierte Gäste laufen lassen und gleichzeitig in der Dom0 3D-Grafik betreiben wollen.

Siehe auch:
http://www.nvnews.net/vbulletin/showthread.php?t=60125

Ferner ist es so, dass man bei einem laufenden 3D-beschleunigten X-Server (z.B. in der Dom0) auch 3D-Output der virtuellen Maschinen beschleunigt darstellen kann: Das X-System beherrscht ja schon seit langem beschleunigten 3D-Ouput auch über ein Netzwerk.
Also kann man den graphischen Output der virtuellen Maschine über das (virtuelle gebridgte) Netzwerk des Hosts auch auf dem X-Server des Hosts beschleunigt darstellen. Bei einem leistungsstarken System geht das besser als man meinen möchte. Dazu mehr in einem künftigen Beitrag.

Ich habe selbst schon vor 3 Jhren bei meinen ersten Versuchen mit XEN Anläufe unternommen, um eine 3D-Beschleunigung mit Nvidia-Karten in der Dom0 irgendwie und halbwegs stabil hinzubekommen. Aber ich bin regelmäßig gescheitert. Nun hat sich inzwischen aber einiges getan (s. das oben angegebene Forum) und jetzt hat es endlich auch auf meinen XEN-Systemen unter Opensuse 11.4 so funktioniert wie ich mir das vorstelle. Meinen Lösungsansatz findet ihr im Original unter

http://www.nvnews.net/vbulletin/showthread.php?t=60125&page=10

als Beitrag des Users “moenchmeyer”.

Hier stelle ich als Ergänzung eine deutsche Variante der von mir angegebenen Schritte ins Netz.

Das Testsystem von mir hat einen Q9550 Quad Core Prozessor einen Raid10 Plattenverbund und eine Nvidia 9800 GTX+ Grafikkarte sowie 8 GByte RAM. Es wird als 64-Bit-System mit den entsprechenden x86_64-Kernelvarianten und Kernelmodulen betrieben.

Es sind zwei Hürden zu überwinden :

  1. Die Installation (inkl. Kompilation) des Nvidia-Treibers für den XEN-Kernel von Opensuse 11.4
  2. Der Einsatz von “uvesafb” statt des normalen Vesa Framebuffer-Verfahrens für die TTYs tty1 bis tty6 des XEN hosts.

Ohne Punkt 2 erhält man beim Umschalten von der graphischen Desktop-Umgebung, die typischerweise auf tty7 läuft, zu einem der textorientierten Terminals (tty1 bis tty6, tty10) nämlich nur schwarze Schirme. Und das mag zumindest ich nicht. Wie also kann man das vermeiden?

Schritt 1: Installation von Opensuse 11.4 mit den Xen und Virtualisierungspaketen (libvirt etc.)

Man installiere auf dem künftigen XEN-System Opensuse 11.4 zunächst ganz regulär. Vor dem eigentlichen Installationsvorgang wählt man bei der SW-PaketKonfiguration am besten gleich die Option “hostserver für Xen Virtual Machine” aus. Dann spart man sich die spätere Nach-Installation. Zusätzlich installiert man die notwendigen Compiler und Zutaten einer elementaren Entwicklungsumgebung sowie die Kernelquellen, um später Kernelmodule kompilieren zu können.

Schritt 2: Installationsversuch bzgl. des Nvidia-Kernel-Moduls nach dem Booten des Default-Kernels (nicht des Xen-Kernels)

Auf dem frisch installierten System werkelt der Nouveau-Treiber für Nvidia-Karten und erlaubt den Zugang zu einer graphischen Desktop-Umgebung. Im Gegensatz zum proprietären Nvidia-Treiber erlaubt dieser offene Treiber aber keine 3D-Beschleunigung. Daher holen wir uns nun den aktuellen Nvidia-Treiber (270.41.06) vom Nvidia-Portal.

Anschließend wechseln wir in den “runlevel 3”. Dort starten wir
im Verzeichnis mit dem Treiber die Installation:

sh NVIDIA-Linux-x86_64-270.41.06.run

Diese schlägt fehl – die Installationsroutine beklagt sich über den bereits laufenden Nouveau-Treiber. Die Frage, ob ein File zur Deaktivierung des Nouveau-Treibers installiert werden soll, beantworten wir positiv.

Schritt 3: Deaktivierung von KMS und Installation des Nvidia-Kernel-Moduls für den Default-Kernel (nicht Xen-Kernel)

Wir deaktivieren nun KMS – z.B. mit Hilfe von YAST und des dortigen Editors für die Files in “/etc/sysconfig”. Wir setzen die Option “NO_KMS_INITRD” unter “system > kernel” auf “yes”. (Alternativ kann man den Eintrag auch direkt im File “/etc/sysconfig/kernel” editieren.)

Anschließend führen wir einen Reboot in den Runlevel 3 durch. Dabei setzen wir im Menü des Grub Bootloaders neben “linux 3” noch den Parameter “nomodeset” – dann sind wir hinsichtlich der Deaktivierung von KMS auf der sicheren Seite.

Jetzt steht einer erfolgreichen Installation des NvidiaTreibers nichts mehr im Wege. Wir führen sie durch, wechseln danach in den Runlevel 5 und testen das korrekte Arbeiten der 3D-Beschleunigung in unserer grafischen Desktop-Umgebung über “glxinfo” oder die Einstellungen in der Applikation “nvidia-settings”. Natürlich können wir auch mal “glxgears” staren oder einen 3D-Effekt des KDE-Desktops anschalten.

Damit haben wir uns von der Funktionstüchtigkeit des Nvidia-Treibers für den normalen Kernel des Opensuse 11.4-Systems überzeugt. Jetzt kann man auch die Pakete für den Nouveau-Treiber deinstallieren – wenn man will.

Schritt 4: Booten des XEN-Kernels und Installation des Nvidiatreibers in der Dom0
Wir rebooten das System. Im Grub-Menü wählen wir nun aber die Option für den XEN-Kernel und geben erneut “linux 3” als Option an, um in den Runlevel 3 zu gelangen. Ein Booten in den Runlevel 5 würde scheitern, da der Nvidia-Treiber bislang nicht für den XEN-Kernel kompliert wurde.

Im Runlevel 3 führen wir daher die Installation des Nvidia-Treibers erneut durch – diesmal aber mit einer speziellen Art der Kompilation:

cd Your_Directory_With_THE_Nvidia_Driver
export IGNORE_XEN_PRESENCE=1 SYSSRC=/usr/src/linux-2.6.37.6-0.5 SYSOUT=/usr/src/linux-2.6.37.6-0.5-obj/x86_64/xen

sh ./NVIDIA-Linux-x86_64-270.41.06.run

Die Environment-Variablen IGNORE_XEN_PRESENCE, SYSSRC und SYSOUT werden von der Installationsroutine ausgewertet: Die Präsenz des XEN-Kernels wird ignoriert, die Kompilation erfolgt gegen die Sourcen und Einstellungen des Standard-Kernels – der resultierend Output (das Modul) wird aber gem. der Vorgaben für den XEN-Kernel gelinkt und installiert.

Die Versionsangaben in den obigen Statements müssen ggf. an die tatsächlichen Verhältnissen auf dem System angepasst werden. Sie gelten wie angegeben nur für eine Opensuse 11.4 Installation ohne Kernel-Updates.

Nun haben wir ein geeignetes und bereits geladenes Nvidia-Kernelmodul in der Dom0.

Schritt 5: Starten des X-Servers durch Wechsel in den Runlevel 5
Wir wechseln nun in den Runlevel 5 (init 5). Der XServer sollte anstandslos auf dem tty7 starten. Wir können uns dort einloggen und uns von der Funktionstüchtigkeit der 3D-Beschleunigung überzeugen. Damit ist die erste Hürde für den XEN-Kernel genommen.

Unglücklicherweise hat die Sache einen gravierenden Makel:

Ein Wechsel von der graphischen Oberfläche zu einem der textorientierten Terminals tty1 bis tty6 führt zu schwarzen Bildschirmen. Hier lernen wir gerade die 2te Hürde kennen: Die Ausgabe des angesprungenen Terminals wird nicht auf dem Schirm dargestellt und ist somit nicht sichtbar – obwohl die Terminals als Prozesse faktisch aktiv sind und sogar auf Tastatureingaben reagieren. So ist ein Wechsel zum grafischen tty7 jederzeit durch CTRL ALT F7 oder durch ein Einloggen im Blindflug und anschließendes Tippen von “chvt 7” möglich.

Schritt 6: Prüfe die
Existenz des Moduls “uvesafb”

Wieder in unserer grafischen Umgebung angelangt, überzeugen wir uns davon, dass das Modul “uvesafb.ko” im Verzeichnis “/lib/modules/2.6.37.6-0.5-xen/kernel/drivers/video” vorhanden ist.

Opensuse’s XEN-Kernel ist zusammen mit diesem Modul kompiliert und installiert worden. Das Modul sollte also an seinem Platz zu finden sein. Wenn nicht, bleibt leider nichts anderes übrig, als selbst den Kernel zusammen mit diesem Modul neu zu konfigurieren, zu kompilieren und zu implementieren.

Schritt 7: Installation von “v86d”
“uvesafb” benötigt für seinen Einsatz zwingend den sogenannten Helper Daemon “v86d”. Dieser Daemon ermittelt Daten zum Framebuffer System der Grafikkarte und den Fähigkeiten des Schirms. Ohne “v86d” läuft “uvesafb” nicht !

Leider gibt es zu “v86d” kein geeignetes RPM-Paket, das sich unter Opensuse 11.4 installieren ließe. Zumindest habe ich keines gefunden.

Also müssen wir uns die Sourcecodes besorgen – und zwar von folgender Adresse:

http://dev.gentoo.org/~spock/projects/uvesafb/

Wir laden uns das Archiv “v86d0.1.10.tar.bz2” herunter und expandieren es in einem Verzeichnis unserer Wahl. Wir wechseln dorthin und führen dann die Stadardschritte “./configure” und “make” durch. “./configure” ergänzen wir dabei um die Option “–with-x86emu”.

Die Kompilation und das Linken sollten problemfrei vor sich gehen. Das resultierende Executable “v86d” kopieren wir dann als root in das Verzeichnis “/sbin/”.

Schritt 8: Identifizieren möglicher “uvesafb”-Modes”
Wir informieren uns über mögliche “uvesafb”-Modes durch Absetzen des Befehls

cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes

an irgendeinem Pseudo-Terminal der grafischen Oberfläche.

Schritt 9: Konfigurationsdatei für das “uvesafb”-Modul
Als root erzeugen wir nun ein File “uvesafb.conf” im Verzeichnis “/etc/modprobe.d/”. Wir legen dann den künftig von uns gewünschten “uvesafb”-Modus für die TTYs – z.B. den Modus 1280×800-32 – fest, indem wir folgende Zeile in die Datei einfügen:

options uvesafb mode_option=1280×800-32 scroll=ywrap

Schritt 10: Eliminieren aller Vesa “vga”-Parameter aus der Bootloader-Konfiguration
Als nächstes ändern wir unsere Grub Bootloader-Konfiguration. Dazu könen wir Yast benutze oder aber die Konfigurationsdateien unter “/boot/grub” auch direkt editieren:

Wir eliminieren aus den Zeilen, die den Grub-Eintrag für das Booten des XEN-Kerels beschreiben, alle “vga”-Parameter – etwa “vga=mode-0xnnn” oder “vga=0xnnn”. “nnn” steht hier für den bei der Installation des SUSE-Systems festgelegten Standard VESA Framebuffer Modus für die TTYs.

Diese Entfernung der vga-Paramter ist ein sehr wichtiger Schritt: Die Vesa-Modes sind mit den “uvesafb”-Modes nicht kompatibel. Ein Starten der Standard-Vesa-Modes würde später ein erfolgreiches Laden des “uvesafb”-Moduls und ein Setzen des gewünschten “uvesafb”-Modus verhindern! Das Standard Vesa Setup ist nicht mit “uvesafb” verträglich !

Schritt 11: Erneutes Booten des XEN-Kernels und Laden des “uvesafb”-Moduls
Wir booten den XEN-Kernel erneut in den Runlevel 3. Da wir die vga-Optionen eliminiert haben, erschienen die Boot-Meldungen nun natürlich in der wenig ansehnlichen Terminal-Auflösung von 80×25 Spalten/Zeilen. Davon lassen wir uns aber nicht abschrecken, denn gleich werden wir unseren “uvesafb”-Modus anschalten.

Im Runlevel 3 loggen wir uns als root ein und versuchen dann, das “uvesafb”-Modul zu laden:

modprobe uvesafb

Das Terminal-Layout sollte sich nun deutlich zum Besseren ändern. Zur Sicherheit (oder im Fehlerfall zur Analyse) sehen wir uns nun die letzten Meldungen in “/var/log/messages” zum Laden des Moduls an. “uvesafb” sollte nicht nur geladen worden sein – der ”
v86d”-Daemon sollte relevante Information zur Vesa-Implementierung der Graka und zu Schirm verraten haben. Ferner sollte der Speicherpunkt für den Modus gesetzt worden sein.

May 20 17:24:50 xen kernel: [ 27.172094] uvesafb: NVIDIA Corporation, G92 Board – 03910050, Chip Rev , OEM: NVIDIA, VBE v3.0
May 20 17:24:50 xen kernel: [ 27.288417] uvesafb: VBIOS/hardware supports DDC2 transfers
May 20 17:24:50 xen kernel: [ 27.445892] uvesafb: monitor limits: vf = 75 Hz, hf = 94 kHz, clk = 210 MHz
May 20 17:24:50 xen kernel: [ 27.446342] uvesafb: scrolling: redraw
May 20 17:24:50 xen kernel: [ 27.838652] Console: switching to colour frame buffer device 160×64
May 20 17:24:50 xen kernel: [ 27.870389] uvesafb: framebuffer at 0xf7000000, mapped to 0xffffc90005980000, using 14336k, total 14336k
May 20 17:24:50 xen kernel: [ 27.870390] fb0: VESA VGA frame buffer device

Durch “CTRL ALT Fx” probieren wir nun, ob wir zwischen den TTYs tty1 bis tty6 hn und her wechseln können und das alle Terminals sich im gleichen “uvesafb”-Modus präsentieren.

Schritt 12: Wechsel zwischen der 3D-beschleunigten grafischen Oberfläche der Dom0 und den TTYs im Framebuffer-Modus
Abschließend starten wir nun den Runlevel 5, loggen uns in die grafische Desktop-Umgebung ein, die ja wegen des Nvidia-Treibers 3D-beschleunigt ist. Dort probieren jetzt einen Wechsel zu den anderen TTYs – z.B. zum Konsolen-Terminal tty1. Das sollte nun anstandslos klappen – der Output des Terminals tty1 muss sichtbar sein (im gewählten “uvesafb”-Modus). Auch eine Wechsel zurück zum tty7 sollte nun problemfrei funktionieren.

Damit haben wir unser Ziel erreicht. In der XEN Dom0 von Opensuse 11.4 läuft nun der prorietäre Nvidia-Treiber und verhilft uns zum Genuß einer grafischen Oberfläche mit 3D-Beschleunigung. Zudem können wir den uvesafb-Framebuffer-Modus unserer anderen TTYs über eine Konfigurationsdatei kontrollieren und wie gewohnt zwischen allen Terminals hin und her wechseln.

Bleibt nur noch, den Bootvorgang in den Runlevel 5 durch Manipulation entsprechender Startup-Skripts zu automatisieren. Wir müssen eigentlich nur dafür sorgen, dass das “uvesafb”-Modul vor dem Starten des X-Servers geladen wird. Das führen wir hier aber nicht weiter aus, sondern überlassen es dem Leser, das durch ein entsprechendes Skript unter /etc/init.d/rc5d hinzubekommen.

Nützliche Links:
https://wiki.archlinux.org/index.php/Uvesafb
http://dev.gentoo.org/~spock/projects/uvesafb/

Viel Spaß nun mit XEN und einer grafischen Desktopumgebung der Dom0, bei der auch 3D-Effekte und 3D-Programme hardware-beschleunigt laufen.

9650SE-4LPML – ein paar Einstellungen

Wenn man mit einer oder mehreren VMware-Workstation unter Linux hantiert, ist man froh über einen guten I/O. Gestern hat mich jemand in diesem Zusammenhang auf meine Erfahrungen mit 3ware-Controllern angesprochen.

Pauschal konnte und kann ich darauf nicht antworten – man müsste für eine solide Einschätzung systematische Vergleiche mit anderen Controllern durchführen. Dazu fehlen mir im Moment schlicht die Ressourcen. Es gibt aber interessaante Diskussionen im Internet. Ich empfehle den folgenden Beitrag

http://makarevitch.org/rant/raid/

Siehe auch die dortigen Links mit wirklich interessanten Statements und Erfahrungen zu 3ware-Controllern unter Linux. Hochinteressant finde ich vor allem die Vergleiche mit SW-Raid-Konfigurationen unter Linux, die mich ab und zu doch an meinen Investitionen in HW-Raid für Desktops zweifeln lassen.

Dennoch und aus dem Bauch heraus: Meine Erfahrungen sind im Mittel nicht schlecht, aber gerade mit laufenden VMware-Workstations wird der Platten I/O auf meine Opensuse Kisten bisweilen für kurze Momente zu einem echten, spürbaren Engpass. Zumindest, wenn man sich nicht ein wenig um die (begrenzten) Einstellmöglichkeiten des Controllers und auch des Linux-Systems kümmert.

Aufgefallen ist mir in der Praxis auch, dass auf meinen Opensuse-Systemen mit Quadcore-Prozessoren unter Last irgendwie immer (oder vor allem) der erste Core hohe WAIT I/O-Werte aufweist. Ich gehe mal davon aus, dass die 3ware-Treiber in Kombination mit dem Kernel den Controllerzugriff und den Datentransfer über genau einen Core handhaben. Auch dazu gibt es Hinweise in einschlägigen Diskussionen im Internet.

Der von mir auf den Desktop-Systemen verwendete Controller “9650SE-4LPML” ist ferner nicht ein System, bei dem man die Performance über große Raid-Stapel mit 12 oder 24 Platten hochziehen könnte. Mit 4 Platten sind die Möglichkeiten halt begrenzt.

Also fängt man an, ein wenig herumzuprobieren und vor ein paar Monaten habe ich tatsächlich mal ein wenig Zeit investiert, um mir mit “Bonnie++” verschiedene Konfigurationen anzusehen. Allerdings nur mit EXT3/Ext4 als Filesystem. Wenn ich auf dieser Basis Empfehlungen geben sollte, dann wären es folgende:

1) 4 Platten – Raid 10

2) Wenn man es sich leisten kann : Eher kein LVM einsetzen.

3) Controller-Parameter: Read-Cache auf “Intelligent” setzen und Write-Cache aktivieren (Battery Unit zur Vermeidung von Datenverlusten/Inkonsistenzen einkalkulieren). StorSave auf “Balance” oder “Performance” setzen. Verwendung von “Queuing” (NTQ Feature der Platten, wenn vorhanden) anschalten.
(Zum Einstellen von Controller-Eigenschaften kann man übrigens gut das übersichtliche “3DM2” benutzen.)

4) Linux-Einstellungen – z.B. für ein Raid-Device, das unter “/dev/sda” anzusprechen ist:

echo “512” > /sys/block/sda/queue/nr_requests

und danach (!):

blockdev   −−setra 16384 /dev/sda

5) VMware-Workstation (konfiguriert für 2 CPU-Cores eines Quad-Core-Systems):
Zuweisung des “vmware-vmx”-Prozesses an zwei andere Prozessor-Cores als den ersten, auf dem zumeist der I/O kontrolliert wird. Also z.B.:

taskset -pc 2,3 <pid des vmware-vmx-Prozesses>

Testet man die Performance unter diesen Bedingungen etwa mit zwei Raid 1 Units, die bei mir unter Linux als “/dev/sda” und “/dev/sdb” erscheinen, so erhält man mit Bonnie++ recht gute Werte für sequentielles Lesen und Schreiben (ca. 10% unter den theroretischen Maximalwerten der Platten). Aber es lohnt sich, auch andere Parameter-Werte – vor allem für blockdev – unter Linux auszuprobieren. Hier konnte ich durchaus messbare Unterschiede feststellen. Hat man gute Werte gefunden, hinterlegt man sich die Einstellungen in einem kleine Startup-Script.
Der Wechsel auf Raid 10 führt dann nochmals zu einer signifikanten Steigerung der I/O-Werte.

Mit unterschiedlichen Schedulern habe ich auch rumgespielt. Irgendwie erschienen mir die Unterschiede aber nicht so signifikant zu sein.

Ich hoffe, ein paar von den Hinweisen helfen auch anderen weiter.