Discussion:
SSD - Partitionen - Alignment
Dirk Meier
2014-05-17 07:42:35 UTC
Permalink
Hallo,

als ich OS 12.1 neu auf meine ebenfalls neue INTEL X 25 510 installiert habe,
hatte ich irgendwo gelesen, dass die sienerzeit aktuellen Paritionierungstools
das Alignment der Partitionen automatisch berücksichtigen.

Nun habe ich heute gelesen, dass der Startsektor einer Partion ein Vielfaches
von 4096 sein soll.
Leider passt das bei meiner nachstehenden Partitionstabelle nicht.
z.B.: 4208640 / 4096 = 1027,5

Sollte ich etwas an den Partitionen ändern, und wie geht das ohne
Neuinstallation?


# fdisk -l -u /dev/sda

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 Köpfe, 63 Sektoren/Spur, 14593 Zylinder, zusammen 234441648 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d05af

Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 2048 4208639 2103296 82 Linux Swap / Solaris
/dev/sda2 * 4208640 46153727 20972544 83 Linux
/dev/sda3 46153728 67119103 10482688 83 Linux
/dev/sda4 67119104 234440703 83660800 83 Linux
--
Dirk
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
David Haller
2014-05-17 09:48:44 UTC
Permalink
Hallo,
Post by Dirk Meier
Nun habe ich heute gelesen, dass der Startsektor einer Partion ein Vielfaches
von 4096 sein soll.
Wo?
Post by Dirk Meier
Leider passt das bei meiner nachstehenden Partitionstabelle nicht.
z.B.: 4208640 / 4096 = 1027,5
Eine Ausrichtung an 1MB reicht dicke. Also 2048 * 512 Byte. Größere
als 128KB Blöcke werden bisher glaub nicht verwendet.
Post by Dirk Meier
Sollte ich etwas an den Partitionen ändern, und wie geht das ohne
Neuinstallation?
Nein und eher nicht.
Post by Dirk Meier
# fdisk -l -u /dev/sda
[..]
Post by Dirk Meier
Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 2048 4208639 2103296 82 Linux Swap / Solaris
/dev/sda2 * 4208640 46153727 20972544 83 Linux
/dev/sda3 46153728 67119103 10482688 83 Linux
/dev/sda4 67119104 234440703 83660800 83 Linux
$ for i in 2048 4208640 46153728 67119104; do \
printf '%i/2048\n' "$i"; done | bc
1.00000000000000000000
2055.00000000000000000000
22536.00000000000000000000
32773.00000000000000000000

Passt. Alles brav an 1MB ausgerichtet. Aufpassen muß man da aber evtl.
wenn "drüber" weitere Schichten mit u.U. krummen Offsets kommmen
(RAID/LVM), so daß das FS im RAID/LVM dann an krummen Offsets beginnt.
Davon hab ich aber keine Ahnung.

-dnh
--
"If you are using an Macintosh e-mail program that is not from Microsoft,
we recommend checking with that particular company. But most likely other
e-mail programs like Eudora are not designed to enable virus replication"
-- http://www.microsoft.com/mac/products/office/2001/virus_alert.asp
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Dirk Meier
2014-05-18 11:23:06 UTC
Permalink
Post by Dirk Meier
Hallo,
Post by Dirk Meier
Nun habe ich heute gelesen, dass der Startsektor einer Partion ein
Vielfaches von 4096 sein soll.
Wo?
Post by Dirk Meier
Leider passt das bei meiner nachstehenden Partitionstabelle nicht.
z.B.: 4208640 / 4096 = 1027,5
Eine Ausrichtung an 1MB reicht dicke. Also 2048 * 512 Byte. Größere
als 128KB Blöcke werden bisher glaub nicht verwendet.
Post by Dirk Meier
Sollte ich etwas an den Partitionen ändern, und wie geht das ohne
Neuinstallation?
Nein und eher nicht.
Post by Dirk Meier
# fdisk -l -u /dev/sda
[..]
Post by Dirk Meier
Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 2048 4208639 2103296 82 Linux Swap /
Solaris /dev/sda2 * 4208640 46153727 20972544 83 Linux
/dev/sda3 46153728 67119103 10482688 83 Linux
/dev/sda4 67119104 234440703 83660800 83 Linux
$ for i in 2048 4208640 46153728 67119104; do \
printf '%i/2048\n' "$i"; done | bc
1.00000000000000000000
2055.00000000000000000000
22536.00000000000000000000
32773.00000000000000000000
Passt. Alles brav an 1MB ausgerichtet. Aufpassen muß man da aber evtl.
wenn "drüber" weitere Schichten mit u.U. krummen Offsets kommmen
(RAID/LVM), so daß das FS im RAID/LVM dann an krummen Offsets beginnt.
Davon hab ich aber keine Ahnung.
-dnh
Gelesen habe ich die ganzzahlige Division durch 4096 in Linux User Nr. 06/2014
im Artikel Renntrim, wie man trotz Widrigkeiten eine Festplatte durch eine SSD
ersetzt im Abschnitt Paritiionierung: "Die Nummer eines Startsektors jeder
Partition sollte sich glatt durch 4096 teilen lassen ..."!

Außerdem habe ich in:
http://wiki.siduction.de/index.php?title=Solid_State_Disks_%28SSDs%29_unter_Linux_optimal_nutzen

nachstehende Angaben gefunden:

"Das Ergebnis überprüfen wir mit:
# fdisk -lu /dev/sda
Disk /dev/sda: 120 GB, 120056361856 bytes

32 heads, 32 sectors/track, 152638 cylinders
Units = cylinders of 1024 * 512 = 524288 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x76b978dc

Device Boot Start End Blocks Id System

/dev/sda1 2 14593 117218241 83 Linux
Wichtig ist hier die Zeile: 32 heads, 32 sectors/track, 14593 cylinders Wenn
wir bei fdisk nicht -H 32 -S 32 angegeben hätten, sähe die Zeile so aus: 255
heads, 63 sectors/track, 14593 cylinders und die Partition wäre für das
blockweise Löschen einer SSD nicht korrekt ausgerichtet."

Beides würde gegen eine passende Ausrichtung meiner Partitonen sprchen.
--
Dirk
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
David Haller
2014-05-19 08:44:37 UTC
Permalink
Hallo,
Post by Dirk Meier
Post by Dirk Meier
Nun habe ich heute gelesen, dass der Startsektor einer Partion ein
Vielfaches von 4096 sein soll.
Wo?
Gelesen habe ich die ganzzahlige Division durch 4096 in Linux User
Nr. 06/2014 im Artikel Renntrim, wie man trotz Widrigkeiten eine
Festplatte durch eine SSD ersetzt im Abschnitt Paritiionierung: "Die
Nummer eines Startsektors jeder Partition sollte sich glatt durch
4096 teilen lassen ..."!
http://wiki.siduction.de/index.php?title=Solid_State_Disks_%28SSDs%29_unter_Linux_optimal_nutzen
| Pages wiederum sind in Blocks organisiert. Bei heutigen SSDs sind das
| meist 128 Pages in einem Block, also 512 KB.

Beim Alignment ist nur wichtig, daß es zu den Eraseblocks (Pages)
passt. Und wie ich grad finde, scheint der bei deiner 510 doch 2MB,
also 4096 Sektoren a 512B groß zu sein.
[..]
Post by Dirk Meier
Wichtig ist hier die Zeile: 32 heads, 32 sectors/track, 14593 cylinders Wenn
wir bei fdisk nicht -H 32 -S 32 angegeben hätten, sähe die Zeile so aus: 255
heads, 63 sectors/track, 14593 cylinders und die Partition wäre für das
blockweise Löschen einer SSD nicht korrekt ausgerichtet."
Das hingegen ist wurscht. Zylinder und Köpfe sind spätestens bei
Platten mit mehr als 8GiB komplett irrelevant und werden schon
entsprechend lange schlicht und einfach ignoriert. Denn per CHS kann
man so oder so nur knapp 8 GiB adressieren, nämlich 1023*255*63*512
Bytes. Mehr ist mit den 3 Bytes schlicht nicht adressierbar. Seitdem
wird nur noch LBA verwendet, mit dem klassischen MBR-LBA konnten 28
Bit verwendet werden, also 2^28*512 Byte = 128 GiB. Maxtor hat dann
LBA48 definiert was dann in den ATA Standard aufgenommen wurde, das
reicht erstmal (für 128 Petabyte), das gilt aber nur für die
ATA-Schnittstelle, nicht für die Partitionstabelle. Deswegen gibt's
GPT, da per LBA im MBR nur knapp 4 TiB adressiert werden können (womit
aber nur Linux klarkommt), nämlich 2 Partitionen, eine mit knapp 2
TiB, und die zweite, die grad noch unter 2 TiB beginnt und knapp 2 TiB
groß ist. Windows ist auf knapp 2 TiB beschränkt.
Post by Dirk Meier
Beides würde gegen eine passende Ausrichtung meiner Partitonen sprchen.
Nur die Ausrichtung am Erase block interessiert. Du könntest schauen,
daß du die Partition(en) anpasst:

$ { printf "scale=2\n"; for i in 2048 4208640 46153728 67119104; do
printf '%i/4096\n' "$i"; done; } | bc
.50
1027.50
11268.00
16386.50

Du mußt also /dev/sda4 um 1 MB (2048 Sektoren) verkleinern und dann um
1 MB nach hinten verschieben (da sind leider nur noch
234441648-234440703 = 945 Sektoren frei), dafür kannst du sda3 dann um
1 MB vergrößern, sda2 mußt du um 1 MB verkleinern und es um 1 MB nach
hinten verschieben. Bei sda1 reicht das verschieben um 1 MB nach
hinten. Rauskommen sollte dann das hier:

Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 4096 4210687 2103296 82 Linux Swap / Solaris
/dev/sda2 * 4210688 46153727 20971520 83 Linux
/dev/sda3 46153728 67121151 10483712 83 Linux
/dev/sda4 67121152 234440703 83659776 83 Linux

Das ganze sollte mit gparted funktionieren. CHS kannst du komplett
ignorieren. Auch Warnungen von fdisk daß Partitionen nicht an einem
Zylinderanfang beginnen.

HTH,
-dnh
--
[Tivoli] : The thrill one gets from getting them to work at all helps to mask
the fact that it didn't do what you wanted at all
-- Paraphrase from THHGTTG
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Tobias Crefeld
2014-05-22 18:47:20 UTC
Permalink
Am Mon, 19 May 2014 10:44:37 +0200 schrieb David Haller
Post by David Haller
Post by Dirk Meier
http://wiki.siduction.de/index.php?title=Solid_State_Disks_%28SSDs%29_unter_Linux_optimal_nutzen
| Pages wiederum sind in Blocks organisiert. Bei heutigen SSDs sind
das | meist 128 Pages in einem Block, also 512 KB.
Beim Alignment ist nur wichtig, daß es zu den Eraseblocks (Pages)
passt. Und wie ich grad finde, scheint der bei deiner 510 doch 2MB,
also 4096 Sektoren a 512B groß zu sein.
Nein, es reicht, wenn der Block im Dateisystem zur SSD-page "aligned"
ist. Bei den meisten Setups unter Linux ist beides ein 4k-Block. Wenn
sie nicht "aligned" sind, würde das Schreiben eines Dateisystemblocks
zum teilweise Beschreiben von 2 SSD-Pages führen.

Die SSD- (Erase-) blocks bestehen immer aus mehreren Pages und es würde
nichts an der Performance der garbage collection ändern, wenn man den
ersten Dateisystemblock (und damit der Anfang einer Partition) in
irgendeine speziellen Abhängigkeit zum SSD-Block setzen würde. Durch
das "Alignment" mit den pages sind Partition bzw. Dateisystem natürlich
automatisch auch mit den SSD-Blocks insofern "aligned", als das kein
Dateisystemblock eine SSD-Blockgrenze überschreitet.
--
Gruß,
Tobias.

no email, only xmpp: ***@xabber.de
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Loading...