web-dev-qa-db-fra.com

Comment étendre une partition PV Linux en ligne après la croissance du disque virtuel

VMware permet d'étendre la taille d'un disque virtuel en ligne - lorsque le VM est en cours d'exécution. Les prochaines étapes attendues pour le système Linux sont:

  1. étendre la partition: supprimez et créez une plus grande avec fdisk
  2. étendre la taille PV avec pvresize
  3. utiliser des extensions libres pour les opérations lvresize
  4. et alors resize2fs pour le système de fichiers

Mais je suis bloqué sur la première étape: fdisk et sfdisk affichent toujours l'ancienne taille du disque.

Mon disque est un disque virtuel SCSI connecté grâce au contrôleur logique LSI virtuel.

Comment actualiser la taille du disque virtuel et les informations de la table de partition disponibles dans le noyau Linux sans redémarrage?

Pour autant que je sache, toutes les étapes sont possibles pour un Windows en cours d'exécution, sans redémarrage et même sans aucune action de l'utilisateur grâce aux outils VMWare. Sous Linux, je m'attends à faire toutes les étapes en ligne aussi et je sais déjà que les étapes 2, 3 et 4 fonctionnent en ligne. Mais le premier - changer la taille de la partition déclarée dans la table de partition semble (encore) nécessiter un redémarrage.

Mise à jour: Mon système est un Debian Lenny avec le noyau 2.6.26 et le disque que j'ai étendu est le disque principal avec une grande PV contenant le LV "racine" pour "/".

15
Yves Martin

Vous pouvez le faire sans redémarrage. pvresize ne redimensionne pas le volume physique tant que la partition n'est pas mise à jour avec l'espace ajouté. Vous devez fdisk la partition et la recréer avec la nouvelle taille complète du disque, après avoir pu réanalyser les lecteurs pour qu'il puisse voir l'espace supplémentaire en premier lieu.

Plus d'informations: http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/

11
GRegg

Les autres réponses fournies ne répondent pas à votre question, j'ai identifié la commande correcte pour analyser à nouveau un disque déjà connecté.

Nous devons analyser à nouveau votre disque déjà connecté, identifiez d'abord le disque que vous souhaitez analyser à nouveau.

ls /sys/class/scsi_disk/

Dans mon exemple, je vois un lien symbolique nommé 0:0:0:0, nous analysons donc ce disque scsi.

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

Je viens également d'étendre mon disque VMware et j'ai dû parcourir d'autres réponses pour trouver la bonne commande. Espérons que cela sauvera les futurs chercheurs de vaines tentatives.

14
J. M. Becker

En ce qui concerne le système de fichiers racine / est monté sur le disque qui a été redimensionné, la table de partition et la taille du disque ne sont pas actualisées par une nouvelle analyse SCSI avec Linux 2.6.26.

J'espère vraiment que ce sera mieux bientôt avec les nouvelles versions du noyau.

J'ai donc dû:

  • redémarrez une première fois pour voir la nouvelle taille du disque dans fdisk
  • supprimer l'ancienne partition PV principale dans fdisk
  • créer une entrée de partition avec le même numéro et démarrer le secteur jusqu'à la fin du disque
  • redémarrez une deuxième fois OR exécutez partprobe à partir du package parted uniquement si / n'y est pas monté
  • Maintenant, je peux exécuter pvresize pour obtenir un nouvel espace libre, lvextend et resize2fs pour allouer un peu plus d'espace à un système de fichiers

On m'a recommandé de simplement jeter cette stupide vieille table de partition et d'exécuter pvcreate directement sur l'appareil car Grub2 est capable de charger une image du noyau directement à partir d'un système de fichiers sur une partition LVM. Mais une telle configuration n'est pas du tout évidente avec les installateurs de distribution.

pdate: Je viens de vérifier avec Debian GNU/Linux Jessie 8.2 exécutant le noyau 3.16 et parted 3.2, le partprobe réussit maintenant après l'édition de la table de partition avec cfdisk sans redémarrage. pvresize fonctionne immédiatement après.

Si vous souhaitez étendre un PV stocké en tant que partition PC logique, par exemple /dev/sda5 sur la partition principale étendue /dev/sda2, n'utilisez pas fdisk mais préférez parted:

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5
4
Yves Martin

Vous devez analyser à nouveau les disques avant de pouvoir agrandir la partition.

Dans Centos, vous pouvez le faire en

ls /sys/class/scsi_Host

puis pour chaque hôte

echo "- - -" > /sys/class/scsi_Host/host#/scan

(remplacez # par le numéro)

Il y a aussi une étape de plus à ce qui précède qui étend ext ou quel que soit le système de fichiers que vous utilisez une fois que vous avez redimensionné la partition.

Vous devrez toujours démonter cette partition à un moment donné. Ce que nous avons tendance à faire est d'ajouter un 2ème disque vmware et d'utiliser lvm pour s'étendre sur le nouveau disque (et réduire l'ancien s'il s'agit d'un remplacement) car cela permet à l'ensemble du processus de se dérouler en direct.

3
JamesRyan

Mon PV n'était pas dans une partition, mais existait directement sur/dev/sdb.

Sur Ubuntu 16.04.1, j'ai pu faire ce qui suit pour redimensionner un volume de 1024 Go à 1,4 To:

echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt

Aucun fdisk requis, et l'espace était immédiatement disponible.

2
peelman

Vous ne nous avez pas fourni suffisamment de détails pour vous indiquer les commandes exactes dont vous aurez besoin, mais vous devrez essentiellement utiliser la commande lvextend pour étendre le volume logique, puis la e2fsck, puis la commande resize2fs commande pour réellement étendre votre système de fichiers. Chacune de ces commandes nécessitera des paramètres supplémentaires, en particulier des informations sur le périphérique et le système de fichiers, que nous ne pouvons pas fournir, mais vous devrez les connaître, utilisez simplement l'option --help pour chaque commande pour vous dire comment les utiliser spécifiquement, plus vous finirez probablement par utiliser les commandes pvdisplay, lvdisplay et mount pour aider à remplir ces paramètres.

1
Chopper3

Personne n'a posté un ensemble complet de commandes, alors c'est parti:

# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root
0
mzhaase