Ist es möglich, dass die logische Blockgröße des Dateisystems geringer ist als die Größe des physischen Sektors?

453
Karim Manaouil

Nehmen wir an, wir haben ein Blockgerät (z. B. Festplatte) mit einer Sektorgröße von 4096 Byte, und es ist keine 512-Byte-Emulation verfügbar (Die Festplatte kann nur Einheiten mit einer Größe von 4096 Byte verarbeiten).

Kann das Gerät mit einem Dateisystem formatiert werden, das einen logischen Block von 512 Byte aufweist? Wie werden die Festplatten die Plattenblöcke verwenden? Ich meine, wird es nur 512 Bytes aus den 4096 Bytes verwenden und der Rest ist verschwendet (Eins-zu-Eins-Zuordnung zwischen Plattensektoren und FS-Blöcken)? Ich nehme an, wenn das Dateisystem von diesem Problem weiß, kann er selbst eine Art von 512-Byte-Emulation erstellen (Diskettensektor lesen, einen Teil von 512 Bytes im RAM modifizieren und Sektor auf die Festplatte zurückschreiben), obwohl es einen gewissen Overhead oder Redundanz gibt Arbeit bei jedem Schreiben. Ich bin mir nicht wirklich sicher, ob das Sinn macht! Korrigiere mich bitte.

0
Es ist möglich, aber sehr ineffizient. Genauso wie das Betriebssystem normalerweise die physische Blockgröße von Medien durch den Einsatz von Puffern vor dem Benutzer / den Anwendungen verbirgt, könnte ein zusätzlicher Treiber für die 512-Byte-Emulation über den Basis-Festplattentreiber gelegt werden. * "Ich meine, es wird nur 512 Bytes von den 4096 Bytes verwenden ..." * - Nein, das ist verschwenderisch und dumm. Fazit: Für ungefähr gleich viel Aufwand wäre es besser, das Dateisystem an die Sektorgröße anzupassen. sawdust vor 5 Jahren 1

1 Antwort auf die Frage

0
Karim Manaouil

Es ist möglich, eine solche Konfiguration zu haben, ist jedoch nicht sehr üblich. Alle wichtigen Dateisysteme (NTFS, FAT32, ext4, btrfs ... usw.) verwenden 4-KB-Blöcke, die mit der am häufigsten verwendeten Speicherseitengröße (4096-Byte-Seiten) übereinstimmen. Festplatten vor diesem Jahrzehnt verwendeten 512 physische Sektoren, aber alle modernen Festplatten (und sogar SSDs) verwenden 4-KB-physische Sektoren (aufgrund von Problemen mit der Luftdichte), da jedoch ein großer Legacy-Software-Stack vorhanden ist, der 512-Byte-Annahmen auf Blockgeräten (Windows Vista) enthält (Windows XP, Linux Kernel vor 2.6 und viele andere User-Space-Dienstprogramme und eingebettete Anwendungen) Festplattenhersteller implementieren eine sogenannte 512-Byte-Emulation, die der Software (Betriebssystem) eine 512-Bit-Sektorgröße zur Verfügung stellte, jedoch eine zugrunde liegende 4096-Bit-Sektorgröße verwendet.

XFS kann für die Verwendung von 512-Byte-Blöcken konfiguriert werden. Wenn Sie jedoch bereit sind, diese Konfiguration auf 4096-B-Platten zu verwenden, müssen Sie sicherstellen, dass Ihre Partitionen gut ausgerichtet sind. Andernfalls leiden Sie unter Leistung Verschlechterung: Wenn Sie einen 512-Bit-Block schreiben, holt die Festplatte zuerst den gesamten 4096-Bit-Sektor in sein internes DRAM, modifiziert einen Teil von 512 Bit und schreibt sie dann zurück auf die Festplatte (Obwohl einige Caching-Techniken die Auswirkungen dieses Problems verringern können) .

Die abschließende Antwort lautet also: Ja, es ist möglich, kann jedoch zu Leistungseinbußen führen, und in der Regel handelt es sich nicht um eine übliche IRL-Konfiguration.

Selbst wenn der Datenträger ordnungsgemäß ausgerichtet ist, leiden Sie immer noch unter Leistungseinbußen, da für ein Schreiben, das kleiner als die Blockgröße ist, immer ein Lese-, Änderungs- und Schreibvorgang erforderlich ist phuclv vor 5 Jahren 0