Bedeutung Sektorengröße bei SSDs und Festplatten

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
freebeasty
Beiträge: 49
Registriert: 19.02.2006 00:13:41
Wohnort: Karlsruhe

Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von freebeasty » 15.01.2020 15:06:11

Hi Leute,

ich habe heute auf meinem recht aktuellen PC ein Debian 10 installiert.

Dabei ist mir bei der Ausgabe von fdisk folgendes aufgefallen :

Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZRZ-00Z
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A5BFB4E1-C321-11E9-ADD2-00E0534578BF

Was mich irritiert - die logische Sektorengröße liegt bei 512kb.

Wäre es nicht besser / schlechter, wenn diese auch bei 4096 läge ?

Bin gespannt auf Eure Rückmeldung.

Danke und Grüße,
Raphael

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von pferdefreund » 16.01.2020 08:10:38

Es sind 512 und nicht 512KB - aber egal. Mit 512 ist das Teil für jedes System kompatibel. Das ist die übliche Größe bei den normalen HDs. Größer ist normal zwar immer besser - ob man das einstellen kann, keine Ahnung, kommt aber auch auf die Anwendungen und Daten an. Viele kleine Dateien von ein paar Byte - und für jede gleich 4096 verbraten, macht ja auch nicht wirklich Sinn.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von MSfree » 16.01.2020 09:06:23

pferdefreund hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 08:10:38
Es sind 512 und nicht 512KB - aber egal. Mit 512 ist das Teil für jedes System kompatibel....
und für jede gleich 4096 verbraten, macht ja auch nicht wirklich Sinn.
Modernen Festplatten simulieren inzwischen auch nur noch 512-Byte Blöcke, die arbeiten inzwischen auch mit 4kB Sektoren.

Dateisysteme arbeiten ohnehin mit mindestens 4kB großen Datenblöcken, oft sogar viel mehr, daher ist die traditionelle Plattenblockgröße ohnehin ein wenig überholt.

Das Problem, bei simullierten Blöcken ist, daß beim Schreiben eines einzelnen 512-Byte-Blocks, ein 4kB-Block gelesen werden muß, die 512 Byte reinmontiert werden müssen und dann der komplette 4kB-Block geschrieben werden muß. Will man 8 solche 512-Byte-Blöcke schreiben, wiederholt sich das Prozedere acht mal, was die Schreibperformance im Zweifelsfall achtelt.

Noch viel schlimmer ist das für SSDs, da hier die Zahl der Schreibvorgänge künstlich erhöht wird, was der Lebensdauer nich zuträglich ist.

Am besten ist, man stellt seine Partitionen so ein, daß sie auf volle 4kB-Grenzen fallen und nimmt für das Dateisystem ein ganzzahliges Vielfaches von 4kB als Blockgröße. Da Linuxdateisysteme ohnehin mit 4kB Blockgröße arbeiten, muß man sich hier keine Gedanken machen.

freebeasty
Beiträge: 49
Registriert: 19.02.2006 00:13:41
Wohnort: Karlsruhe

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von freebeasty » 16.01.2020 09:11:53

Hi Msfree,

wenn ich Dich also richtig verstehe, wäre es besser, wenn also logische und physikalische Sektorengröße gleich groß wären ?

Wenn das stimmt, warum erkennt der Debian-Installer das nicht von alleine ?

Kann ich die logische Sektorengröße acn nachträglich noch mal ändern oder muss ich neu installieren ?

Kann ich auch beim Debian-Installer die Sektorengröße entsprechend einstellen ?

Danke und Grüße,
Raphael

willy4711

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von willy4711 » 16.01.2020 09:36:41

MSfree hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 09:06:23
Modernen Festplatten simulieren inzwischen auch nur noch 512-Byte Blöcke, die arbeiten inzwischen auch mit 4kB Sektoren.

Dateisysteme arbeiten ohnehin mit mindestens 4kB großen Datenblöcken, oft sogar viel mehr, daher ist die traditionelle Plattenblockgröße ohnehin ein wenig überholt.
Hmm. das Thema interessiert mich jetz aber auch, da mein "Neuer" im Anrollen ist, und da 2 M.2 SSD (PCIe) verbaut werden.
Hab grad mal im "Bestand" nachgesehen. Die beiden Platten sind - soweit ich mich noch erinnern kann - vom Installer formatiert worden.
Da ist nichts von 4kB zu sehen:
Nr. 1:

Code: Alles auswählen

fdisk -l /dev/sdc
Festplatte /dev/sdc: 119,25 GiB, 128035676160 Bytes, 250069680 Sektoren
Festplattenmodell: Samsung SSD 850 
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x31088935

Gerät      Boot   Anfang      Ende  Sektoren Größe Kn Typ
/dev/sdc1           2048  51015679  51013632 24,3G 83 Linux
/dev/sdc2       51015680 250068991 199053312 94,9G  5 Erweiterte
/dev/sdc5       51017728 250068991 199051264 94,9G 83 Linux
Nr. 2:

Code: Alles auswählen

fdisk -l /dev/sda
Festplatte /dev/sda: 256,18 GiB, 275064201216 Bytes, 537234768 Sektoren
Festplattenmodell: Crucial_CT275MX3
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: 105CEE54-D7BF-4598-87DB-07E7F971E5F1

Gerät        Anfang      Ende  Sektoren  Größe Typ
/dev/sda1      2048  51576831  51574784  24,6G Linux-Dateisystem
/dev/sda2  51576832 537233407 485656576 231,6G Linux-Dateisystem
Wäre es dann besser, die SSD's vor der Installation zu formatieren ?

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von MSfree » 16.01.2020 09:57:02

willy4711 hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 09:36:41
Hmm. das Thema interessiert mich jetz aber auch, ...
Hab grad mal im "Bestand" nachgesehen. Die beiden Platten sind - soweit ich mich noch erinnern kann - vom Installer formatiert worden.
Da ist nichts von 4kB zu sehen:
Nr. 1:

Code: Alles auswählen

fdisk -l /dev/sdc
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
Nr. 2:

Code: Alles auswählen

fdisk -l /dev/sda
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
Wäre es dann besser, die SSD's vor der Installation zu formatieren ?
Mit SSDs oder Festplatten, die 512Byte-Sektorgröße verwenden, was bei dir der Fall ist, brauchst du dir keinen Kopf machen. Da spielt das Alignment zwischen der Sektorgröße und der Blockgröße des Dateisystems, keine Rolle. Du landest immer auf einem ganzen physikalischen Block.

Anders sähe es mit 4kB Sektorgröße aus. Wenn sich deine Partitionierung an der logischen Sektorgröße orientiert und du legst die erste Partition am logischen Block 2, also 1024Bytes vom Anfang der Platte entfernt, an, dann würde der erste Datenblock des Dateisystems (4kB Blöcke) also bei Byte 1024 anfangen und bei Byte 5119 aufhöhren. Allerdings schneidet dein Datenblock dann 2 physikalische Sektoren an, was letztlich zur doppelten Schreibbelastung der SSD oder Festplatte führen würde. Für die Festplatte heißt das im dümmsten Fall nur eine Halbierung der Schreibgeschwindigkeit, für die SSD jedoch doppeltes Schreiben jedes Sektors.

Allerdings macht hier das interne Caching der Platte/SSD einiges wett, so daß es letztlich nie so schlimm kommt, aber es ist sehr einfach vermeidbar, wenn man die Partitionen richtig anlegt.

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von Tintom » 16.01.2020 10:49:13

Die Sektorengröße von 512 Byte ist noch ein Relikt aus alten Zeiten. Maximal können hiermit 2,2T(i)B (2³²*512 Byte) zugeordnet werden. Frühere Dateisysteme haben auch mit der Sektorgröße von 512 Byte gearbeitet (z.B. FAT16), moderne Dateisysteme müssen aber schlicht eine größere Sektorengröße nehmen, wenn sie mehr Daten aufnehmen wollen und gleichzeitig dazu noch 32-Bit kompatibel sein wollen. So ist das Limit von ext4 bei 16 T(i)B, wenn mit 4kB-Sektoren gearbeitet wird.

Ich bin vor einiger Zeit mal über den folgenden Artikel gestolpert: https://blogofterje.wordpress.com/2012/ ... n-sd-card/
Kurzfassung: Der Autor hat auf einem Flashspeicher (SD-Karte) eine Partition samt Dateisystem eingerichtet und sich nicht an das 4kB-Limit gehalten. Die Folge waren Performanceeinbrüche in der Schreib-/Leseleistung, weil moderne Dateisysteme intern mit 4kB-Blöcken arbeiten.

Wie bereits von @MSfree beschrieben fängt eine SSD durch Caching sehr viel ab und die Auswirkungen sollten für die Praxis vernachlässigbar sein.

willy4711

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von willy4711 » 16.01.2020 11:25:54

Tintom hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 10:49:13
Die Sektorengröße von 512 Byte ist noch ein Relikt aus alten Zeiten.
So richtig verstehe ich das nicht. Obige Platte /dev/sda hab ich mit dem Installer mit GPT eingerichtet.

Die M.2 SSD ist nur bestimmt nicht ein altes Eisen.

In der Wiki steht unter dem Bild zu Aufteilung der GPT:
Schematische Darstellung einer GPT. Jeder LBA-Block entspricht einem Sektor der Festplatte und ist 512 Bytes groß.
Hat denn die Aufteilung der GPT (512 Bytes) nichts mit der restlichen Aufteilung des Laufwerkes zu tun?

Mal die Platte /dev/sda/ mit gdisk betrachtet:

Code: Alles auswählen

# gdisk
GPT fdisk (gdisk) version 1.0.4

Type device filename, or press <Enter> to exit: /dev/sda
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): i
Partition number (1-2): 1
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: 40F99B9D-4BD4-4DB6-B96D-A10823DE2857
First sector: 2048 (at 1024.0 KiB)
Last sector: 51576831 (at 24.6 GiB)
Partition size: 51574784 sectors (24.6 GiB)
Attribute flags: 0000000000000000
Partition name: ''
etwas OT:
Warum benutzt man überhaupt noch die MBR-Partitionstabelle ?
Ich denke die GUID-Partitionstabelle (GPT) hat diverse Vorteile (Stichwort: Sekundäre Backup-GPT)
GPT ist ja überhaupt nicht an UEFI gebunden. Allerdings meckert Grub (z.B. bei einem Update) immer rum, es wäre irgendetwas nicht richtig.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von MSfree » 16.01.2020 11:53:18

willy4711 hat geschrieben: ↑ zum Beitrag ↑
16.01.2020 11:25:54
So richtig verstehe ich das nicht. Obige Platte /dev/sda hab ich mit dem Installer mit GPT eingerichtet.
4kB Sektoren wurde für Platten mit mehr als 2TiB Kapazität eingeführt. Inzwischen sind auch alle auf dem Markt befindlichen kleineren Platten mit 4kB Sektoren ausgestattet, weil die Hersteller hier ihre Produktionsabläufe vereinheitlicht haben. Mit veraltet hat das aber nicht zu tun.

SSDs sind hier nochmal eine andere Welt. Die haben keine mechanischen Limits. Theoretisch könntest du Flashspeicher auch mindestens byteweise ansprechen. Damit sich SSDs wie Festplatten verhalten, müssen sie sich als Blockdevice (also mit Sektorengrenzen) nach aussen geben. Und solange die SSDs in der Regel noch deutlich kleiner als 2TiB sind, wirst du hier auch noch 512Byte Sektoren finden.
Warum benutzt man überhaupt noch die MBR-Partitionstabelle?
Bei aktuellen Rechnern ist das eine berechtigte Frage. Ältere Kisten booten schlicht und einfach nicht, wenn das BIOS keinen MBR findet. GPT wird erst ab UEFI unterstützt.

Für die zweite Festplatte spielt es dann keine Rolle mehr, da kümmert sich der OS-Kernel um das Auslesen der Partitiontabelle und bindet die Partitionen eigentständig ein, es muß also nur der Kernel GPT interprätieren können, und das geht schon erstaunlich lange.

willy4711

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von willy4711 » 16.01.2020 11:57:49

@MSfree
Dank für die Erklärung. Wieder etwas Licht ins Dunkel gekommen :THX: :hail:

freebeasty
Beiträge: 49
Registriert: 19.02.2006 00:13:41
Wohnort: Karlsruhe

Re: Bedeutung Sektorengröße bei SSDs und Festplatten

Beitrag von freebeasty » 04.10.2022 14:54:57

Hi Leute,

sorry, wenn ich nochmal frage ..

Aber für mich nur nochmal zusammengefasst und vereinfacht :

Wenn ich in Debian 11 Datenträger (intern wie extern, M.2, SSD, oder klassische Platte) im Nachgang der Installation anfasse (Partitionen erzeugen, Partitionen formatieren), muss ich dann bzgl. der Sektorengröße etwas beachten ?
Insbesondere, wenn ich ältere Tools (z. B. fdisk) bzw. Konsolentools verwende ? Also immer nur hinsichtlich der Sektorengröße ?

Danke und Grüße,
Raphael

Antworten