"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

lvm oder ext3 "write cache" enablen?

Oculus 09.09.2009 - 19:20 4664 20
Posts

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Ich hab eine etwas gefinkeltere Anforderung:

Linux System auf IBM HS21 Blade mit einer einzelnen SAS-Disk.
Die HS21 Blades haben kein Batterypack am Raid-Controller und somit auch keinen Write Cache, was eine extrem schlechte Write-Performance bei mehreren parallelen I/Os bedeutet.
Es gibt die Batterypacks auch nicht als H/W Option (anscheinend).

Wie könnte man hier jetzt einen Software-Write-Cache implementieren?
Datenkonsistenz ist mir Schnuppe, die lokale Disk wird nur als cache verwendet.

Sowas müsste sich doch über LVM oder vielleicht direkt über ext3 machen lassen...

Kennt hier jemand eine Möglichkeit dafür?

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Da wirst du wahrscheinlich kein Glück haben. Diese ganzen Synchronisationspunkte und Barriers u. wwi noch alles sind fix verdrahtet und nicht ausschaltbar. Ich hätte das auch schon oft ganz gern gehabt, aber mir ist kein Weg bekannt, der dorthin führt.

Jedenfalls ist die Geschichte auf SAS-Controllern ohne Battery Cache zum Einschlafen lahm.

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11899
ext3 ist vielleicht nicht das optimale FS fuer deine Zwecke. Je nachdem wie viele Daten anfallen, ist vielleicht auch ein tmpfs moeglich?

Ansonsten wuerde ich an deiner Stelle mal einen Blick auf XFS werfen, und mir die Beschreibung der Tunables in /proc/sys/vm/ auf http://www.linuxinsight.com/proc_sys_hierarchy.html ansehen. Vielleicht ist was dabei, das dir bei deinr Sache hilft.

Software Writecache per se ist das zwar alles keiner, aber die Performance kannst du so ziemlich wahrscheinlich verbessern.

shadowman

OC Addicted
Registered: Oct 2000
Location: Feldkirchen
Posts: 1612
Hat sich zwar schon erledigt, aber kann man beim Controller den Write Cache wirklich nicht trotzdem andrehn? Bei allen Controllern dich ich bis jetzt gesehn habe wars auch ohne Batterie möglich. Es gibt zwar ne Warnung aber der Cache ist einschaltbar.

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11899
Das ist allerdings eine Frage des Controllertreibers; keine des Dateisystems oder des Volume Managers.

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Ich vermute mittlerweile, dass der Controller nicht mal einen Cache hat.
Konfigurieren kann man jedenfalls überhaupt nix

Ich hab einen mehr oder weniger Workaround gefunden:
Server als VM unter Xen laufen lassen, Storage Repository des XenServers zur Gänze einer FreeNAS VM zuweisen, am XenServer ein iSCSI Repository definieren (Target ist FreeNAS) und die VHD der eigentlichen VM auf dieses iSCSI Repository ablegen.

Eigentlich vollkommen sinnlos, aber durch das Burst-Caching von FreeNAS werden Random-I/Os überraschenderweise gut abgefangen.
Die Performance ist also subjektiv besser.
Eine wasserdichte Lösung ists aber auch net... trotzdem sehr spannend :)

Perfekt wäre halt eine iSCSI-Target VM, die z.B. 512mb RAM als I/O Cache verwenden kann. Also jeglichen I/O bündeln/reordern und (halbwegs) sequentiell auf die Disk schreiben.
Aber sowas wirds fertig net geben...

Leider Gottes kann ich die HS21 nicht austauschen...
Bearbeitet von Oculus am 12.09.2009, 21:47

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Du kannst die iSCSI parameter natürlich per hand tunen. Ich bin mir nicht sicher ob FreeNAS openiscsi oder das enterprise-iscsi-target verwendet, aber in beidem sollte ein tuning per Hand natürlich möglich sein. Außerdem sind 512MB buffer am iSCSI target uU nicht optimal. Verwendest du trunking/bonding und multi-path und eigenes VLAN oder eigenes LAN für die iSCSI SAN-Anbindung? Oder ist das ein rein virtuelles setup? Meiner Erfahrung nach reagieren viele iSCSI initiators sehr empfindlich auf disconnects und connection losses; oftmals ist das FS nach so einem Vorfall ziemlich kaputt.

Schon mal mit nilfs2[1] als filesystem versucht? Das bläst so ziemlich alles weg wenn es um write-performance geht (btrfs, ext4, xfs, reiser3, etc.). Beim letzten USENIX Storage workshop gabs schöne Messungen[2]. Nilfs2 ist ein log-structured-FS welches sich vor allem zum Ziel gesetzt hat seeks zu vermeiden und alle writes so gut wie möglich sequentiell zu erledigen. Seit 2.6.30 in mainline, fixes und dergl. in 2.6.31. Außerdem bietet es continuous snapshotting in O(1) Aufwand --- also auch sehr interessant am server.

[1]http://www.nilfs.org/en/about_nilfs.html
[2]http://www.usenix.org/event/lsf08/tech/shin_SSD.pdf
Bearbeitet von SYSMATRIX am 14.09.2009, 01:53

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Nur so am Rande erwähnt: ich bin auch von der Write-Performance von ZFS auf OpenSolaris ziemlich begeistert...

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Zitat von SYSMATRIX
Du kannst die iSCSI parameter natürlich per hand tunen. Ich bin mir nicht sicher ob FreeNAS openiscsi oder das enterprise-iscsi-target verwendet, aber in beidem sollte ein tuning per Hand natürlich möglich sein. Außerdem sind 512MB buffer am iSCSI target uU nicht optimal. Verwendest du trunking/bonding und multi-path und eigenes VLAN oder eigenes LAN für die iSCSI SAN-Anbindung? Oder ist das ein rein virtuelles setup? Meiner Erfahrung nach reagieren viele iSCSI initiators sehr empfindlich auf disconnects und connection losses; oftmals ist das FS nach so einem Vorfall ziemlich kaputt.

Schon mal mit nilfs2[1] als filesystem versucht? Das bläst so ziemlich alles weg wenn es um write-performance geht (btrfs, ext4, xfs, reiser3, etc.). Beim letzten USENIX Storage workshop gabs schöne Messungen[2]. Nilfs2 ist ein log-structured-FS welches sich vor allem zum Ziel gesetzt hat seeks zu vermeiden und alle writes so gut wie möglich sequentiell zu erledigen. Seit 2.6.30 in mainline, fixes und dergl. in 2.6.31. Außerdem bietet es continuous snapshotting in O(1) Aufwand --- also auch sehr interessant am server.

[1]http://www.nilfs.org/en/about_nilfs.html
[2]http://www.usenix.org/event/lsf08/tech/shin_SSD.pdf

ist handelt sich im Moment um ein rein virtuelles Setup.
Also iSCSI Target und Initiator am selben Virtualisierungshost.

Dieses nilfs2 klingt sehr vielversprechend, sequentielle Writes würden bei dieser Hardware ja weniger ein Problem sein.
Danke für den Input!

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Wenn du noch ein spare blade hast mit gleicher config und mal Zeit hast, würds mich auch sehr interessieren!

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Zitat von Ringding
Nur so am Rande erwähnt: ich bin auch von der Write-Performance von ZFS auf OpenSolaris ziemlich begeistert...
Kann ich mir gut vorstellen;

Ich kenn die Demos, die Doku, und habs mal in einer KVM instanz (virtio) ausprobiert und fands sehr nice eigentlich. Volume management, multi device und filesystem management in einem sind ein Traum! Schau dir mal den SSD FS performance link aus meinem vorherigem post an, nilfs2 schlägt sogar btrfs um einen absolut beachtenswerten Betrag und btrfs soll ZFS ja wirklich Konkurrenz machen. Sind grad spannende Zeiten für FS, besonders unter Linux.


Netter read ZFS "vs" btrfs: http://lwn.net/Articles/342892/

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
kleines Update:
nachdem wir jetzt die fixe Aussage seitens IBM haben, dass sich die HS21 nicht mit einem WriteCache ausstatten lassen, gehn wir jetzt einen anderen weg.

XenServer supported ja keine anderen Filesysteme (leider), er formatiert die Volumes immer mit seinem LVM+ext3 oda was auch immer das ist...
Deshalb setz ich jetzt mal auf OpenFiler auf einem anderen Server inkl. Raid0.
Bin grad beim Testen, aber es sieht schonmal ganz gut aus.

Somit können wir die HS21 nicht zu 100% verwerten (Zusatzkosten für iSCSI Target Server), dafür ist das Projekt gerettet :D

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Warum nicht selbst KVM drauf fahren? Ich bin alles andere als ein Fan von RHEL -- aber ich verstehe den Bedarf nach einem zertifiziertem setup -- RHEL 5.4 soll ein Traum sein was KVM angeht. (Anm.: Verwende einige Server mit KVM hypervisor und allen möglichen guests allerdings auf lenny und jaunty server).

Die HS21 sollen ja sowieso nur von der SAS platte booten und den rest von einem FC o. iSCSI SAN fahren von der Konzeption her -- zumindest verstehe ich alle Blade-Angebote mit nur einem SAS Schacht als genau dafür gedacht. Gerade im Blade-Sektor seh ich eigentlich nur SAN basierte setups.

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
jop, normalerweise schon...
aber wenns um große Serverfarmen geht, wird gespart, wie nur möglich.
Deshalb so low-cost wie nur geht :D

Fürs Raid-Setup im Endausbau muss ich noch genau rechnen... 120VMs müssen Cachen, das sollten schon einige Spindeln sein, sonst wird das nix...

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Ein shared GFS2 mit io fencing und allem drum und dran auf einem sinnvollem RAID10 mit 2x24 disks ist da sicher nicht verkehrt. Und du designst dieses Ding?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz