Re: freier Platz auf USB-Flash-Stöpsel

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 13 Dec 2013 10:40:38 +0100 (CET)

Moin!

Marc Santhoff wrote:
> ich wöchte einen USB-Stecker mit viel Flash mittels geli als
> verschlüsseltes Speichermedium benutzen. Dabei wird entweder ein
> DOS-Dateisystem und eine Containerdatei oder gleich ein UFS-Dateisystem
> zum Einsatz kommen.

Tip: Beim Partitionieren auf Alignment achten. Das kann ein
kleines bisschen Extra-Performance bringen, auch wenn sich das
bei einem USB-Stöpsel nicht so sehr bemerkbar macht wie bei
einer Festplatte. Das klassische sysinstall/disklabel hat die
erste Partition immer bei Sektor 63 beginnen lassen; schlechter
aligned geht nicht. (Wie es aktuell der neue Installer macht,
weiß ich nicht, da ich es immer "manuell" mache.)

> Mein Frage ist, ob ich extra unpartitionierten Speicherplatz freilassen
> sollte, wie für SSDs empfohlen, oder ob die "wear leveling" Hardware
> moderner Speicherstöpsel das allein übernimmt und damit ausreichend ist.

Die Empfehlung, bei SSDs unpartitionierten (unbeschriebenen!)
Platz freizulassen, gilt insbesondere dann, wenn kein TRIM-
Support vorhanden ist. Mit Hilfe von TRIM (bzw. UNMAP im Falle
von SCSI; FreeBSD nennt beides im Kernel-Kontext "BIO_DELETE")
kann das OS dem Controller der SSD mitteilen, wenn die Daten
in einem Sektor nicht mehr benötigt werden, z.B. weil die Datei
gelöscht wurde, so dass der Controller diesen Sektor wieder
dem Wear-Levelling-Pool zuführen kann.

Ohne TRIM-Support dagegen muss der Controller früher oder
später (wenn jeder Sektor irgendwann einmal beschrieben wurde)
davon ausgehen, dass alle Sektoren in Verwendung sind, so dass
der Wear-Levelling-Pool entsprechend klein ist. Dies hat bei
modernen Controllern mit statischem Wear-Levelling zwar keine
Auswirkung auf die Lebensdauer, kann aber die Geschwindigkeit
beim Schreiben mit der Zeit drastisch reduzieren, da der
Controller häufiger den Inhalt von Sektoren umschichten muss,
die vermeintlich Daten enthalten.

Daher gibt es (bei SSDs) in so einem Fall die Empfehlung, am
Ende ca. 25% Platz nicht zu partitionieren, um sie praktisch
dem Wear-Levelling zur Verfügung zu stellen. Dieser Platz
darf auch niemals beschrieben werden (z.B. keinesfalls mit dd
ausnullen), da der Controller sie dann sofort und für alle
Zeiten als belegt erkennt. In dem Fall hilft, eine Partition
über die ganze SSD zu legen, "newfs -E" darauf zu machen,
dann sofort die Partition wieder zu entfernen (nicht mounten!)
und eine neue, kleinere anzulegen und dabei die genannten 25%
Platz unbelegt zu lassen.

Alternativ hat PJD hier ein Mini-Programm gepostet, mit dem
man direkt das komplette Disk-Device mit TRIM ausradieren
kann (z.B. "trim ada0"):

http://lists.freebsd.org/pipermail/freebsd-fs/2010-December/010232.html

> Natürlich sollte man sicher sein, ob der Hersteller solche feinen
> Features überhaupt eingebaut hat ...

Genau das ist die Frage. Bei USB-Speicherstöpseln ist es sehr
schwierig, an technische Daten zu kommen, beispielsweise ob
statisches oder dynamisches Wear-Levelling zum Einsatz kommt,
wie groß die Brutto-Kapazität ist (und somit die Größe des
Wear-Levelling-Pools, die über die nominale Kapazität hinaus-
geht), und so weiter. Die Hersteller halten diese Daten unter
Verschluss. Warum wohl?

Da vor allem bei Speicher-Sticks der Konkurrenzdruck enorm groß
ist, bezweifle ich mal, dass die Hersteller dort das Beste vom
Besten einbauen. Vermutlich unterstützen die meisten Sticks
gar kein TRIM, aber ich habe noch keine repräsentative Erhebung
gemacht.

> Weiß das jemand?

Wenn es jemand weiß, dann die Hersteller selbst. Und die NSA.

> Wenn ja, wieviel Platz sollte prozentual frei bleiben (falls man das so
> formulieren kann, hängt bestimmt von den Dateisystemparametern ab, ich
> brauche inodes für viele kleine Dateien)

Daumenregel sind 20 bis 25 Prozent. Falls Du auf den Platz
verzichten kannst, schadet es nicht, wenn Du den freilässt.
Wie gesagt, ich bezweifle, dass USB-Sticks TRIM unterstützen,
und selbst wenn, bin ich mir nicht völlig sicher, ob alle
beteiligten Treiber das über eine USB-Verbindung durchreichen
können.

Davon abgesehen: Das msdosfs unterstützt kein TRIM, daher
nützt es Dir da ohnehin nichts. Unter FreeBSD unterstützen
es nur UFS und (neuerdings) ZFS.

> Tschüßle (neulich im Raum Stuttgart so gehört ;),

Das geht ja noch. :-) (Auch wenn ich persönlich Grußformeln,
die religiös angehaucht sind, eher nicht bevorzuge.)

Ich kann mich auch einfach nicht an das in Bayern übliche
"Servus" gewöhnen ... so hieß früher mal das Klopapier bei
Aldi Nord (inzwischen heißt es "Solo", und die Marke Servus
gehört zum KC-Konzern). Und von der Wortherkunft her (lat.
servus = Sklave) würde ich es eher im BDSM-Bereich verorten.

Schönen Tag, und auf Wiedersehen. ;-)

Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG,  Marktplatz 29, 85567 Grafing
Handelsregister:  Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München,
HRB 125758, Geschäftsführer:  Maik Bachmann,  Olaf Erb,  Ralf Gebhart
FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd
"Above all, they contribute to the genetic diversity in the
operating system pool.  Which is a good thing."
  -- Ruben van Staveren, on the question which BSD OS is the best one.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 13 Dec 2013 - 10:40:48 CET

search this site