Tips zu Solid State Disks

congenio
Wir über uns
Leistungsangebot
Know-How
Geschäftsleitung
Was uns wichtig ist
Kunden
Projekte
Informationen
     Website in XML
     Linux heute
     CD-ROM-Server
     Software RAID-5
     Thinkpad WLAN
     XP SP2
     VDSL-Infos
     Fritzbox 7270
     Anti-Spam
     E-Mail Policy
     SSD-Tips
Kontakt

©1997-2010 congenio GmbH




SSL Certificates

congenio Einführung
Solid State Disks (SSD) werden aktuell immer beliebter. Empfehlenswert sind aktuell die Produkte mit Indilinx-, Samsung- und Intel-Controllern.
Es gibt jedoch ein paar Kleinigkeiten zu beachten:
Intern basieren diese Platten auf Flash-Speichern des MLC-Typs, da SLC-Speicherchips zu teuer sind. Diese Speicher lassen sich nur ca. 10.000 Mal beschreiben.
Um eine möglichst gleichmäßige Abnutzung zu erzielen und einem frühen Ausfall zu begegnen, wird ein sogenanntes Wear-Leveling genutzt. Die Details der dabei verwendeten Algorithmen sind Firmengeheimnisse. Bekannt ist allerdings, dass die verwendeten Speicherchips eine Seitengröße von 4 KByte haben.
Dies ist insofern ein Problem, als die Sektorengröße, welche die kleinste addressierbare Einheit bilden, nur 512 Byte beträgt. Aufgrund von längst unzeitgemäßen Festlegungen werden außerdem Festplatten immer noch logisch in Zylinder, Köpfe und Sektoren aufgeteilt. Dabei werden meist 63 Sektoren verwendet, was zur Folge hat, dass die erste Partition auf einer Festplatte normalerweise bei Sektor 63 beginnt. Bei NTFS und FAT ist die kleinste addressierbare Einheit meist auch 4 KByte groß, so dass die Blöcke einer solchen Partition physisch auf zwei Seiten im Flashspeicher der SSD verteilt sind. Dadurch verdoppelt sich die Anzahl der Schreibzugriffe auf die SSD. Da zudem in den SSDs meist mehrere Pages logisch zusammengefasst werden, wäre ein Alignment auf 128-KByte-Adressen (Vielfaches von 4 KByte) optimal.
congenio Windows
Windows 7 wurde daher so modifiziert, dass es den ersten Sektor einer Partition auf ein anderes Alignment anpasst, z.B. wird der erste Sektor dabei auf die Nummer 2048 statt 63 gelegt. Bei Windows 7 und Vista lässt sich mit dem Parameter "align=2048" ein spezifisches Aligment erzwingen, wenn eine Partition neu angelegt wird.
Bei bestehenden NTFS-Partitionen ergeben sich aber diverse Probleme:
congenio
Es gibt kaum ein Partitionierungswerkzeug, mit dem man sektorgenau die Position einer Partition festlegen kann.
congenio
Diejenigen Werkzeuge, mit denen man Partitionen verschieben und kopieren kann, beherrschen das noch weniger. Es ist dort auch praktisch unmöglich, Partitionen von Platte zu Platte zu kopieren oder gar dabei die Größe zu verändern.
congenio
Sicherungsprogramme wie TrueImage können ebenfalls nicht sektorgenau positionieren, außerdem können sie nicht in eine bestehende Partition rücksichern (zumindest nicht, wenn man davon booten will).
Will man also z.B. eine bestehende, bootfähige NTFS-Partition von einer alten Platte auf eine SSD kopieren, muss man so vorgehen:
congenio
Verkleinerung der alten Partition auf die Größe, die auf der Ziel-SSD zur Verfügung steht (mit etwas Reserve) mit einem Tool wie Disk Director, Paragon Partition Manager o.ä.
congenio
Start z.B. der congenio System Rescue CD. In der Root-Shell mit fdisk eine Partition anlegen, die korrekt ausgerichtet ist (z.B. Startsektor = 2048). Dazu kann man mit dem Kommando "u" die Einheiten auf Sektoren umschalten. Die Zielpartition sollte genausoviel Sektoren wie die Quellpartition erhalten. Der Typ ist "7 (NTFS)", die Partition muss mit "a" aktiv gemacht werden.
congenio
Kopieren der Quell-Partition auf die neu angelegte Partition der SSD mittels "dd if=/dev/sdXY of=/dev/sdAB bs=409600".
congenio
Ggf. Platte bootfähig machen mit den üblichen Windows-Werkzeugen (congenio z.B. mit der Vista Recovery Disc) (Stichworte "BOOTREC /FIXMBR", "BOOTREC /FIXBOOT", "BOOTSECT /NB60 ALL".
congenio
Leider funktionert das Booten aufgrund der 1:1-Kopie mittels "dd" trotzdem noch nicht: Man muss mit einem Hexeditor ("hexedit") den ersten Sektor der Boot-Partition auf der SSD korrigieren, weil im congenio BPB der Eintrag "HiddenSectors" auf den ersten Sektor verweisen muss - dort steht üblicherweise noch 63. Dieser Eintrag muss auf 2048 umgeändert werden.
congenio Linux
Unter Linux gibt es ebenfalls Schwierigkeiten, die Theodore Ts'o congenio hier beschreibt.
Besonders ärgerlich sind hier Dinge wie Swap (eine Swap-Partition hat immer einen 4096 Byte langen Header). Man kann dabei nicht angeben, wo die Payload beginnen soll. Da das Aligment vorzugsweise 128 KByte sein sollte, müsste man also eine Swap-Partition auf einer Adresse anlegen, die 128 KByte - 4 KByte beträgt, also z.B. auf Sektor 248 beginnt.
Neben den im Artikel genannten Alignments für LVM-PVs, VGs, LVs und dem eigentlichen Dateisystem (z.B. ext3) müssen eventuell auch noch LUKS-Header angepasst werden (mit "cryptsetup luksFormat --align-payload=256").
Leider hat auch ein entsprechender congenio Anstoß bislang nicht dazu geführt, dass in den congenio UTIL-LINUX-NG ein besseres Standard-Alignment aufgenommen worden wäre. Ähnliches gilt für die anderen Komponenten, wie die LVM2-Utilities oder cryptsetup. Bis diese Änderungen dann in den großen Linux-Distributionen erscheinen, wird es sicher 2010 werden.
congenio Warten auf TRIM-Support
Optimal ist neben dem richtigen Alignment unter congenio Linux ab 2.6.28 mit congenio ext4 natürlich die direkte Unterstützung des congenio TRIM-Kommandos. Aktuell wird das jedoch nicht einmal von allen SSDs selbst unterstützt, z.B. wartet man bei Samsung noch vergeblich auf ein Firmware-Update-Tool. Für Intel- und Indilynx-basierte SSDs gibt es bereits Updates. Allerdings bieten einige 3rd-Party-Hersteller von SSDs mit Samsung-Controller schon Flashtools an, darunter Lenove, Mushkin und Corsair. Leider geht dort ein Firmware-Update mit einem kompletten Datenverlust einher.

  congenioProjekte erfolgreich machen  
Wir sind gegen Softwarepatente!