Sektorgrößen von Datenträgern

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Dieser Artikel beschreibt die neue Sektorformatierung (Advanced Format), die von allen großen Festplattenherstellern verwendet wird und was bei der Verwendung solcher Festplatten zu beachten ist. Advanced Format (oder 4K) Sektoren bieten Vorteile für Festplatten mit hoher Kapazität und ist mittlerweile quasi Standard für Festplatten >= 2TB.

Effektivität von Advanced Format

Advanced Format

Als Advanced Format bezeichnet man die Erhöhung der Sektorgröße von Festplatten von 512 Bytes auf 4KB. Durch die Erhöhung der Sektorgröße wird der Platz auf der Festplatte effektiver genutzt und somit die nutzbare Kapazität erhöht. Außerdem wird die Auswirkung von Fehlern vermindert, da die Größe des ECC-Bereichs eines Sektors verdoppelt wurde[1].

512e

Advanced Format Emulation Logo

Um die Kompatibilität mit älteren Betriebssystemen und älterer Software sicherzustellen wurde die Emulation von 512 Byte Sektoren von den Herstellern implementiert. Dabei werden acht 512 Byte Sektoren in einem 4K Sektor gespeichert und von der Controller-Firmware transparent für das System verwaltet. Diese Emulation führt normalerweise nicht zu einer merkbar schlechteren Performance der Festplatte, obwohl vor allem Schreibzugriffe komplizierter werden.

Lesezugriff

Der Lesezugriff ist im Vergleich zum Schreibzugriff sehr einfach:

  1. Der Host möchte einen 512Byte Block lesen.
  2. Der Controller lädt den kompletten 4KB Sektor in dem sich der angeforderte 512Byte Block befindet.
  3. Der Controller extrahiert die Daten des 512Byte Blocks und liefert ihn entsprechend formatiert an den Host.

Schreibzugriff

Der Schreibzugriff läuft nach dem "read-modify-write" Prinzip ab:

  1. Der Host möchte 512Byte schreiben.
  2. Der Controller wählt einen geeigneten 4KB Sektor aus und lädt ihn komplett. (read)
  3. Der Controller modifiziert 512Byte im 4KB Sektor. (modify)
  4. Der Controller schreibt den geänderten 4KB Sektor auf die Festplatte. (write)

Kompatibilität

Um die Performance konstant hoch zu halten ist es notwendig, dass Partitionen auf 512e Festplatten entsprechend ausgerichtet sind - s.a. Partition Alignment - sodass in einem 4KB Sektor genau acht 512Byte Blöcke enthalten sind. Aktuelle Betriebssysteme richten die Partitionen bereits richtig aus (Windows > Vista SP1; Linux > 2.6.31 (fdisk > 1.2.3))[1]. Durch die korrekte Ausrichtung können Schreibzugriffe sehr gut vom Controller der Festplatte gecached werden und dadurch die Performance optimiert werden.

Ausrichtungszustände

4K native

Advanced Format Native Logo

Als 4K native oder 4Kn bezeichnet man Festplatten die ihre 4KB Sektoren auch an das Betriebssystem weitergeben und keine Emulation durchführen. Daher muss das Betriebssystem als auch die am System eingesetzte Software 4K Sektoren unterstützen[2]. Windows unterstützt ab 8.1 bzw. Server 2012 4Kn[3]; Linux ab Kernel 2.6.31[1].

Erkennung

Um den verwendeten Modus (512n (512Byte natives Device), 512e, 4Kn) einer angeschlossenen Festplatte zu erkennen, können unter Linux entweder Smartctl oder hdparm verwendet werden. Es wird allerdings vorausgesetzt, dass die Festplatte tatsächlich richtige Daten liefert.

Bei unseren Tests erwies sich hdparm als zuverlässiger in der richtigen Angabe der Sektorgrößen.

512n hdparm

sudo hdparm -I /dev/<device>

Im Abschnitt Configuration finden sich sowohl die physische als auch die logische Sektorgröße. Aus diesen beiden Werten kann abgelesen werden ob eine Emulation durchgeführt wird.

[...]
Configuration:
[...]
	Logical  Sector size:                   512 bytes
	Physical Sector size:                   512 bytes
[...]

Entsprechen beide Werte 512 Byte wird keine Emulation durchgeführt.

512e hdparm

sudo hdparm -I /dev/<device>
[...]
Configuration:
[...]
	Logical  Sector size:                   512 bytes
	Physical Sector size:                  4096 bytes
[...]

Wird als physische Sektorgröße 4096 Byte (oder 4KB) angegeben wird eine Emulation durchgeführt

512n smartctl

sudo smartctl -a /dev/<device>

Bei smartctl findet sich die gleiche Angabe in der Information Section.

smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
[...]
Sector Size:      512 bytes logical/physical
[...]

512e smartctl

sudo smartctl -a /dev/<device>
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
[...]
Sector Sizes:     512 bytes logical, 4096 bytes physical
[...]

Einzelnachweise


Foto Stefan Lengauer.jpg

Autor: Stefan Lengauer

Stefan Lengauer, tätig im Bereich Web Operations & Knowledge Transfer bei Thomas-Krenn, absolviert derzeit sein Masterstudium für Sichere Informationssysteme am Campus Hagenberg der Fachhochschule Oberösterreich.


Das könnte Sie auch interessieren

Linux Performance Auswertung mit collectd
Linux Verzeichnisbaum mit dem tree Kommando anzeigen
LVM VG vgname metadata too large for circular buffer beheben