Kurztipp: Festplattengrößen unter Linux online aktualisieren

Wenn sich Festplattengrößen angepasst werden, wird der Linux-Kernel nicht automatisch über diese Veränderung informiert. Ein Reboot des Systems ist eine mögliche Lösung - aber oftmals keine Option.

Unterhalb des Verzeichnisses /sys/class/scsi_disk gibt es je nach SCSI-ID weitere Dateien, über die einige Funktionen des Geräts gesteuert werden können. Über die Datei device/rescan kann beispielsweise ein erneutes Einlesen der Geräteinformationen gestartet werden. In diesem Fall wird der Kernel über die neue Festplattengröße informiert - in Kombination mit LVM kann man so ohne Probleme online zusätzlichen Speicher bereitstellen:

 1# echo '1' > /sys/class/scsi_disk/`lsscsi|grep sdb|cut -d" " -f 1|sed -e 's/[//g;s/]//g'`/device/rescan
 2
 3# dmesg
 4...
 5ata2: EH complete
 6sd 3:0:0:0: [sdb] 167772160 512-byte logical blocks: (85.8 GB/80.0 GiB)
 7sd 3:0:0:0: [sdb] Cache data unavailable
 8sd 3:0:0:0: [sdb] Assuming drive cache: write through
 9sdb: detected capacity change from 64424509440 to 85899345920
10
11# pvresize /dev/sdb
12  Physical volume "/dev/sdb" changed
13  1 physical volume(s) resized / 0 physical volume(s) not resized
14...

Beim Einsatz von SAN-Speichersystemen und mehreren Pfaden (multipath) kann man sich den oberen echo-Schritt ersparen:

 1# multipath -l myvol
 2Jun 18 09:40:00 | multipath.conf line 33, invalid keyword: prio_callout
 3myvol (xxxxxxxxxxxxxxxxxxx0000000000032a) dm-8 IBM,2145
 4size=600G features='1 queue_if_no_path' hwhandler='0' wp=rw
 5`-+- policy='round-robin 0' prio=0 status=active
 6  |- 1:0:0:5 sdg  8:96   active undef running
 7  |- 2:0:0:5 sdw  65:96  active undef running
 8  |- 1:0:1:5 sdo  8:224  active undef running
 9  `- 2:0:1:5 sdae 65:224 active undef running
10
11# multipathd -k"resize map myvol"
12ok
13
14# multipath -l myvol|grep G
15size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw

myvol ist hier durch den Namen des Volumes aus der Konfigurationsdatei /etc/multipath.conf zu ersetzen. In diesem Beispiel wurde die LUN-Größe von 600 GB auf 800 GB erweitert.

Übersetzungen: