Hallo zusammen,
als Datendisk moechte ich in einer CentOS-Workstation (CentOS 5.6) eine SSD einbauen (Intel SSD 320 Serie, 120 GB). Mir ist aber nicht ganz klar, welches Filesystem dafuer am besten geeignet ist und mir ist ueberhaupt nicht klar, wie die Sache mit TRIM oder anderen Wartungskommandos funktionieren soll:
Ist ext4 das Filesystem der Wahl fuer SSDs oder ist ext3 genau so gut geeignet oder ungeeignet?
Muss ich TRIM oder irgendwelche anderen Wartungskommandos regelmaessig per Cronjob ausfuehren lassen oder erledigt das der Kernel automatisch fuer mich?
Gerne nehme ich auch lmgtfy-Links entgegen :-)
Gruss und Danke
frank
Am Mon, 27 Jun 2011 15:48:11 +0200 schrieb Frank Thommen frank.thommen@embl-heidelberg.de:
als Datendisk moechte ich in einer CentOS-Workstation (CentOS 5.6) eine SSD einbauen (Intel SSD 320 Serie, 120 GB). Mir ist aber nicht ganz klar, welches Filesystem dafuer am besten geeignet ist und mir ist ueberhaupt nicht klar, wie die Sache mit TRIM oder anderen Wartungskommandos funktionieren soll:
Ist ext4 das Filesystem der Wahl fuer SSDs oder ist ext3 genau so gut geeignet oder ungeeignet?
Angeblich sollen nur in ext4fs und in btrfs Unterstützung für TRIM da sein. btrfs wird AFAIK erst unter RHEL-6 und Derivaten unterstützt, also nicht unter aktuellem CentOS-5.6. Offiziell unterstützt wird es aber wohl auch bei RHEL erst ab nächstem Jahr werden.
btrfs hat den konzeptionellen Vorteil, dass es intern so arbeitet, wie SSD es am liebsten mögen, nämlich mit "continuous snapshots". Es gibt aber seitens Linux-Kernel bislang keine regulär-generelle Unterstützung für SSD, weil die Realisierung von SSD nach wie vor zuviele Hersteller-Spezifika aufweisen. Solange sich die Industrie da noch auf nix geeinigt hat, ist man wohl für eine optimale Anbindung auf proprietäre Lösungen bis hin zu filecards angewiesen.
Muss ich TRIM oder irgendwelche anderen Wartungskommandos regelmaessig per Cronjob ausfuehren lassen oder erledigt das der Kernel automatisch fuer mich?
Bei ext4fs gibt es dafür einen Parameter. Ansonsten ist die Variante "cronjob" wahrscheinlich suboptimal, aber die beste verfügbare Lösung. Ansonsten ist es sicher eine gute Idee, die genutzte Plattenkapazität gering zu halten.
Ein weiteres Problem stellt sich a.) bei diversen Host-Adaptern, insbesondere bei SAS-Typen sowie b.) beim Wunsch, via LVM und/oder md mehrere SSDs zu striped-volumes oder Soft-RAIDs zu bündeln. Bislang habe ich jedenfalls zu b.) keine Aussage gefunden, dass hier ein TRIM durchgereicht würde, zumal er ja auch sinnlos wäre, weil hier ein via LV oder md eingebundenes filesystem ja eigentlich gar nicht wüsste, wann die Teil-Devices (also die SSDs) ihr Trim brauchen könnten - insbesondere, wenn auf denselben Devices weitere filesystems laufen, die vielleicht grad gar keine Zusatzlast durch einen Trim brauchen können. Zu a.) gibt es wiederum häufig das Problem, dass sie selbst Platten/SSD, die als einzelne Drives einem logischen/virtuellen Laufwerk zugeordnet werden, nicht als SSD erkennen. Kann man gut dran erkennen, wenn z.B. Funktionen aus der SMART-Familie keine weiteren Erkenntnisse liefern. Bei reinen SATA-Host-Adaptern gibt es dieses Problem seltener, aber dafür haben die meist auch nur wenige Ports und Multiplexer a la SAS kennen die eh nicht.
Eine Alternative könnten derzeit RAID-Adapter von LSI oder Adaptec sein, an die man neben einem Bündel von SAS/SATA-Platten auch noch einige SSD-Platten anschließen kann. Dort wird dann in der Firmware eingestellt, welches SSD-Platten sind und die werden dann als eine Art Cache benutzt. Ist dann aber alles proprietär und wie gut es funktioniert, weiß ich auch nicht.
BTW: Wenn Du eine gut funktionierende Lösung finden solltest, wie man mit Hilfe von SSD ein High-Performance-DBMS hinbekommt, das auch tablespace von 400 GB netto noch rasant verarbeiten kann, dann wäre ich für jeden Hinweis dankbar. Bislang habe ich nur das Angebot einer Appliance von Sun, aber die fängt bei 1 TB an und ist auch ansonsten viel zu teuer.
Tobias Crefeld wrote:
Am Mon, 27 Jun 2011 15:48:11 +0200 schrieb Frank Thommen frank.thommen@embl-heidelberg.de:
als Datendisk moechte ich in einer CentOS-Workstation (CentOS 5.6) eine SSD einbauen (Intel SSD 320 Serie, 120 GB). [...]
[...]
Muss ich TRIM oder irgendwelche anderen Wartungskommandos regelmaessig per Cronjob ausfuehren lassen oder erledigt das der Kernel automatisch fuer mich?
Bei ext4fs gibt es dafür einen Parameter. Ansonsten ist die Variante "cronjob" wahrscheinlich suboptimal, aber die beste verfügbare Lösung. Ansonsten ist es sicher eine gute Idee, die genutzte Plattenkapazität gering zu halten.
Und was koennte dieser Parameter sein? Oder welches Kommando kann man dazu verwenden? Ich habe e4fsprogs installiert, aber da finde ich keine Hinweise auf mount-Parameter oder TRIM-Kommandos.
[...]
BTW: Wenn Du eine gut funktionierende Lösung finden solltest, wie man mit Hilfe von SSD ein High-Performance-DBMS hinbekommt, das auch tablespace von 400 GB netto noch rasant verarbeiten kann, dann wäre ich für jeden Hinweis dankbar. [...]
Das ist zwar weit entfernt von dem was ich erreichen will, aber sollte ich mal dahin kommen, gebe ich natuerlich die Infos gerne weiter :-))
Gruss
frank
Am Tue, 28 Jun 2011 11:50:39 +0200 schrieb Frank Thommen frank.thommen@embl-heidelberg.de:
Tobias Crefeld wrote:
schrieb Frank Thommen frank.thommen@embl-heidelberg.de:
als Datendisk moechte ich in einer CentOS-Workstation (CentOS 5.6) eine SSD einbauen (Intel SSD 320 Serie, 120 GB). [...] [...]
Muss ich TRIM oder irgendwelche anderen Wartungskommandos regelmaessig per Cronjob ausfuehren lassen oder erledigt das der Kernel automatisch fuer mich?
Bei ext4fs gibt es dafür einen Parameter.
[..]
Und was koennte dieser Parameter sein? Oder welches Kommando kann man dazu verwenden? Ich habe e4fsprogs installiert, aber da finde ich keine Hinweise auf mount-Parameter oder TRIM-Kommandos.
"discard" ist ein noch relativ junger mount-Parameter für ext4fs, der per default abgeschaltet ist, weil die Funktion offenbar noch nicht als "ausreichend getestet" klassifiziert wird und im worst case auch Datenverlust nicht ausgeschlossen werden kann.
Eigentlich gibt es die dahinter stehende Funktion erst ab Kernel 2.6.33, aber offenbar hat Redhat einen Backport zu ihrem bei RHEL-6 benutzten Kernel durchgeführt, der auf 2.6.32 basiert. Siehe auch unter http://rhkernel.org/#RHEL6+2.6.32-19.el6/Documentation/filesystems/ext4.txt
Von einem Backport nach RHEL/CentOS-5 habe ich bislang nichts gehört - da ist ja ext4fs eh noch reine Option und kein Default.
Voraussetzung ist natürlich, dass Gerätetreiber, Hostadapter und SSD-Firmware TRIM unterstützen. Zum Thema SSD hat Thomas-Krenn ein paar Infos zusammengetragen, die sich zwar auf Debian stützen, aber im Prinzip sieht es unter RHEL nicht viel anders aus: http://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren#ATA_TRIM_akti...
Gruß, Tobias.
Hi Tobias,
Tobias Crefeld wrote:
schrieb Frank Thommen frank.thommen@embl-heidelberg.de:
als Datendisk moechte ich in einer CentOS-Workstation (CentOS 5.6) eine SSD einbauen (Intel SSD 320 Serie, 120 GB). [...] [...] Muss ich TRIM oder irgendwelche anderen Wartungskommandos regelmaessig per Cronjob ausfuehren lassen oder erledigt das der Kernel automatisch fuer mich?
Bei ext4fs gibt es dafür einen Parameter.
[..]
Und was koennte dieser Parameter sein? Oder welches Kommando kann man dazu verwenden? Ich habe e4fsprogs installiert, aber da finde ich keine Hinweise auf mount-Parameter oder TRIM-Kommandos.
"discard" ist ein noch relativ junger mount-Parameter für ext4fs, der per default abgeschaltet ist, weil die Funktion offenbar noch nicht als "ausreichend getestet" klassifiziert wird und im worst case auch Datenverlust nicht ausgeschlossen werden kann.
Eigentlich gibt es die dahinter stehende Funktion erst ab Kernel 2.6.33, aber offenbar hat Redhat einen Backport zu ihrem bei RHEL-6 benutzten Kernel durchgeführt, der auf 2.6.32 basiert. Siehe auch unter http://rhkernel.org/#RHEL6+2.6.32-19.el6/Documentation/filesystems/ext4.txt
Von einem Backport nach RHEL/CentOS-5 habe ich bislang nichts gehört - da ist ja ext4fs eh noch reine Option und kein Default.
Voraussetzung ist natürlich, dass Gerätetreiber, Hostadapter und SSD-Firmware TRIM unterstützen. Zum Thema SSD hat Thomas-Krenn ein paar Infos zusammengetragen, die sich zwar auf Debian stützen, aber im Prinzip sieht es unter RHEL nicht viel anders aus: http://www.thomas-krenn.com/de/wiki/SSD_Performance_optimieren#ATA_TRIM_akti...
Vielen Dank. Das ist sehr ausfuehrlich. Unterdessen habe ich auch /usr/share/doc/kernel-doc-2.6.18/Documentation/filesystems/ext4.txt gefunden. Leider wird dort "discard" nicht aufgelistet. :-(
Auch https://ext4.wiki.kernel.org/index.php/Ext4_Howto ist sehr interessant. Dort gibt es auch einen RHEL/CentOS-spezifischen Abschnitt (https://ext4.wiki.kernel.org/index.php/Ext4_Howto#For_people_who_are_running...), der allerdings bei RHEL/CentOS 5.4 aufhoert.
Vielleicht sollte ich lieber hoffen, dass endlich, endlich CentOS-6 herauskommt.
frank