Comment puis-je demander à Centos VM de relire sa taille de disque augmentée SANS redémarrage


16

J'ai une machine virtuelle CentOS 5 et je viens d'augmenter le disque VM de 10G à 20G, mais je ne peux pas obtenir fdisk pour voir la nouvelle taille de disque sans redémarrage.

J'ai essayé echo 1 > /sys/block/sda/device/rescan, cela semble indiquer qu'il peut voir la nouvelle taille, mais quand je vais dans fdisk pour créer une nouvelle partition, il voit toujours le disque comme 10G.

Des idées?


Selon votre plate-forme de virtualisation et votre méthode de stockage, cela peut ou non être possible. Les détails comptent.
womble

Quel type de disque virtuel vous avez ajouté: IDE ou SCSI?
quanta

Cette première commande a fonctionné pour moi ...
Rodo

Réponses:


11

Vous devez exécuter la commande rescan sur votre bus SCSI.

Dans VMware, le contrôleur SCSI peut se trouver dans un endroit inhabituel. Trouvez-le d'abord:

find /sys -iname 'scan'

Pour moi qui est revenu

/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

Ensuite, lancez simplement la commande rescan

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

Cela devrait aider. :)


5
ls /sys/class/scsi_hostpeut-être plus vite.
quanta

11

J'ai dû faire face à un problème similaire, sur un serveur SLES 11. Le LVM a été construit avec des disques bruts, fonctionnant sur VMWare ESXi

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

Après un certain temps, j'ai dû augmenter la taille de LVM, mais je n'ai pas ajouté de disque supplémentaire, puis pvcreate + vgextend comme je l'ai fait auparavant, mais j'ai choisi d'augmenter la taille d'un disque existant (/ dev / sdd dans ce cas ). Après avoir fait l’augmentation de VMWare, j’ai exécuté un

# rescan-scsi-bus.sh

Mais pvdisplay montrait toujours la «vieille» taille du disque. Il fallait faire un

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

pour que le noyau apprenne la nouvelle taille de disque de / dev / sdd


6
echo 1 > /sys/block/sda/device/rescana travaillé pour moi sur CentOS
Benedikt Köppel

-bash: / sys / module / scsi_mod / parameters / scan: autorisation refusée, le nom d'utilisateur est root
Sarz

7

après avoir d'abord fait echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda a fait l'affaire pour moi


3

Si la table de partition est directement utilisée (par exemple, vous avez monté un système de fichiers à l'aide d'une partition de base), le noyau continuera à utiliser l'ancienne table de partition jusqu'à ce que ce ne soit plus le cas. Quelqu'un m'a dit une fois que si vous utilisez LVM, vous pouvez contourner cela ...


2

Mise à jour: Centos 6 - impossible de mettre à jour la table de partition du disque actif en ligne, Centos 7 - il est possible d'étendre la dernière partition avec growpart ou de créer une nouvelle partition avec fdisk et de la rendre visible sans redémarrer avec partprobe . Probablement la même chose sur ubuntu / debian. - À un moment donné, après que le noyau 2.6 a commencé à prendre en charge la relecture en ligne de la table de partition du disque actif. Puisque la question s'adresse à Centos 5, je dirais que non.

Si vous utilisez des partitions, vous devez redémarrer pour utiliser un nouvel espace. Je n'ai pas trouvé de moyen d'éviter cela. Si quelqu'un me l'a fait savoir.

Cependant, le redémarrage doit être effectué après avoir étendu la dernière partition sur le disque ou ajouté une nouvelle partition. Cela n'a pas de sens de redémarrer avant.

La première chose que vous devriez remarquer après la nouvelle analyse est une plus grande taille de disque dans fdisk et dans lsblk. Si vous ne le voyez pas, vous devez jouer avec ces commandes echo 1 et echo - - -.

Après avoir vu plus d'espace, vous pouvez étendre / ajouter une partition, puis redémarrer, étendre vg, étendre lv et fs.

Si vous voulez éviter le redémarrage, vous devez affecter le disque brut sda / b / c au groupe de volumes sans le partitionner en sda1 / 2/3. Ensuite, il n'est pas nécessaire de redémarrer.

Il y a quelque temps, le partitionnement était nécessaire lorsque Linux ne pouvait pas démarrer à partir de LVM, mais maintenant il le peut.

Si vous faites lsblk, vous verrez des partitions ou des lvms selon que vous utilisez des partitions ou lvm, vous pouvez avoir toutes les parties si vous n'utilisez pas lvm ou tous les lvms si vous n'utilisez pas de partitions. Voici un exemple:

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

Vous devez redémarrer, il n'y a aucun moyen de contourner cela.


Que diriez-vous du système de force à analyser de nouveau?
quanta

J'ai dû redémarrer :-(
AndyM

J'ai dû redémarrer aussi.
ondra

1
C'est complètement faux. J'ai fait cela plusieurs fois sans redémarrer.
Duncan X Simpson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.