2012 05. Dez

Gerade habe ich hier auf einen Artikel bei AnandTech verwiesen, in dem klar wird, dass eine große Spare Area bei SSDs insbesondere dann von Vorteil ist, wenn die SSD sehr voll oder verschlüsselt ist. 25% des Speicherplatzes sollte man unter Performance-Aspekten für die Spare Area auf SSDs reservieren.

Wie man eine Spare Area einrichtet

  1. Idealer Weise macht man das, wenn die SSD noch nagelneu und unbenutzt ist, indem man einfach einen entsprechenden Speicherbereich keiner Partition zuweist und damit einfach frei lässt.
  2. Wenn man die SSD schon benutzt hat, ist die nächstbeste Möglichkeit, einen „Secure Erase“ der SSD durchzuführen und dann wie unter 1) vorzugehen.
  3. Wenn das keine Option ist, dann kann man auch eine bestehende Partition (mit Daten drauf) verkleinern. In dem dahinter frei werdenen Speicherbereich erstellt man anschließend ein Volume und formatiert es (Schnellformatierung reicht), damit es einmal geTRIMt wird. Dann löscht man die Partition und der SSD-Controller kann den freien Bereich als Spare Area nutzen.
  4. Viele Hersteller bieten Tools an, mit denen man das Ganze per Knopfdruck erledigen kann, z.B. Samsung SSD Magician oder die Intel SSD Toolbox.

ACHTUNG: Wenn eure Partition bzw. das gesamte Laufwerk verschlüsselt sind, z.B. mit TrueCrypt, dann auf KEINEN FALL die Partitionen einfach verändern, denn dann sind eure Daten futsch!

  • Wenn nur eine bestimmte Partition verschlüsselt ist (meistens C:), kann man alle anderen Partitionen problemlos ändern, nur nicht die Verschlüsselte. Wenn man die anfassen will, muss man vorher die Partition komplett entschlüsseln, dann ändern, dann wieder verschlüsseln.
  • Wenn das gesamte Laufwerk verschlüsselt ist, darf man gar nichts ändern, sondern muss alles entschlüsseln, ändern, wieder verschlüsseln.
  • Das gilt im übrigen auch für die o.g. Hersteller-Tools, auch da muss man auch vorher entschlüsseln, denn die machen letztlich nichts anderes, als das, was ich wie oben beschrieben manuell gemacht habe.
2012 05. Dez

Ich habe mittlerweile selbst schon einiges in die Analyse von SSD-Performance investiert und in ein paar Artikeln zusammengeschrieben.

Eine Frage, die dabei immer wieder aufkam, war diejenige nach der mysteriösen „Spare Area“ auf SSDs und ihrem Einfluss auf die Performance. Diese Frage war insbesondere interessant im Zusammenhang mit der Verschlüsselung von SSDs mit TrueCrypt. Das Problem dabei: bei der Verschlüsselung wird der gesamte zugewiesene Speicherplatz auf der SSD mit Zufallsdaten vollgeschrieben, so dass der SSD-Controller in den freien Speicherbereichen keine „Ausweichmöglichkeiten“ mehr für Wear Leveling und Fehlerkorrektur hat. Die Folge: die Performance von verschlüsselten bzw. komplett gefüllten SSDs nimmt stark ab.

Daher wurde schon oft empfohlen, schon beim Einrichten einer SSD einen Bereich unpartitioniert zu lassen, so dass eine gewisse Menge an nicht zugewiesenem Speicher auf der SSD vorhanden ist. Das ist die sog. Spare Area, die der Controller der SSD dafür nutzen kann, die Schreibzugriffe besser über die gesamte SSD zu verteilen, auch wenn der zugewiesene Speicher komplett belegt ist. Über die ideale Größe der Spare Area konnte man schon viele Spekulationen lesen, das ging von 10% bis 50%.

AnandTech hat jetzt mal nachgemessen. Und siehe da: der Performance-Unterschied ist beträchtlich!

Long Story Short: Reserviert idealer Weise 25% der Gesamtkapazität eurer SSD als Spare Area und die SSD-Performance steigt teilweise um ein Vielfaches.

Ob und wie sich das konkret auf die Performance von SSDs auswirkt, die mit TrueCrypt verschlüsselt sind, werde ich nochmal separat untersuchen, allerdings müssten die Performancegewinne erheblich sein.

Wie man auch nachträglich eine Spare Area einrichtet, so dass sie auch vom SSD-Controller genutzt werden kann, steht auch in dem Artikel:

If you want to replicate this on your own all you need to do is create a partition smaller than the total capacity of the drive and leave the remaining space unused to simulate a larger amount of spare area. The partitioning step isn’t absolutely necessary in every case but it’s an easy way to make sure you never exceed your allocated spare area. It’s a good idea to do this from the start (e.g. secure erase, partition, then install Windows), but if you are working backwards you can always create the spare area partition, format it to TRIM it, then delete the partition. Finally, this method of creating spare area works on the drives I’ve tested here but not all controllers may behave the same way.

-Quelle: AnandTech, Hervorhebungen MA.

2012 29. Apr

SSDs eignen sich super als sehr schnelle und gleichzeitig stromsparende Festplatten in PCs und Notebooks. Gründe für die Verschlüsselung von Festplatten gibt es einige, insbesondere bei Notebooks ist das Thema „Diebstahl“ sicherlich ganz vorne dabei. Es ist ärgerlich genug, wenn einem jemand ein 1.000-EUR-Notebook klaut, aber dann will ich wenigstens sichergehen, dass der Typ nicht auch noch meine Daten hat.

Aber: Verschlüsselung hat ihren Preis. Zum Einen braucht es Prozessor-Power um in Echtzeit Daten zu ver- und entschlüsseln, zum anderen dauern Festplatten-Zugriffe länger und die Transferraten von Festplatten (und leider auch SSDs) verringert sich deutlich.

Vor einiger Zeit hatte ich über die Performance auf TrueCrypt-verschlüsselten SSDs geschrieben. Damals benutzte ich die Intel G2 „Postville“-SSD mit 160 GB und eigenem Intel-Controller. Mittlerweile sind wir zwei Controller-Generationen weiter und ich habe mir eine neue SSD zugelegt in der Hoffnung, die Performance auch auf TrueCrypt-verschlüsselten SSDs steigern zu können.

Weiterlesen »

2010 31. Jan

Und wieder ein Thema aus dem Dunstkreis „Solid State Disk“. Diesmal geht es um das sog. Re-Alignment der Partitionen auf SSDs bzw. darum, wie man das Alignment bestehender Partitionen ändern kann, ohne dass die Daten verloren gehen oder man das OS neu installieren muss.

Partitions-Alignment – wozu?

Die „alten“ Festplatten speichern Daten auf Magnetscheiben mit konzentrischen Spuren. Diese Spuren sind in (physikalische) Sektoren aufgeteilt. Alle Betriebssysteme bzw. Treiber „denken“ noch in dieser Sektoren-Logik der Festplatten. SSDs speichern Daten aber völlig anders, werden aber trotzdem mit Hilfe der alten „Sektoren-Logik“ angesprochen. Wen es interssiert: bei AnandTech gibt es einen hervorragenden Artikel, der die technische Funktionsweise von SSDs sehr gut veranschaulicht.

Beim „Alignment“ geht es darum, den „Anfang“ einer Partition auf einer SSD so auszurichten, dass der erste logische Sektor der ersten Partition genau mit einer physikalischen Speicherzelle (Page) auf der SSD übereinstimmt. Wenn das NICHT der Fall ist, dann passiert beim Schreiben auf die SSD Folgendes: Windows adressiert einen Sektor, der dann aber dummerweise über eine Page-Grenze der SSD hinweggeht. Also muss die SSD statt EINEM jetzt ZWEI Blöcke erst löschen und dann wieder beschreiben. Und das kostet eben Performance beim Schreiben, nämlich ca. 50%. Zusätzlich wird die Lebensdauer der SSD verkürzt, weil jede Speicherzelle ja nur eine begrenzte Anzahl von Schreiboperationen aushält, bevor sie ausfällt (bei MLC-SSDs sind das je Speicherzelle ca. 10.000 Schreiboperationen).

Wer seine SSD mit einer frischen Installation von Windows Vista oder Windows 7 versorgt hat, der muss sich keine Gedanken machen: beide Installationsprogramme sorgen automatisch dafür, dass das Alignment der Partitionen passend ist. Windows XP-Installationen allerdings richten bei der Installation ihre Partitionen NICHT korrekt aus und auch wenn man eine Vista- oder 7-Installation per Imaging-Software (z.B. Acronis TrueImage) gesichert hat und wieder zurückspielt, geht meistens das Alignment verloren, weil die Imaging-Softwares in den aktuellen Versionen das korrekte Alignment offenbar noch nicht berücksichtigen.

Alignment überprüfen

Um festzustellen, ob die Partitionen auf der SSD korrekt angeordnet sind, gibt es drei Möglichkeiten:

  1. Die einfachste Möglichkeit: Man lädt sich das Programm „AS SSD Benchmark“ und startet es. Oben links in der Ecke steht eine Zahl mit der Angabe ‘KB’ dahinter. Diese Zahl ist entweder grün mit dem Zusatz ‘OK’ oder rot mit dem Zusatz ‘BAD’. Ratet einfach, wann das Alignment der ausgewählten Partition passend ist und wann nicht…
  2. Nutzung des Windows-Befehls diskpart
    Vista: START > Ausführen > ‚diskpart‘;
    Win7: START > Programme > Zubehör > Eingabeaufforderung > ‚diskpart‘

    Dort gebt ihr zuerst das Kommando ‚list disk‚ ein, es erscheint eine Übersicht mit allen Festplatten im System.
    Danach gebt ihr ‚select disk N‘ ein, wobei ihr N mit der Nummer der SSD ersetzt.
    Jetzt kommt ‚list partition‚, dieses Kommando listet alle Partitionen auf der SSD auf. In der Spalte „offset“ steht eine Zahl (in KB). Diese muss durch 4 Teilbar sein, dann ist alles in Ordnung, die Partition ist also korrekt ausgerichtet.

  3. Nutzung des SSD Alignment Calculators. Um die Werte zu ermitteln, die man dort eingeben muss, einfach jeweils auf „how to get“ klicken, dann erscheint eine Anleitung 🙂

Alignment einer SSD-Partition ohne Datenverlust

Die allermeisten Anleitungen da draussen bewirken, dass man seine SSD komplett „plattmachen“ muss und dann eine Neuinstallation fällig wird (1, 2). Nach längerem Suchen und Lesen habe ich aber eine Möglichkeit gefunden, eine SSD-Partition in kurzer Zeit und ohne Datenverlust, also ohne Neuinstallation, korrekt anzuordnen.

Bevor ihr das Folgende durchzieht, solltet ihr unbedingt ein Image eurer kompletten Festplatte oder wenigstens ein Backup eurer Daten machen. Ich übernehme keinerlei Verantwortung an Schäden von Hard- oder Software, die durch dieses Prozedere entstehen könnten.

Was ihr braucht, ist Folgendes: eine Boot-CD eure Betriebssystems (Vista oder Win7) und das Linux-basierte Open Source-Tool Gparted (die Live-CD).

  1. Ihr bootet euren Rechner mit der GParted-Live-CD. Im ersten Menü wählt ihr die Option „Boot to RAM“. Danach muss man noch ein paar Kleinigkeiten wegen Sprache und Tastatur-Layout angeben, aber das ist selbsterklärend.
  2. Auf der Gparted-Oberfläche verkleinert ihr die erste Partition so weit es geht, also z.B. auf 20 GB wenn 19 GB Daten drauf sind. Ich würde immer ein kleines bisschen mehr Platz lassen, als Daten auf der Partition liegen.
  3. Dann verschiebt ihr diese erste Partition ein wenig nach rechts, ein paar MB reichen aus, es müssen aber mehr als 2 MB sein! Wichtig: die Option „round off to cylinder boundary“ muss deaktiviert sein!
  4. Jetzt verlasst ihr das Gparted-Tool, aber nicht die gesamte Oberfläche, sondern einfach nur das GParted-Fenster. Dann öffnet ihr das Terminal-Fenster von Debian. Hier gebt ihr Folgendes ein: zuerst den Befehl ‚parted‘, danach ‚mkpart primary 63s 2047s‚.
    Dieses Kommando erzeugt eine primäre Partition, die von Sektor 63 bis 2047 reicht. Da ein Sektor 512 Bytes sind, ist diese Partition ca. 990KB groß. Der nächste freie Sektor ist demnach die 2048, also derjenige Sektor, an dem die Boot-Partition beginnen soll. (Der Platz VOR unserer Mini-Partition muss frei bleiben, weil sich dort Dinge wie der MBR und einige Programme verewigen.)
    Die Partition muss nicht zwingend bis Sektor 2047 gehen, die Hauptsache ist ja, dass die Boot-Partition bei einer Sektorzahl beginnt, die durch 8 teilbar ist bzw. ein Offset in Kilobytes (KB) aufweist, das durch 4 teilbar ist. Einige Leute wählen 64K, viele 128K. Windows 7, welches ja von Haus aus auf SSDs vorbereitet ist, beginnt die erste Partition bei Sektor 2048 bzw. bei 1.024 KB = 1 MB, also habe ich für mich beschlossen, dass ich es einfach auch so mache. 🙂
  5. Jetzt schließt ihr das Terminal-Fenster und startet wieder Gparted. Dort seht ihr jetzt die neue Mini-Partition (die man im Übrigen nicht mit NTFS oder FAT formatieren kann, weil zu klein!). Jetzt markiert ihr die vorhin verkleinerte und verschobene Boot-Partition und schiebt sie komplett an unsere Mini-Partition ran (also nach „links“). Wichtig: es muss wieder die Option „round off to cylinder boundary“ deaktiviert sein!
  6. Jetzt beendet ihr Gparted, startet es noch einmal und löscht unsere Mini-Partition am Anfang.
  7. Danach wird einfach der Rechner neu gestartet. Es ist sehr wahrscheinlich, dass der MBR überschrieben wurde oder unbrauchbar geworden ist. Dann legt ihr einfach die Boot-CD eures Betriebssystems ein, bootet von dort und wählt die Option „Computer reparieren“ aus. Den Rest erkennt das Tool von alleine und schreibt den MBR neu. Nach einem Neustart bootet euer OS ganz normal.

Volia, jetzt habt ihr eine korrekt angeordnete Boot-Partition. Solange die Partitionen „dahinter“ genau am Ende der Boot-Partition ansetzen, sind auch sie automatisch korrekt angeordnet.

Update von SSD-Master aus den Kommentaren (11.02.2011):

„[…] GParted in der aktuellen Version richtet nun automatisch alle Partitionen an den MB-Grenzen aus. Das ist sogar voreingestellt (Option „Ausrichten an MiB“). Also einfach GParted starten, Partitionseigenschaften ansehen, ist das Offset nicht auf 2048 (=1 MB bei 512 Byte je Cluster), dann die Partition etwas nach rechts verschieben und wieder zurück. Dann passts! […]“

Natürlich funktioniert die „alte“ Vorgehensweise auch weiterhin. Den Link zu einer Anleitung mit GParted findet Ihr unter „Links“ weiter unten.

Links

2010 11. Jan

Update available (German)

After reading a lot on TrueCrypt and SSD performance, it’s time to share the sum of the knowledge gathered with everyone else 😀 It has been written a lot on that topic, especially concerning the interoperability of TrueCrypt, ATA trim-command and wear leveling in connection with durability and performance issues of SSDs.

Performance and durability issues with (fully) encrypted SSDs

Especially in connection with the ATA-TRIM command, there are rumors out there that performance of encrypted SSDs degrades over time even if SSD-firmware and OS support the ATA-Trim command and newer versions of TrueCrypt implemented some SSD-specific optimizations. This guess is based upon the (unproven) hypothesis, that due to the way TrueCrypt handles writes to the SSD, TRIM commands may not reach the SSD controller at all and thus had no (positive) effect on drive performance degradation over time.

Worse: this is also of concern with regard to durability of (fully) encrypted SSDs. As wear leveling mechanisms can not make use of any blocks in partitions being encrypted with TrueCrypt, the SSD controller could only use some reserved overhead space (some reserved blocks dedicated to wear leveling) which will be heavily used and therefore become corrupt quite early. To prevent that, you should leave some unpartitioned space on your SSD if you plan to fully encrypt it as the controller can use this space for wear leveling.

Update: There are good news from AnandTech. They guys over there found out, that leaving a whopping 25% of the total capacity of your SSD unassigned may improve your performance by an order of magnitude, especially if the assigned space on your SSD is encrypted or nearly completely filled with user data (which basically turns out to have the same effects).

Some benchmarking

However, here are some numbers from two different systems. On both, I have an Intel Postville G2 160 GB installed, both drives can considered to be „unused“ (fresh install). Both drives / systems are running in AHCI mode, the firmware has been upgraded to support the ATA-trim command. For encryption, I chose TrueCrypt 6.3a using AES encryption in both cases.

Desktop system (Windows 7 x64): Intel dual Core CPU (Core 2 Duo E8400, 3 GHz@3.6GHz), 4 Gigs of RAM and an ICH10R southbridge chipset.

Notebook system (Windows Vista x86): Intel dual core CPU (T8100, 2,1 GHz@2,1 GHz), 4 Gigs of RAM and an ICH8 southbridge (benchmark run in ‚max. performance‘ energy management setting).

Unencrypted vs. AES-encrypted SSD performance (desktop system)

As you can see, there is a significant difference in SSD performance between an unencrypted and an AES-encrypted SSD. There seems to be a negative correlation between random transfer block size and performance degradation, resulting in significant performance degradation up to 58% if it comes to 4k random reads. Interestingly, SSD performance especially suffers in random read scenarios, which I as a layperson have no explanation for (your turn :)). If I should make a guess, I would blame it to the limited capabilities even of desktop-class chipsets in order to handle thousands IOPS an Intel SSD is able to offer (compared to some 50-100 in standard HDDs).

Unencrypted vs. AES-encrypted SSD performance (notebook system)

As you can see from the figures above, encryption-related SSD performance degradation on notebook hardware is less significant when it comes to small block random transfers compared to 512k block random transfers or sequential transfers. Given a bandwith of 145 MB/s my T8100 CPU can handle in AES mode (TrueCrypt benchmarks), this seems to be caused by the CPU limitating transfer speed.

After all, there is a non-objective difference between raw performance numbers and „felt performance“ with a fully encrypted SSD on notebook hardware: the performance difference is noticeable, nevertheless by far not as significant as the numbers indicate. And always keep in mind, that even 9,5 / 27,7 MB/s in 4k random reads / writes outperform any HDD out there by an order of magnitude, whereas sequential transfer performance remains on average desktop class HDD hardware level. Quite a good deal if you ask me.

The encryption procedure and (theoretical) issues

Even if the TrueCrypt website warns you about encrypting any drive using wear leveling mechanisms ‚on the fly‘, exactly that went well for me. Nevertheless, before encrypting I chose to draw an image from my SSD – just in case 🙂

Further SSD performance tuning for Windows Vista

There is an excellent guide on SSD performance tuning under Vista in the OCZ forums, as Microsoft’s OS does not support many SSD related functions natively. Those hints tend to have more influence on durability than they have on read / write performance itself.

Further Articles on „TrueCrypt“ and „Encryption“ (Benchmarks)

2009 12. Nov

Mal wieder ein neues Spielzeug, eine Intel X25-M G2 Postville-SSD (Solid State Drive) mit 160 GB. Kernfrage ist ja aber für jeden User: was um alles in der Welt soll ich mit einer Festplatte, bei der 160 GB 360 EUR kosten? Naja, darauf gibt es Antworten und zwar hier.

Warum? Weil ich von dem Ding so begeistert bin, dass es einfach raus muss 😀

Weiterlesen »

Media Addicted