zurück zum Artikel

Kernel-Log: Linux und Festplatten mit 4-KByte-Sektoren

Trends & News | Kernel-Log

Fdisk richtet Partitionen in Zukunft so aus, dass die neuen Festplatten mit 4 KByte großen Sektoren optimale Leistung bringen. Die Realtime-Linux-Entwickler haben neue Kernel-Versionen freigegeben und auch die Fertigstellung von 2.6.32.9 und 2.6.33 rückt näher.

Red-Hat-Entwickler Karel Zak hat die Version 2.17.1 der von vielen Linux-Distributionen genutzten Werkzeugsammlung util-linux-ng freigeben[1]. Zu der gehört das Kommandozeilenprogramm "fdisk", das Partitionen in der mit der Option "-u" aktivierbaren sektorbasierten Betriebsart von nun an standardmäßig an Megabyte-Grenzen auszurichten versucht, wie es Windows 7 und Vista schon länger machen. Das klingt wie eine kleine unbedeutende Neuerung, sie aber überaus wichtig für die allmählich in den Handel kommenden großen Festplatten, die intern mit 4 KByte großen Sektoren arbeiten, aus Kompatibilitätsgründen aber nach außen vorgeben, wie alle Desktop-Festplatten der vergangenen 20 Jahre mit 512 Byte großen Sektoren zu arbeiten.

Linux-Dateisysteme lesen und schreiben zwar bevorzugt in Blöcken zu 4 KByte, allerdings legen ältere fdisk-Versionen die erste Partition so an, dass sie standardmäßig mit dem (512-Byte-)Sektor 63 beginnt – also mitten in einem physischem (4-KByte-)Sektor. Schreibt man jetzt 4 KByte Daten an den Anfang der Partition, muss die Festplatte zunächst zwei physische Sektoren à 4 KByte lesen, die neu zu schreibenden 4 KByte auf diese beiden physischen Sektoren verteilen, eine Extrarunde der Scheiben abwarten und dann die beiden Sektoren wieder auf die Platte schreiben.

Das führt dazu, dass der Datendurchsatz bei 4-KByte-Platten (und auch manchen RAID-Arrays) signifikant sinkt gegenüber einer Partitionierung, bei der alle Partitionen auf durch acht teilbaren (512-Byte-)Sektornummern beginnen. Hintergründe dazu liefern ein Artikel bei LWN.net[2] und das Platten-Karussell in c't 4/10, Seite 66[3], in dem unter anderem die WD10EARS von Western Digital getestet wurde – einer der ersten und im Handel erhältliche Desktop-SATA-Festplatte, die intern 4 KByte große Sektoren nutzt.

Erst vor kurzem hatte die Problematik auf Slashdot[4] für längere Diskussionen gesorgt, nachdem Osnews einen Artikel[5] mit der Überschrift "Linux ist nicht ganz bereit für Festplatten mit 4-KByte-Sektoren" veröffentlicht hatte. Wie richtig oder falsch diese Überschrift ist, hängt von der Interpretation des Begriffs "Linux" ab[6], denn den Linux-Kernel trifft hier nur wenig Schuld; vielmehr informiert er Userland-Anwendungen bereits seit der Aufnahme der I/O-Topology-Patches bei Linux 2.6.31[7] über alle wichtigen Parameter, damit Partitionen optimal ausgerichtet werden können.

Fdisk wertet diese Informationen aber erst seit der im Januar freigegebenen Version von util-linux-ng[8] aus. Damit ist das Problem aber auch noch nicht vom Tisch, denn Fdisk ist nicht das einzige Linux-Distributionen beiliegenden Partitionierungstool. Zudem müssen auch die Installer der Distributionen angepasst werden oder Fdisk richtig nutzen – Martin K. Petersen, der Entwickler der I/O-Topology-Patches, vermutet in einem Kommentar[9] zum oben genannten Osnews-Artikel, dass das bislang nur bei Fedora der Fall ist.

Die Fdisk-Version in den aktuellen util-linux-ng 2.17.1 richtet die Partitionen nicht nur nach Megabyte-Grenzen aus, sondern kennt nun auch den Parameter "-c". Der deaktiviert einen mit der neuen Ausrichtungsart unverträglichen DOS-Kompatibilitätsmodus, in dem Partitionen nach logischen Zylinder-Grenzen ausgerichtet werden, wie es zu DOS-Zeiten vor der LBA-Adressierung nötig war und es Fdisk bis heute macht, sofern man Fdisk nicht durch Eingabe von "u" oder den Kommandozeilenparameter "-u" auf sektorbasierten Betrieb umgestellt. Der DOS-Modus gilt jetzt als deprecated (überholt), bleibt bei dieser Version aus Kompatibilitätsgründen aber noch ein letztes Mal Standardvorgabe. Bis dahin sollte man die sektorbasierte Anzeige manuell aktivieren, um eine korrekte Ausrichtung für 4-KByte-Platten zu gewährleisten.

Eine Woche nach Veröffentlichung des vorangegangenen Kernel-Logs[10] haben die Verwalter der Stable-Series[11] die Kernel-Version 2.6.32.8[12] freigegeben, die sich durch mehr als 70 Patches[13] von ihrem Vorgänger unterscheidet. Die Kernel-Version 2.6.32.9 wird gerade vorbereitet[14]; die Zeit zum Einreichen von Kommentaren ist bereits abgelaufen, daher dürfte sie in Kürze erscheinen. [Update] Zirka 40 Minuten nach der Publikation dieses Kernel-Logs hat Greg Kroah-Hartman den Linux-Kernel 2.6.32.9 freigegeben[15]. [/Update]

Die achte Vorabversion von 2.6.33 ist mittlerweile über zehn Tage alt[16], obwohl Torvalds in dieser Phase des Entwicklungszyklus[17] neue RCs normalerweise wöchentlich freigibt. Ob das auf eine baldige Freigabe von Linux 2.6.33 hindeutet oder Torvalds vorher noch 2.6.33-rc9 veröffentlicht, wagen wir nicht zu prognostizieren.

Aktiv waren in den vergangenen Tagen auch die Entwickler des RT-Zweigs, die Linux-Kernel mit Echtzeitfähigkeiten entwickeln. So gilt die kürzlich freigegebene Version 2.6.31.12-rt21[18] von nun an als "Latest Stable", wie aus einer Meldung[19] des OSADL (Open Source Automation Development Lab) hervorgeht. Auf der OSADL-Webseite findet sich zudem ein kurzer Bericht[20] zu der auch im vierten Teil[21] der Kernel-Log-Mini-Serie "Was 2.6.33 bringt" erwähnten Umbenennung einiger Spinlocks. Die hat den Umfang des Realtime-Patches signifikant reduziert, wie Thomas Gleixner in der Freigabe-Mail zu Linux 2.6.33-rc8-rt1 schreibt[22] – dem ersten RT-Kernel, der auf auf den aktuellen Vorabversionen von Linux 2.6.33 basiert.

Kernel

Kernel-Umland ("Plumbing layer") und Userland-Treiber

Grafik

Siehe auch:

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs[56] auf heise open[57]. Neue Ausgaben des Kernel-Logs[58] werden auf den Identi.ca[59]- und Twitter[60]-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H[61]" erscheinenden Übersetzungen auf den Identi.ca[62]- und Twitter[63]-Konten "@kernellog2". Der Autor des Kernel-Logs zwitschert unabhängig davon über einige Kernel-Log-Themen bei Identi.ca[64] und Twitter[65] als "@kernellogauthor". (thl[66]).


URL dieses Artikels:
http://www.heise.de/-938237

Links in diesem Artikel:
[1] http://thread.gmane.org/gmane.linux.file-systems/38367
[2] http://lwn.net/Articles/322777/
[3] https://www.heise.de/kiosk/archiv/ct/2010/4/66_kiosk
[4] http://hardware.slashdot.org/story/10/02/14/1541244/Linux-Not-Quite-Ready-For-New-4K-Sector-Drives
[5] http://www.osnews.com/story/22872/Linux_Not_Fully_Prepared_for_4096-Byte_Sector_Hard_Drives
[6] https://www.heise.de/ct/artikel/Die-Woche-Wann-darf-man-Linux-dazu-sagen-922706.html
[7] https://www.heise.de/ct/artikel/Tiefschuerfend-Proceedings-vom-Linux-Symposium-2009-237152.html
[8] https://www.heise.de/ct/artikel/Kernel-Log-Langzeit-Pflege-fuer-2-6-32-util-linux-ng-erweitert-909587.html
[9] http://www.osnews.com/thread?409410
[10] https://www.heise.de/ct/artikel/Kernel-Log-Langzeit-Pflege-fuer-2-6-32-util-linux-ng-erweitert-909587.html
[11] https://www.heise.de/glossar/entry/Stable-Series-397935.html
[12] http://thread.gmane.org/gmane.linux.kernel/948081
[13] http://thread.gmane.org/gmane.linux.kernel/946506
[14] http://thread.gmane.org/gmane.linux.kernel/952135
[15] http://thread.gmane.org/gmane.linux.kernel/953294
[16] http://thread.gmane.org/gmane.linux.kernel/949447
[17] https://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[18] http://thread.gmane.org/gmane.linux.kernel/879066/focus=5546
[19] http://www.osadl.org/Single-View.111+M5ce948a0fdf.0.html
[20] http://www.osadl.org/Single-View.111+M5602c30ec73.0.html
[21] https://www.heise.de/ct/artikel/Kernel-Log-Was-2-6-33-bringt-4-Architektur-und-Virtualisierung-928038.html
[22] http://lkml.indiana.edu/hypermail/linux/kernel/1002.2/02212.html
[23] https://www.heise.de/glossar/entry/Linux-Kernel-Mailing-List-397973.html
[24] http://thread.gmane.org/gmane.linux.kernel/949008
[25] http://thread.gmane.org/gmane.linux.kernel/948648
[26] http://thread.gmane.org/gmane.comp.file-systems.ext4/17599
[27] https://www.heise.de/ct/artikel/Kernel-Log-Langzeit-Pflege-fuer-2-6-32-util-linux-ng-erweitert-909587.html
[28] http://lists.lm-sensors.org/pipermail/lm-sensors/2010-February/027759.html
[29] http://www.gnome.org/~michael/data/2010-02-09-bootchart2.pdf
[30] http://www.ibm.com/developerworks/linux/library/l-virtio/index.html
[31] http://gutenprint.sourceforge.net/
[32] http://sourceforge.net/projects/gimp-print/files/gutenprint-5.2/5.2.5/NEWS/view
[33] http://forums.linux-foundation.org/read.php?21,11485,11485#msg-11485
[34] http://forums.linux-foundation.org/read.php?21,11512,11512#msg-11512
[35] http://lkml.indiana.edu/hypermail/linux/kernel/1002.2/02108.html
[36] http://gujin.sourceforge.net/
[37] http://thread.gmane.org/gmane.comp.freedesktop.xorg/42458
[38] http://thread.gmane.org/gmane.comp.freedesktop.xorg.announce/996
[39] http://www2.ati.com/drivers/linux/catalyst_102_linux.pdf
[40] https://www.heise.de/meldung/X-org-Server-1-7-0-erschienen-807704.html
[41] https://www.heise.de/ct/artikel/Kernel-Log-Langzeit-Pflege-fuer-2-6-32-util-linux-ng-erweitert-909587.html
[42] http://airlied.livejournal.com/70828.html
[43] http://airlied.livejournal.com/71012.html
[44] http://thread.gmane.org/gmane.comp.freedesktop.xorg.announce/990
[45] http://wiki.x.org/wiki/BoardOfDirectors
[46] http://thread.gmane.org/gmane.comp.freedesktop.xorg/42627
[47] http://thread.gmane.org/gmane.comp.freedesktop.xorg/42626
[48] http://thread.gmane.org/gmane.comp.freedesktop.xorg.announce/1000
[49] http://zrusin.blogspot.com/2010/02/new-features.html
[50] http://zrusin.blogspot.com/2010/02/3d-apis.html
[51] https://www.heise.de/meldung/Neuer-Anlauf-zur-Aufnahme-von-AppArmor-in-Linux-935709.html
[52] https://www.heise.de/meldung/Git-1-7-bricht-mit-Kompatibilitaet-930212.html
[53] https://www.heise.de/meldung/Nouveau-in-Fedora-13-bietet-experimentelle-3D-Unterstuetzung-930222.html
[54] https://www.heise.de/meldung/Kernel-Korrekturen-ohne-Neustart-durch-Ksplice-Uptrack-926318.html
[55] https://www.heise.de/meldung/Warum-die-Android-Treiber-aus-dem-Linux-Kernel-flogen-921104.html
[56] https://www.heise.de/open/kernel-log-3007.html
[57] https://www.heise.de/open/
[58] https://www.heise.de/glossar/entry/Kernel-Log-397909.html
[59] http://identi.ca/kernellog
[60] http://twitter.com/kernellog
[61] http://www.h-online.com
[62] http://identi.ca/kernellog2
[63] http://twitter.com/kernellog2
[64] http://identi.ca/kernellogauthor
[65] http://twitter.com/kernellogauthor
[66] mailto:thl@ct.de