Centos 7 Extend partition avec espace non alloué


14

J'ai un serveur centos 7 (CentOS Linux release 7.3.1611 (Core))Lorsque j'ai mis à jour mon serveur, j'ai vu une erreur, vous avez besoin d'espace supplémentaire. Mais j'avais 20 Go de disque sur le serveur lorsque je vérifie les espaces disque, je n'ai vu qu'une partition de 4,5 Go créée et une partition de 16 Go d'espace libre non alloué. Comment puis-je étendre la partition à partir de 16 Go d'espace libre?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

entrez la description de l'image ici


Réponses:


21

Il y a trois étapes à effectuer:

  1. modifier votre table de partition pour sda2se terminer à la fin du disque
  2. relire la table de partition (nécessite un redémarrage)
  3. redimensionnez votre LVM pv en utilisant pvresize

Étape 1 - Table de partition

Courez fdisk /dev/sda. Problème ppour imprimer votre table de partition actuelle et copier cette sortie dans un endroit sûr. Maintenant, problème dsuivi 2de supprimer la deuxième partition. Problème npour créer une nouvelle deuxième partition. Assurez-vous que le début est égal au début de la table de partition que vous avez imprimée précédemment. Assurez-vous que la fin se trouve à la fin du disque (généralement la valeur par défaut).

Question tsuivie 2suivie 8epour basculer le type de partition de votre nouvelle deuxième partition à 8E (Linux LVM).

Problème ppour revoir la nouvelle disposition de votre partition et vous assurer que le début de la nouvelle deuxième partition est exactement à l'emplacement de l'ancienne deuxième partition.

Si tout semble correct, émettez wpour écrire la table de partition sur le disque. Vous recevrez un message d'erreur de partprobe indiquant que la table de partition n'a pas pu être relue (car le disque est en cours d'utilisation).

Redémarrez votre système

Cette étape est nécessaire pour que la table de partition soit relue.

Redimensionner le PV LVM

Après le redémarrage de votre système, appelez pvresize /dev/sda2. Votre volume LVM physique s'étendra désormais sur le reste du lecteur et vous pouvez créer ou étendre des volumes logiques dans cet espace.


une excellente solution, cela fonctionne parfaitement. encore seulement la partie comment étendre les volumes logiques.
Mimouni

1
Cette excellente réponse s'est arrêtée juste avant la ligne d'arrivée! J'ai compris comment le terminer. L'exemple partagé dans la question a montré deux volumes logiques sous-jacents sda2: centos-rootet centos-swap. Dans ce cas, le groupe de volumes est centoset les deux volumes logiques à l'intérieur de ce groupe sont rootet swap. Si nous voulions étendre le centos-rootvolume dans cet exemple avec 50% de l'espace disponible dans notre sda2partition fraîchement étendue , nous utiliserions lvextend -r -l +50%FREE /dev/centos/root. Le -rredimensionne le système de fichiers sous-jacent pour correspondre au volume logique étendu.
Shadoninja

@Shadoninja qui sort du cadre de la question d'origine. Je ne l'ai donc pas ajouté et ne l'ajouterai pas à cette question à l'avenir.
Andreas Rogge

@AndreasRogge Je dirais que cela est entièrement dans le cadre de cette question car la terminologie dans cet espace peut être déroutante et facile à confondre. Il vaut la peine de publier un résumé complet de la façon d'obtenir de l'espace disque non alloué utilisable par le système de fichiers, car ce sera une raison extrêmement courante pour les gens de trouver cette question.
Shadoninja

13

Vous pouvez le faire sans redémarrer dans CentOS 7. En supposant que votre disque est / dev / vda et un partitionnement RHEL / CentOS standard:

Étendre la partition

# fdisk /dev/vda

Entrez ppour imprimer votre table de partition initiale.

Entrez d(supprimer) suivi de 2pour supprimer la définition de partition existante (la partition 1 est généralement / boot et la partition 2 est généralement la partition racine).

Entrez n(nouveau) suivi de p(principal) suivi de 2pour recréer la partition numéro 2 et enterd'accepter le bloc de début et de enternouveau d'accepter le bloc de fin qui est par défaut à la fin du disque.

Entrez t(tapez) puis 2ensuite 8epour changer le nouveau type de partition en "Linux LVM".

Entrez ppour imprimer votre nouvelle table de partition et assurez-vous que le bloc de démarrage correspond à ce qui était dans la table de partition initiale imprimée ci-dessus.

Entrez wpour écrire la table de partition sur le disque. Vous verrez une erreur Device or resource busydont vous pouvez ignorer.

Mettre à jour la table de partition en mémoire du noyau

Après avoir modifié votre table de partition, exécutez la commande suivante pour mettre à jour la table de partition en mémoire du noyau:

# partx -u /dev/vda

Redimensionner le volume physique

Redimensionnez le PV pour reconnaître l'espace supplémentaire

# pvresize /dev/vda2

Redimensionner LV et le système de fichiers

Dans cette commande se centostrouve le PV, rootle LV et /dev/vda2la partition qui a été étendue. Utilisez les commandes pvset lvspour voir vos noms de volumes physiques et logiques si vous ne les connaissez pas. L' -roption de cette commande redimensionne le système de fichiers de manière appropriée afin que vous n'ayez pas à appeler resize2fsou xfs_growfsséparément.

# lvextend -r centos/root /dev/vda2

Réponse plus compliquée que "réponse sélectionnée"!
Furkat U.

C'est génial. Je vous remercie! Cela devrait être la réponse acceptée. Il me manquait la dernière étape pour redimensionner le lv et le système de fichiers!
Skinner927

4

Pour ceux qui ont du mal à étendre des volumes logiques comme moi, la lecture de cet article pourrait être utile. En résumé, vous pouvez utiliser lvextendpour étendre votre volume logique: lvextend -l +<PE> <LV_PATH> vous pouvez obtenir le nombre de PE ( <PE>) restant par vgdisplayet obtenir le chemin de votre volume logique ( LV_PATH) par lvdisplay.

Ensuite, en fonction de votre distribution, vous souhaitez soit xfs_growfs <LV_PATH>(Centos 7) soit resize2fs <LV_PATH>enfin redimensionner.


0

Vérifiez cela - tout sur une seule ligne, pas de questions:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2

Vous devriez envisager d'ajouter des explications et votre environnement. Par exemple, mon partx n'a pas d'option -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop
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.