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:
fdisk
pvresize
lvresize
resize2fs
pour le système de fichiersMais 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 "/".
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/
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.
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û:
fdisk
fdisk
partprobe
à partir du package parted
uniquement si /
n'y est pas montépvresize
pour obtenir un nouvel espace libre, lvextend
et resize2fs
pour allouer un peu plus d'espace à un système de fichiersOn 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
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.
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.
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.
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