ubuntuusers.de

Ubuntu 10.04 auf SSD installieren. Was gibt es zu beachten?

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

muvo

Anmeldungsdatum:
13. Juni 2009

Beiträge: 365

Hallo!

Bitte verzeiht falls diese Fragen schonmal gestellt wurden. Ich möchte alles richtig machen und sichergehen, dass ich nichts übersehe oder vergesse. Würde mich also sehr über eure Unterstützung freuen.

Ich möchte Ubuntu 10.04 auf eine OCZ Vertex 60GB installieren. Was gibt es alles zu beachten?

Was ich weiß sind zwei Dinge für beste Performance wichtig, TRIM und Alignment. Gibt es ausser diesen beiden Dingen noch etwas?

Automatic TRIM wird ja seit 10.04 unterstützt. Stimmt das? Was ist zu tun, um es zu aktivieren?

Was Alignment ist habe ich noch nicht verstanden. Vielleicht kann mir das jemand erklären oder einen verständlichen Link posten.

Danke erstmal.

Gruß,

muvo

Bearbeitet von primus pilus:

Bitte stelle bei neuen Themen immer die Ubuntu Variante und Version ein.

muvo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2009

Beiträge: 365

Niemand?

muvo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2009

Beiträge: 365

http://forum.ubuntuusers.de/topic/ssd-alignment/#post-2454214

Das hilft mir schon etwas weiter.

Aber wie sieht es aus, wenn man 3 Partitionen hat, eine SWAP, eine ROOT und eine HOME? Muss man dann alle 3 ein Alignment einstellen?

Und wie groß muss der Abstand bei einer Vertex 60GB sein? Hier http://www.ocztechnologyforum.com/forum/showthread.php?50463-OCZ-SSD-Alignment steht was von 64k. Also einfach eine Partiton erstellen und davor 64k freilassen?

Bitte, irgendjemand muss das doch wissen?

muvo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2009

Beiträge: 365

Also:

.) Firmware updaten

.) AHCI aktivieren

.) Vor der ersten Partition 64k (Empfehlung für Vertex) oder ein vielfaches davon (zB. 1 MB, weniger geht mich gparted auch nicht) freilassen

.) Partitionen mit den optionen discard (aktiviert TRIM) und noatime mounten

Ich denke, das ist das Wichtigste.

B601

Anmeldungsdatum:
10. Juli 2009

Beiträge: 105

Wohnort: Wien

Zuerst die positive Nachricht: Als ein Freund Ubuntu 10.04 installiert hat (ich habe nur upgegradet), habe ich ihn darauf hingewiesen, auf das Alignment zu achten. Und er hat bestätigt, dass Ubuntu 10.04 automatisch auf MiB-Grenzen "aligned"!

Nun kurz zur Erklärung:

Jeder Sektor einer SSD kann nur seriell beschrieben werden. Damit die SSD schnell wird, schreibt sie x Sektoren parallel. Dies nennt man "Write Block" oder auch "Erase Block". Die Write-Block-Größe ist von der SSD abhängig; sie liegt bei modernen SSDs meist bei 256 oder 512 Sektoren, sprich 125 kiB oder 250 kiB. Das Dumme ist, dass bei jedem Schreibvorgang immer ein ganzer Writeblock geschrieben werden muss, auch wenn nur ein Byte geändert wurde. Durch das entsprechende Alignment muss man also dafür sorgen, dass die Blockgrenzen des Filesystems möglichst mit den Writeblocks zusammenfallen, sonst finden im Extremfall alle Schreibvorgänge doppelt statt!

Nicht zuletzt deshalb sollte man auch die mount-Parameter noatime, nodiratime und commit entsprechend wählen (nicht wegen der Lebensdauer, die ist kein Problem mehr).

Auf der sicheren Seite ist man, wenn man das Partition-Alignment also auf MiB-Grenzen bzw. 2048-Sektoren-Grenzen legt. Ich persönlich habe auf 3-MiB-Grenzen optimiert, weil der Cache meiner Platte (Samsung RBX) 6144 Sektoren beträgt. Das ist zwar vermutlich unnötig, schadet aber auch nicht.

Noch etwas: Aus einem unerfindlichen Grund ist meine Platte trotz korrektem Alignment bei Extended Partitions in einer Logischen Partition langsam. Versuche also nach Möglichkeit, mit 4 Partitionen auskommen. Übrigens sind Logische Partition sowieso ein Graus, denn die Extenend Partition (also die Partitionstabelle für die Logischen Partitionen) belegt 2 Sektoren, dann musst du also ein Loch vor der 1. Logischen Partition lassen, nachher muss man wieder ein Loch lassen (vermutlich, weil zwei Logische Partitionen nicht im selben Zylinder enden und beginnen dürfen, obwohl Zylinder für SSDs nur mehr aus historischen Gründen angegeben sind), usw.

Willst du das Alignment manuell machen, boote einfach von einer Live-CD, z.B. SystemRescueCD und verwende GNU Parted. Das grafische Tool GParted hat nämlich bei Sektoralignment leider einige Bugs (z.B. dass es immer auf einem ungeraden Sektor beginnen will, obwohl man mit 0, also gerade, zu zählen beginnt).

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

Hallo allerseits,

ich habe dazu auch noch ein paar Fragen.

Ich habe eine Ocz vertex 2 mit 60GB auf der ich einmal Win7 und einmal Ubuntu (bzw Element OS, das MediaPC-Derivat von Ubuntu) installieren will.

1) wie partitioniere ich hier am sinnvollsten?

2) muss ich vor jeder Partition Sektoren freilassen? Oder ist das einmal für die gesamte SSD vor der ersten Partition (welche in dem Fall wohl die versteckte Win-Boot ist?) ?

3) die Parameter noatime, nodiratime, commit und discard muss ich dann für jede Partition in der fstab eintragen? Kann man hierzu mal ein Bsp. sehen? was machen commit und discard denn?

das würde mir schonmal wirklich helfen ☺

B601

Anmeldungsdatum:
10. Juli 2009

Beiträge: 105

Wohnort: Wien

Hallo,

für alle SSDs (und, wie ich vor kurzem gehört habe, auch für neuere rotierende HDs) gilt dasselbe, das heißt, man nimmt praktischerweise 1-MiB-Grenzen für die Partitionen.

Du brauchst nicht vor jeder Partition eine Lücke zu lassen, sondern nur aufzuspassen, dass die Partitionen korrekt angeordnet sind. (Ausnahme: extended Partitions, wo's nicht anders geht).

Beispiel für 512-Byte-Sektoren (Beginnsektor Endsektor)

Partitionstabelle:   0s         0s
Master Boot Record:  1s        62s
leer:               63s      2047s

Partition 1:      2048s   1258911s
Partition 2:   1258912s  62914559s
Partition 3:  62914560s 104857599s
Partition 4: 104857600s 105493846s (letzter Sektor der Platte)

Bei der letzten Partition kann es natürlich sein, dass sich keine restlos durch 1 MiB teilbare Größe ergibt, was aber weiter nicht stört.

TRIM wird leider von Ubuntu 10.04 (dh. vom Kernel 2.6.32) noch nicht unterstützt. TRIM ist die Funktion, die dem SSD-Controller mitteilt, welche Blöcke aus Filesystemsicht unbenützt sind. Der Controller kann sie daraufhin seinem internen Pool der leeren Blöcke zuordnen und ist beim nächsten Schreibvorgang schneller, weil er sich um deren bisherigen Inhalt nicht zu kümmern braucht. (Normalerweise läuft beim Schreiben das Wear-Levelling ab, dh. physikalische Blöcke werden so getauscht, dass die "Abnützung" gleichmäßig erfolgt. Wenn der Controller nicht weiß, dass der Inhalt nicht mehr benötigt wird, muss er ihn im Zuge dessen umkopieren.)

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

Danke,

das hat mir jetzt erstmal geholfen. Zum Thema TRIM steht weiter oben aber, dass 10.04 automatic TRIM unterstützt? Da ich ansich vorhatte Element OS (Ubuntu Derivat) zu nutzen um den Rechner auch als HTPC nutzen zu können sieht es da wohl mit dem Kernel noch bescheidener aus, denn ich glaub selbst in version 1.4 basiert Element OS auf Ubuntu 9.10 ... warum auch immer. Vielleicht muss man eben doch über eine andere Lösung nachdenken ... aber das ist nicht teil dieses threads hier.

dennoch würde mich intressieren, was commit und discard macht? discard ist wohl die aktivierung von TRIM (was ja vermutlich nicht funktioniert?) ?

Also brauche ich nur einmal am SSD Anfang platz zu lassen und nicht pro partition, ja? das habe ich nun richtig verstanden?

B601

Anmeldungsdatum:
10. Juli 2009

Beiträge: 105

Wohnort: Wien

Hallo,

du hast es richtig verstanden: Du brauchst nur am Anfang Platz zu lassen, da dort eben die Partitionstabelle und der Master-Boot-Record stehen, die aber zusammen viel weniger als ein 1 MiB belegen. Alle Partitionen richtest du einfach auf 1-MiB-Grenzen, das heißt 2048 Sektoren aus (bzw. 512 Sektoren bei ganz neuen Platten mit 4096-Byte-Sektoren).

commit gibt die Anzahl von Sekunden an, die alle Schreibvorgänge verzögert werden (so lange der Puffer nicht voll ist). Somit wird statt ständig wenige Sektoren, alle xx Sekunden alles bisher Gepufferte auf einmal geschrieben. Da sich verschiedene Daten mehrmals in dieser Zeit ändern können (z.B. Inodes, also Dateizuordnungstabellen, oder auch die Dateien selbst), reduziert dies die Anzahl der Schreibvorgänge.

Nachteil: je höher der Commit-Wert, desto länger dauern dann die Schreibvorgänge, wenn sie durchgeführt werden, was ev. zu merkbaren Verzögerungen führen kann, und desto mehr kann verloren gehen, wenn das System "hart" ausgeschaltet (also nicht herunter gefahren) wird. Ich persönlich verwende 60 s und hatte bislang nie Probleme. (Anmerkung: Der Kernel selbst stürzt so gut wie nie ab. Selbst wenn man das System nicht mal mehr auf die SysRequest-Keys reagiert - siehe Notfall, sollte man die Commit-Zeit abwarten und die Festplattenaktivität beachten, bevor man hart ausschaltet, um dem Kernel die Zeit zu geben, den Schreibpuffer auf die Platte zu schreiben.)

discard stößt - richtig - TRIM an. Der Algorithmus ist derzeit aber nicht konfigurierbar. Wann es angestoßen wird, ergibt sich aus der Anzahl der frei gewordenen Blöcke und der seit dem letzten Anstoß vergangenen Zeit.

TRIM sollte ursprünglich vom 2.6.32-Kernel unterstützt werden, wurde aber in "letzter Minute" vor Veröffentlichung der endgültigen Version nach hinten geschoben. Es kann natürlich in verschiedenen Distributionen gepatchte 2.6.32-Kernel geben, die es unterstützen, Ubuntu 10.04 tut's meines Wissens nach noch nicht. Falls jemand Gegenteiliges weiß, bitte um Korrektur.

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

Danke nochmals! DAS sind auch wirklich erklärungen die ich verstehen kann.

Aber ich muss dennoch nochmal blöd nachfragen 😉 :

ich will auf der SSD ein win7 und ein ubuntu (oder derivat) installieren. Jetzt ist es doch scheinbar so, dass win7 diese ganze alighnment geschichte usw selber macht. Win7 ist jetzt auch bereits installiert ... kann ich jetzt davon ausgehen, dass vor der ersten Partition platz gelassen wurde? bin mir etwas unsicher wie ich das denn kontrollieren kann? dazu sollte ich wohl mal die systemrescuecd starten? kann mir jemand partitionierungstips geben? die SSD ist eine 60GB OCZ Vertex2. Win7 würde ich eine 30GB Partiotion geben und die anderen 30GB eben für Linux bzw Swap. Welche Partitionen sollten denn primäre werden? Bin mir da echt unsicher :-/

B601

Anmeldungsdatum:
10. Juli 2009

Beiträge: 105

Wohnort: Wien

Ja, sowohl Ubuntu 10.04, als auch Windows 7, richten die Partitionen schon bei der Installation auf 1-MiB-Grenzen aus. Wie ich erwähnt habe, ist das auch bei modernen rotierenden Festplatten in Ordnung. Die Zylinder- und Spurangaben sind nur mehr historisch, um die Platten auch in älteren Rechnern bzw. mit älteren Betriebssystemen noch verwenden zu können.

Überprüfen kannst du das mit parted oder auch mit gparted. So lange du nur lesend auf die Systemplatte zugreifst, brauchst du nicht mit einem Livesystem zu booten. (Der gparted-Bug, von dem ich vor ein paar Monaten geschrieben habe, ist inzwischen auch behoben.)

Soweit ich weiß, kann Windows noch immer nur von der 1. primären Patition booten. (So etwas nennt sich "modernes Betriebssystem"... 😉 ) Das heißt, die Windows-Systempartition muss unbedingt die erste sein. Der Rest bleibt dir überlassen.

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

Ich wieder ☺

ich komme erst jetzt wieder dazu mich um den rechner zu kümmern. ich habe mir gerade mal das ganze vonwegen alignment usw mit gparted angesehen. ich schein aufm schlauch zu stehen. wie muss ich geparted das jetzt sagen mit 1MiB frei lassen am Anfang? Ich habe eine OCZ Vertex II mit 60GB, wieviel muss ich denn da nun frei lassen und gibt es irgendwie ein howto für DAUS wie mich? ☺ einfach bei "free space preceding" 1MiB eintragen? Oder soll ich zuvor das garnicht selber partitionieren und einfach Win7 bzw Ubuntu installieren ... wenn die das alignen brav selber machen??? ich hoff ja, dass ich den htpc auf linuxbasis 100% ans fliegen bekomme, dann kann mir win nämlich gestohlen bleiben 😉

wäre nett wenn ihr einem doofen helfen könntet.

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

ich kann in gparted nicht "align to MiB" auswählen. das steht immer auf "cylinder" oder "none" . Was mache ich falsch???

im Bios muss ich doch AHCI einstellen, oder? kann da der fehler liegen? ich find nur im bios meines p7h55d-m evo nicht wo ich das einstellen muss??? ich schein ja so langsam zu allem zu doof zu sein ☺

B601

Anmeldungsdatum:
10. Juli 2009

Beiträge: 105

Wohnort: Wien

Wenn du in Gparted die Markierung bei "Cylinder" (oder Zylinder) wegnimmst und eine Parition anlegst, verschiebst, vergrößerst oder verkleinerst, wirst du bemerken, dass die Ausrichtung nun auf MiB-Grenzen erfolgt.

leadsled

Anmeldungsdatum:
14. Januar 2010

Beiträge: 69

Also "none" auswählen? Wieso aber kann ich dort nicht MiB auswählen? Is doch unlogisch?

Antworten |