Wie kann ich Centos VM dazu bringen, die vergrößerte Festplattengröße OHNE Neustart erneut zu lesen?


16

Ich habe eine CentOS 5-VM und habe gerade die VM-Festplatte von 10G auf 20G erhöht, aber ich kann fdisk nicht dazu bringen, die neue Festplattengröße ohne Neustart anzuzeigen.

Ich habe versucht echo 1 > /sys/block/sda/device/rescan, es scheint darauf hinzuweisen, dass es die neue Größe sehen kann, aber wenn ich zu fdisk gehe, um eine neue Partition zu erstellen, sieht es die Festplatte immer noch als 10G.

Irgendwelche Ideen?


Je nach Virtualisierungsplattform und Speichermethode ist dies möglicherweise nicht möglich. Details sind wichtig.
womble

Welchen virtuellen Festplattentyp haben Sie hinzugefügt: IDE oder SCSI?
Quanten

Dieser erste Befehl funktionierte für mich ...
Rodo

Antworten:


11

Sie müssen den Befehl rescan an Ihren SCSI-Bus senden.

In VMware befindet sich der SCSI-Controller möglicherweise an einem ungewöhnlichen Ort. Finde es zuerst:

find /sys -iname 'scan'

Für mich kehrte das zurück

/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan

Dann geben Sie einfach den Befehl rescan ein

echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan

Das sollte helfen. :)


5
ls /sys/class/scsi_hostvielleicht schneller.
Quanten

11

Ich hatte mit einem ähnlichen Problem auf einem SLES 11-Server zu kämpfen. Der LVM wurde mit Raw-Festplatten erstellt, die unter VMWare ESXi ausgeführt werden

# pvcreate /dev/sdd; vgextend ....

Nach einer Weile musste ich die LVM-Größe erhöhen, aber ich habe keine zusätzliche Festplatte hinzugefügt und dann pvcreate + vgextend wie zuvor, aber ich habe beschlossen, die Größe einer vorhandenen Festplatte (/ dev / sdd in diesem Fall) zu erhöhen ). Nachdem ich die VMWare-Erweiterung durchgeführt hatte, führte ich eine

# rescan-scsi-bus.sh

Aber pvdisplay zeigte immer noch die 'alte' Festplattengröße an. Es war notwendig, a zu tun

# echo 1 > /sys/block/sdd/device/rescan

Damit der Kernel die neue Festplattengröße von / dev / sdd erkennt


6
echo 1 > /sys/block/sda/device/rescanarbeitete für mich auf CentOS
Benedikt Köppel

-bash: / sys / module / scsi_mod / parameters / scan: Berechtigung verweigert, Benutzername ist root
Sarz

7

nach dem ersten tun echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda hat den Trick für mich getan


3

Wenn die Partitionstabelle direkt verwendet wird (z. B. wenn Sie das Dateisystem mit einer Basispartition gemountet haben), verwendet der Kernel weiterhin die alte Partitionstabelle, bis dies nicht mehr der Fall ist. Jemand hat mir mal gesagt, dass man mit LVM das umgehen kann ...


2

Update: Centos 6 - Partitionstabelle der aktiven Festplatte kann nicht online aktualisiert werden, Centos 7 - letzte Partition kann mit growpart erweitert oder neue Partition mit fdisk erstellt und ohne Neustart mit partprobe sichtbar gemacht werden . Wahrscheinlich dasselbe auf Ubuntu / Debian. - Irgendwann nach 2.6 begann der Kernel, das erneute Lesen der Partitionstabelle der aktiven Festplatte online zu unterstützen. Da die Frage für Centos 5 ist, würde ich keinen Weg sagen.

Wenn Sie Partitionen verwenden, müssen Sie einen Neustart durchführen, um neuen Speicherplatz zu nutzen. Ich habe keinen Weg gefunden, dies zu vermeiden. Wenn mich jemand informiert hat.

Der Neustart sollte jedoch erfolgen, nachdem Sie die letzte Partition auf der Festplatte erweitert oder eine neue Partition hinzugefügt haben. Es macht keinen Sinn, vorher neu zu starten.

Das erste, was Sie nach dem erneuten Scannen bemerken sollten, ist eine größere Festplatte in fdisk und in lsblk. Wenn Sie es nicht sehen, müssen Sie mit diesen Befehlen echo 1 und echo_ spielen.

Wenn Sie mehr Speicherplatz sehen, können Sie die Partition erweitern / hinzufügen, neu starten, vg erweitern, lv und fs erweitern.

Wenn Sie einen Neustart vermeiden möchten, müssen Sie der Volume-Gruppe eine unformatierte SDA / B / C-Festplatte zuweisen, ohne sie in SDA1 / 2/3 zu partitionieren. In diesem Fall ist kein Neustart erforderlich.

Die Partitionierung war vor einiger Zeit notwendig, als Linux nicht von LVM booten konnte, aber jetzt kann es.

Wenn Sie lsblk ausführen, werden Partitionen oder lvms angezeigt, je nachdem, ob Sie Partitionen oder lvm verwenden. Sie können alle Teile haben, wenn Sie lvm nicht verwenden, oder alle lvms, wenn Sie keine Partitionen verwenden. Hier ist ein Beispiel:

root@srv4 ~ $ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0  7.3T  0 disk
├─sda1                        8:1    0  500M  0 part /boot
└─sda2                        8:2    0  7.3T  0 part
  ├─vg_srv4-LogVol13 (dm-0) 253:0    0  7.1T  0 lvm  /
  ├─vg_srv4-LogVol05 (dm-1) 253:1    0  100G  0 lvm  /var/log
  ├─vg_srv4-LogVol04 (dm-2) 253:2    0   20G  0 lvm  /var
  ├─vg_srv4-LogVol01 (dm-5) 253:5    0   20G  0 lvm  /opt
  ├─vg_srv4-LogVol00 (dm-6) 253:6    0   20G  0 lvm  /home
  ├─vg_srv4-LogVol03 (dm-7) 253:7    0   20G  0 lvm  /usr
  └─vg_srv4-LogVol02 (dm-8) 253:8    0    8G  0 lvm  /tmp


-5

Sie müssen neu starten, daran führt kein Weg vorbei.


Wie wäre es mit dem Force-System zum erneuten Scannen?
Quanten

Ich musste neu starten :-(
AndyM

Ich musste auch neu starten.
am

1
Das ist völlig falsch. Ich habe dies mehrere Male ohne Neustart durchgeführt.
Duncan X Simpson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.