SSD korrekt in die fstab eintragen
Hallo, ich habe es nun getan und in mein System eine SSD eingebaut. Erste Erfahrung: super! Installiert ist ein SUSE 11.3 mit Kernel 2.6.34.7 und ext4. Ich wollte nun die mount-Optionen in der /etc/fstab anpassen und habe mal ein wenig gegoogelt. Angeblich sollen die Optionen norelatime, noatime, nodiratime und discard die Einstellungen optimieren. Aber in der man-Page zu mount finde ich weder nodiratime noch discard. Habt ihr Erfahrungen mit optimierten mount-Optionen für SSD? Welche sind denn nun wirklich sinnvoll und wenn sinnvoll, wo ist discard und nodiratime? Mit freundlichen Gruß Karl Brandt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, On 04/11/10 18:55, Karl Brandt wrote:
ich habe es nun getan und in mein System eine SSD eingebaut. Erste Erfahrung: super!
Installiert ist ein SUSE 11.3 mit Kernel 2.6.34.7 und ext4.
Ich musste mich vor einiger Zeit auch mit dem Thema beschaeftigen. Das Problem ist, dass es im Internet viele Hinweise gibt, was man den tun soll, aber niemand erklaert genau warum. Wie ich festellen musste, sind viele Informationen veraltet, haben sich aber leider bis heute irgendwie gehalten. Viele Tips machten bei der ersten Generation von SSD Sinn, heutzutage aber nicht mehr unbedingt. Ich habe daher auf der suse-kernel Mailingliste die Experten gefragt, Du findest dort einen Thread von mir (ungefaehr Ende August, Subject "SSD / filesystem / TRIM") - falls Du der englischen Sprache maechtig bist, wuerde ich Dir empfehlen, den Thread zu lesen. Hier eine kurze Zusammenfassung: Im Prinzip sollte man als normaler User heutzutage eine SSD einfach wie eine normale Festplatte behandeln und schlicht und einfach gar nichts spezielles unternehmen. Bei SSD koennen Zellen nur eine gewisse Anzahl an Schreibvorgaengen verkraften, daher wurde oft geraten, alle Dinge, die regelmaessig auf die Festplatte schreiben, zu vermeiden - kein journaling Filesystem, atime Option und aehnliche Optionen abschalten, /var und /tmp nicht auf die SSD legen, usw. Heutige SSD haben aber einen relativ ausgekluegelten Controller, um Schreibvorgaenge zu optimieren und vermeiden schon gleich von Beginn an, immer wieder die gleichen Zellen zu beschreiben. Solange Deine SSD nicht uebermaessig voll ist, funktioniert das auch prima. Letztendlich kauft man doch eine SSD, um ihr Potential auch auszunutzen. Es macht ja keinen Sinn, eine ultraschnelle SSD zu haben, dann aber das Potential nicht wirklich zu nutzen, weil irgendwann einmal ein Problem auftreten koennte mit den Flash-Zellen. Um ehrlich zu sein, vermutlich ist die Technologie in ein oder zwei Jahren soweit fortgeschritten, dass man eh eine neue SSD kauft, zumal die Preise ja fallen. Die Option "direct" wird im Thread auf suse-kernel auch erwaehnt, auch die sollte heutzutage nicht mehr noetig sein. Ich behandel die SSD also fast wie eine normale Festplatte, einzig die noatime Option nutze ich. Einmal die Woche laeuft das wiper.sh Skript aus dem hdparm Paket, weil TRIM Support im Linux-Kernel nicht optimal umgesetzt ist (statt eines Vektors verarbeitet der Linux Kernel nur einzelne Werte von trim Bereichen nacheinander). Das standard wiper.sh Skript aus 11.3 arbeitet nicht mit jeder SSD zusammen, so zum Beispiel nicht mit meiner OCZ Vertex2. Petr Uzel hat das Problem in factory gefixt soweit ich weiss und auch auf hdparm fuer 11.3 zurueckportiert, ich habe die RPMs fuer ihn getestet. Ich glaube, das wurde auch mal als Update released.
Ich wollte nun die mount-Optionen in der /etc/fstab anpassen und habe mal ein wenig gegoogelt.
Angeblich sollen die Optionen
norelatime, noatime, nodiratime und discard
die Einstellungen optimieren. Aber in der man-Page zu mount finde ich weder nodiratime noch discard.
Habt ihr Erfahrungen mit optimierten mount-Optionen für SSD? Welche sind denn nun wirklich sinnvoll und wenn sinnvoll, wo ist discard und nodiratime?
Siehe oben, den Thread auf suse-kernel, und die Seite http://en.opensuse.org/SDB:SSD_discard_%28trim%29_support Gruesse aus London, Thomas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Don, 04 Nov 2010, Thomas Hertweck schrieb:
On 04/11/10 18:55, Karl Brandt wrote:
ich habe es nun getan und in mein System eine SSD eingebaut. Erste Erfahrung: super!
Installiert ist ein SUSE 11.3 mit Kernel 2.6.34.7 und ext4. [..] schreiben, zu vermeiden - kein journaling Filesystem, atime Option und aehnliche Optionen abschalten,
Ted Tso empfiehlt _dringend_ zumindest 'relatime', da das die nötigen Schreibzugriffe _BEIM LESEN_ massiv verringert. Laut Ted braucht sowieso praktisch nix die atime ausser mutt und ähnliches, das anhand der atime Aktualisierungen bzw. Lesezugriffe einer mbox ausliest[1] ;) Für normale Software reicht generell relatime sowieso aus. Ob man dazu 'noatime' setzen muß weiß grad ich nicht. Einen Bedarf für ein generelles 'noatime' sieht tytso nicht mehr. Quelle kann ich leider nicht nennen, müßte ein rel. aktueller Eintrag in tytso's Blog gewesen sein, wenn ich mich recht erinnere. -dnh [1] kein Bug von mutt o.ä., es verwendet die atime eben genau dafür, wofür man die atime sinnvoll verwenden kann ;) -- "who| grep -i blonde|talk; cd ~; wine; touch; finger; unzip; touch; strip; gasp; finger; mount; fsck; more; yes; gasp; umount; make clean; sleep" -- A!S -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Thomas Hertweck schrieb:
Die Option "direct" wird im Thread auf suse-kernel auch erwaehnt, auch die sollte heutzutage nicht mehr noetig sein. Ich behandel die SSD also fast wie eine normale Festplatte, einzig die noatime Option nutze ich. Einmal die Woche laeuft das wiper.sh Skript aus dem hdparm Paket, weil TRIM Support im Linux-Kernel nicht optimal umgesetzt ist (statt eines Vektors verarbeitet der Linux Kernel nur einzelne Werte von trim Bereichen nacheinander).
Ich habe noch oS 11.0 mit Kernel 2.6.25.20 und hdparm 8.6-17.1. Darin gibt es kein wiper.sh. Jetzt habe ich mir aber auch eine OCZ Vertex2 gekauft. Was tun, einfach einbauen, partitionieren, Dateisysteme schreiben und hoffen, dass alles gut geht?
Das standard wiper.sh Skript aus 11.3 arbeitet nicht mit jeder SSD zusammen, so zum Beispiel nicht mit meiner OCZ Vertex2. Petr Uzel hat das Problem in factory gefixt soweit ich weiss und auch auf hdparm fuer 11.3 zurueckportiert, ich habe die RPMs fuer ihn getestet. Ich glaube, das wurde auch mal als Update released.
Kann ich dieses gefixte hdparm-Paket für oS 11.3 evtl. auch bei mir installieren? Wie dringend braucht man ATA-TRIM bzw. wiper.sh eigentlich? Ich muss dazu sagen, dass ich vorhabe, auch eine Swap-Partition auf der SSD einzurichten, weil ich mir davon schnelleres Paging verspreche. Danke schon im Voraus für erhellende Einsichten! Herzlichen Gruß Thomas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 05.11.2010, Karl Brandt wrote:
Aber in der man-Page zu mount finde ich weder nodiratime noch discard.
Schau in den Kernel Sources, was du suchst steht in fs/inode.c .
Habt ihr Erfahrungen mit optimierten mount-Optionen für SSD? Welche sind denn nun wirklich sinnvoll und wenn sinnvoll, wo ist discard und nodiratime?
"noatime" schliesst uebrigens alle die anderen Optionen mit ein, schau dir den Quellcodedazu an (s.o.). Ich habe damit keine Probleme und benutze noatime fuer alle meine Platten seit Jahren (ich benutze allerdings XFS). Ich benutze auch mutt, und habe ein set check_mbox_size=yes in meiner .muttrc, dazu kannst du einen Folder auch manuell als "gelesen" markieren, ich habe dazu macro index i "<tag-pattern>~N<enter><tag-prefix-cond><clear-flag>N<untag-pattern>~T<enter>" in meiner .muttrc. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Heinz Diehl schrieb:
On 05.11.2010, Karl Brandt wrote:
Aber in der man-Page zu mount finde ich weder nodiratime noch discard.
Schau in den Kernel Sources, was du suchst steht in fs/inode.c .
Habt ihr Erfahrungen mit optimierten mount-Optionen für SSD? Welche sind denn nun wirklich sinnvoll und wenn sinnvoll, wo ist discard und nodiratime?
"noatime" schliesst uebrigens alle die anderen Optionen mit ein, schau dir den Quellcodedazu an (s.o.). Ich habe damit keine Probleme und benutze noatime fuer alle meine Platten seit Jahren (ich benutze allerdings XFS).
Ich benutze auch mutt, und habe ein
set check_mbox_size=yes
in meiner .muttrc, dazu kannst du einen Folder auch manuell als "gelesen" markieren, ich habe dazu
macro index i "<tag-pattern>~N<enter><tag-prefix-cond><clear-flag>N<untag-pattern>~T<enter>"
in meiner .muttrc.
Hallo, erst einmal ein Dank an alle die auf meine Mail geantwortet haben. Ich habe jetzt "noatime" gesetzt. Bin mal gespannt, ob sich dies auch in irgendeiner Situation als nachteilig erweisen wird. @Heinz Diehl Ich mache Linux ja nun schon seit ca. 1990. Und ich glaube, dass dies auch so ungefähr der Zeitraum war in dem ich mir das letzte mal den Kernel angesehenen und selbst compiliert habe. Ja ich weiß: schämen sollte ich mich. Aber ich bin nun mal ein einfacher user, liebe meine Anwendungen, den Tux am PC und viele andere Dinge mehr. Aber den Kernel überlasse ich Menschen die von so etwas was verstehen. Von Deinem Hinweis inspiriert habe ich nun doch einen Blick in die inode.c geworfen und wurde prompt bestätigt. Für mich ist das eine Nummer zu hoch. Ich verstehe davon nur Bahnhof. Mit freundlichem Gruß Karl Brandt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 05.11.2010, Karl Brandt wrote:
Ich habe jetzt "noatime" gesetzt. Bin mal gespannt, ob sich dies auch in irgendeiner Situation als nachteilig erweisen wird.
Auf allen Maschinen die ich verwalte ist "noatime" in den mount Parametern, und ich habe noch nie das kleinste Problem damit gehabt, nicht in vielen Jahren. Das einzigste Programm das dummerweise noch die atime fuer die mboxen auswaehlt ist mutt, und da schaffen die von mir genannten Konfigurationen Abhilfe.
Von Deinem Hinweis inspiriert habe ich nun doch einen Blick in die inode.c geworfen und wurde prompt bestätigt. Für mich ist das eine Nummer zu hoch.
Du siehst, dass "noatime" ganz oben in der Schleife steht und sofort ein return ausloest, d.h. der darunterliegende Code wird nicht mehr ausgefuehrt, und die Funktion liefert sofort das Ergebnis zurueck. Kurz gefasst: "noatime" schliesst "nodiratime" und Konsorten mit ein. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 05/11/10 06:57, Heinz Diehl wrote:
"noatime" schliesst uebrigens alle die anderen Optionen mit ein, schau dir den Quellcodedazu an (s.o.).
Na, da habe ich dann ja Glueck gehabt (siehe David's Posting)... ;-) Sollte man Greg Freemyer fragen, ob das in seinem SDB Artikel http://en.opensuse.org/SDB:SSD_discard_%28trim%29_support erwaehnt werden soll? Generell bin ich echt happy mit meiner SSD - diese Anschaffung hat sich definitiv gelohnt. Cheers, Thomas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 06.11.2010, Thomas Hertweck wrote:
"noatime" schliesst uebrigens alle die anderen Optionen mit ein, schau dir den Quellcodedazu an (s.o.).
Na, da habe ich dann ja Glueck gehabt (siehe David's Posting)... ;-)
"relatime" macht ja auch keinen Sinn zusammen mit "noatime" :-) "nodiratime" wird bereits von "noatime" mit eingeschlossen. Wie "relatime" funktioniert kann man in der Funktion relatime_need_update() in fs/inode.c gut sehen. In derselben Datei wird auch klar, wie "noatime" und "nodiratime" zueinander stehen: void touch_atime(struct vfsmount *mnt, struct dentry *dentry) { struct inode *inode = dentry->d_inode; struct timespec now; if (inode->i_flags & S_NOATIME) return; if (IS_NOATIME(inode)) return; if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode)) return; if (mnt->mnt_flags & MNT_NOATIME) return; if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode)) return; [....] Hier sieht man gut, dass bei gesetztem "noatime" andere Flags wie "nodiratime" ueberhaupt nicht mehr geprueft werden, die Funktion wird bereits bei gesetztem "noatime" wieder verlassen.
Sollte man Greg Freemyer fragen, ob das in seinem SDB Artikel http://en.opensuse.org/SDB:SSD_discard_%28trim%29_support erwaehnt werden soll?
Waere evtl. hilfreich. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
David Haller
-
Heinz Diehl
-
Karl Brandt
-
Thomas Hertweck
-
Thomas Michalka