Gestern bekam ich von Michael die Frage, wie man denn unter Linux für die “kryptischen” Plattenbezeichnungen in Ksysguard die zugehörigen Partitionen herausfinden könne. Er hatte ein Performance-Problem und wollte sehen, auf welche Platte bzw. Partition das System besonders häufig schreibend zugreift.
Mit “kryptischen” Plattenbezeichnungen waren etwa nachfolgende Einträge im Sensor-Bereich von Ksysguard unter dem Punkt Festplattendurchsatz gemeint :
Ksysguard – Ausschnitt aus dem Sensor-Browser
Festplattendurchsatz
+ 2:0 + 7:0 … … + 7:7 + 8:0 + 8:1 … … + 8:28 + 11:0 + 11:1 (s. Abbdg.)

Nun, hinter den Nummern verbergen sich die “major” und “minor” device numbers. Dieses Wissen allein hilft aber auch nicht direkt weiter. Wichtig war Michael ja die Zuordnung dieser Device-Nummern zu den Plattenpartitionen. Letzere sind dem Administrator natürlich besser geläufig.
Auf einem meiner Systeme gibt es z.B. 11 reguläre Linux-Partitionen (Ext3 und ReiserFS) und 3 NTFS-Partitionen in relativ harmonischer Eintracht. Auf die NTFS-Partitionen wird u.a. von VMware-Instanzen aus zugegriffen. Ist man auf einem solchen System an einer partitionsspezifischen Beobachtung des Plattendurchsatzes interessiert, muss man bei Ksysguard schon wissen, wohin genau man schauen sollte.
Zusatz-Informationen aus dem /proc-FS : /proc/diskstats
Woher bekomme ich nun also die Informationen zum Zusammenhang zwischen “device number” und Partition?
Antwort: Aus dem Kernel, oder besser dem /proc – File-System. Moderne Kernel schreiben nämlich statistische Werte für den Plattendurchsatz mit. (Solche Werte werden z.B. von “sar” ausgewertet.) Harddisk-relevante Informationen findet man unter “/proc/diskstats”.
Nachfolgend ein typischer Auszug des Ergebnisses von “cat diskstats” oder “cat /proc/diskstats”:
user@machine:/proc> cat diskstats
   8    0 sda 354415 43112 7631712 3704336 269025 782582 8477712 65951972 0 2135876 69736240
   8    1 sda1 784 799 0 0
   8    2 sda2 4 8 0 0
   8    5 sda5 84 520 0 0
   8    6 sda6 515 4114 21 168
   8    7 sda7 4225 101288 6085 48624
   8    8 sda8 826 841 0 0
   8    9 sda9 384 778 0 0
   8   10 sda10 390174 7518090 1046963 8375680
   8   16 sdb 98498 45267 3730694 1115992 194344 559016 6057920 8996952 0 1112700 10123120
   8   17 sdb1 2111 2622 0 0
   8   18 sdb2 4 8 0 0
   8   21 sdb5 36929 293990 72507 580056
   8   22 sdb6 384 778 0 0
   8   23 sdb7 1078 1093 0 0
   8   24 sdb8 436 780 9 16
   8   25 sdb9 814 3450 3 16
   8   26 sdb10 1877 2374 0 0
   8   27 sdb11 95005 3414382 682211 5457664
   8   28 sdb12 4309 5184 0 0
Und nun eine Beschreibung der Felder (die ich übrigens großteils dem ersten unten angegebenen Link entnommen habe):
 Feld 1  —  major device number
 Feld 2  —  minor device number
 Feld 3  —  device name (partition)
 Feld 4   — # of reads issued
 Feld 5   — # of reads merged,
 Feld 6   — # of sectors read
 Feld 7   — # of milliseconds spent reading
 Feld 8   — # of writes completed
 Feld 9   — # of writes merged
 Feld 10 — # of sectors written
 Feld 11 — # of milliseconds spent writing
 Feld 12 — # of I/Os currently in progress
 Feld 13 — # of milliseconds spent doing I/Os
 Feld 14 — weighted # of milliseconds spent doing I/Os
Man sieht:
Hier ist eine Menge Information enthalten – im besonderen eben auch die Zuordnung der Device-Nummern zu den Partitionen. 
Datenaufbereitung in Ksysguard
Das Schöne ist, dass Ksysguard einen Teil dieser Informationen in netter Weise aufbereitet. Im besonderen wird einem die Umrechnung in Bytes/s abgenommen. Man kann nun gezielt Ksysguard-Datenblätter für die Parttionen anlegen, die einen besonders interessieren (s. die Abbildung). Zusammenfassende Informationen liefert übrigens auch das Tool “gkrellm”.
Viel Spaß beim Analysieren des Plattenzugriffs !

Links
http://ubuntuforums.org/ showthread.php?t=31213
http://www.meinews.net/ festplattenbenutzung-t17640.html
http://utcc.utoronto.ca/ ~cks/space/blog/ linux/ DiskIOStats
http://en.opensuse.org/ Monitor_your_hard_disk_ activity_with_KSysGuard
Generell zum “procfs”:
http://en.wikipedia.org/wiki/Procfs