J'ai configuré un invité Ubuntu sur un hôte KVM CentOS avec initialement 6 Go d'espace disque. Comment puis-je augmenter l'espace disque de l'invité Ubuntu à partir de la ligne de commande?
EDIT # 1: J'utilise un fichier image disque (qemu).
J'ai configuré un invité Ubuntu sur un hôte KVM CentOS avec initialement 6 Go d'espace disque. Comment puis-je augmenter l'espace disque de l'invité Ubuntu à partir de la ligne de commande?
EDIT # 1: J'utilise un fichier image disque (qemu).
Réponses:
qemu-img resize vmdisk.img +10G
pour augmenter la taille de l'image de 10 Gola source
start the VM, resize the partitions and LVM structure within it normally
Comment faire? S'il vous plaît expliquerMéthode en ligne (utilisant qemu, libvirt et virtio-block)
Pour le meilleur ou pour le pire, les commandes ci-dessous seront exécutées même si le disque virtuel cible est monté. Cela peut être utile dans les environnements où le disque ne peut pas être démonté (telle qu'une partition racine), la VM doit rester allumée et le propriétaire du système est prêt à assumer le risque de corruption des données . Pour supprimer ce risque, vous devez d'abord vous connecter à la machine virtuelle et démonter le disque cible, ce qui n'est pas toujours possible.
Effectuez les opérations suivantes à partir de l'hyperviseur KVM.
Augmentez la taille du fichier image du disque lui-même (spécifiez la quantité à augmenter):
Obtenez le nom du périphérique virtio, via le shell libvirt (
drive-virtio-disk0
dans cet exemple):Indiquez au pilote virtio de détecter la nouvelle taille (spécifiez la nouvelle capacité totale):
Puis connectez-vous à la VM. Running
dmesg
devrait signaler que le disque virtio a détecté un changement de capacité. A ce stade, redimensionnez vos partitions et la structure LVM selon vos besoins.la source
Ces questions serveur par défaut sont similaires mais plus spécifiques: le redimensionnement du disque en ligne KVM? & Centos Xen redimensionnant la partition et le groupe de volumes DomU . Le 1er pose la question de savoir comment augmenter un invité KVM lorsqu'il est en ligne, tandis que le second est spécifique à XEN et utilise LVM. Je demande comment accomplir cela lorsque le KVM est hors ligne.
REMARQUE: Ce lien a été utile pour la MÉTHODE n ° 1 et montre comment augmenter progressivement l'espace disque d'un KVM (basé sur ext3), HOWTO: Redimensionner une image de machine virtuelle KVM .
Les invités KVM doivent savoir que les partitions qu’ils utilisent peuvent affecter la méthode que vous pouvez utiliser pour augmenter leur espace disque.
MÉTHODE N ° 1: Les partitions sont basées sur ext2 / ext3 / ext4
Les noix de cette méthode sont les suivantes:
Maintenant, avec le fichier mykvm.img plus volumineux en main, démarrez gparted et étendez la partition existante dans l'espace disque nouvellement ajouté. Cette dernière étape étend essentiellement la partition du système d’exploitation de sorte qu’elle puisse utiliser l’espace supplémentaire.
METHODE 2: Les partitions sont basées sur LVM
Voici la marche à suivre pour redimensionner un invité KVM utilisant LVM en interne.
exécuter fdisk dans la machine virtuelle et supprimer & recréer une partition LVM
Redémarrer la VM
Redimensionner le volume physique LVM
Redimensionner le volume logique LVM
Cultiver le système de fichiers
Ce qui précède est mon exemple, mais j'ai suivi les étapes de ce site.
la source
virt-manager
beaucoup les méthodes n ° 1 et n ° 2 avant de migrer nos serveurs KVM vers une version plus récente de KVM (CentOS 5 -> CentOS 6). J'utilise maintenant laqemu-img resize
méthode aussi.lvextend /dev/Volgroup/lvname /dev/vda2
(sur une seule ligne, où / dev / vda2 serait votre volume physique). Sans aucune autre option, il utilisera la taille maximale de ce groupe de volumes.Redimensionner et développer des partitions internes en une seule étape
J'avais un hôte Ubuntu avec une image de fichier invité qcow2 et je voulais redimensionner le disque et développer les partitions appropriées en une seule étape. Il vous oblige à configurer les utilitaires du système de fichiers invité libvirt, mais il est utile de les avoir de toute façon.
Inspiration d'ici: http://libguestfs.org/virt-resize.1.html
La commande clé est la suivante:
virt-resize
Préparation:
Maintenant, faites ce qui suit:
1) arrêter l'invité:
2) Vérifiez le dimensionnement actuel et affichez le nom de la partition que vous souhaitez développer à l'aide de l'utilitaire libvirt:
sudo virt-filesystems --long --parts --blkdevs -h -a name-of-guest-disk-file
3) Créez le nouveau disque de sortie (40G):
4) Copiez l'ancien vers le nouveau tout en développant la partition appropriée (en supposant que votre partition de disque de l'étape 2 était / dev / sda1):
5) Renommez le fichier indisk en sauvegarde, renommez le disque externe en indisk (ou modifiez le XML invité)
6) Redémarrez l'invité et testez soigneusement le nouveau fichier sur disque avant de supprimer le fichier d'origine.
7) Profit!
la source
-o preallocation=metadata
crée un fichier fragmenté. Avec cette option, il pré-alloue la taille entière.-o preallocation=metadata
et si vous ne le faites pas, vous devez également sauter l'truncate
étape.virt-resize
augmentera le fichier comme il convient de toute façon.Si vous utilisez LVM au sein de la machine virtuelle, la façon la plus simple de le faire consiste à ajouter un nouveau disque virtuel à la machine virtuelle et à étendre le groupe de volumes et les volumes logiques sur celui-ci.
Pour vérifier si vous utilisez LVM run
sudo pvs; sudo vgs; sudo lvs
, vous obtiendrez quelque chose comme ceci:si le système d'exploitation de la machine virtuelle utilise LVM. Dans l'exemple ci-dessus, la machine virtuelle a un disque virtuel de 30 Go, configuré à l'aide de LVM avec un groupe de volumes appelé vgWWW contenant deux volumes logiques, un pour la permutation et un pour tout le reste.
Si LV est en cours d'utilisation sur la VM:
sudo pvcreate /dev/vdb
sudo vgextend vgWWW /dev/vdb
sudo lvextend --extents +100%FREE /dev/vgWWW/root
(ou quelque chose commesudo lvextend --size +8G /dev/vgWWW/root
si vous ne voulez pas l'agrandir complètement, cet exemple ajouterait 8 Go au volume)resize2fs /dev/vgWWW/root
Remarque: ce qui précède suppose que les noms de vg / lv sont identiques à ceux de mon exemple, ce qui est peu probable, changez-le si nécessaire, même si la machine virtuelle possédait déjà un lecteur virtuel appelé
vdb
le nouveau, ce sera autre chose (vdc
, etc.).Remarque:
resize2fs
ne fonctionnera que sur les systèmes de fichiers ext2, ext3 et ext4. Si vous utilisez autre chose, l'erreur sera commise et ne fera rien.Note: comme vous redimensionnez un système de fichiers live,
resize2fs
il ne vous sera pas demandé defsck
commencer comme il le ferait pour un système de fichiers non monté, il continuera. Vous souhaiterez peut-être exécuter une vérification du système de fichiers en lecture seule: aucun problème avant de continuer.la source
Il est possible de redimensionner en ligne. libvirtd supporte cela nativement:
Recherchez le nom du périphérique en bloc. Devrait être quelque chose comme "vda"
Redimensionner le périphérique virtuel:
Voici un exemple si j'élargissons le
vda
disque à partir50GB
de51GB
pourundercloud
VM.Jetez maintenant un coup d'œil aux détails du fichier image .qcow2:
Redimensionnons maintenant le périphérique bloc vda:
Et confirmez:
Vous pouvez ensuite utiliser ce script dans la machine virtuelle pour afficher les commandes permettant de redimensionner les périphériques en mode bloc et fs: https://github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh .
la source
Il est possible d'augmenter la taille du disque de votre machine virtuelle sans avoir à redémarrer la machine virtuelle si vous utilisez virtio drive et LVM.
(Facultatif) Créez une partition principale avec fdisk pour obtenir / dev / vdb1, puis utilisez kpartx -a / dev / vdb pour relire la table de partitions.
Utilisez vgextend nom_vg / dev / vdb1 (ou / dev / vdb si vous n'avez pas créé de partition)
Vous avez terminé.
la source
De cette façon, vous pouvez développer la partition que vous voulez:
Voir plus d'exemples ici .
la source
Une autre façon de le faire
allez dans le faire une nouvelle analyse de disque et après que vous puissiez faire votre redimensionnement de LVM.
la source
Si vous avez LVM dans votre VM, cela devient simple et rapide.
sudo system-config-lvm
dans le terminal) *.J'ai trouvé l'interface graphique plutôt intuitive, mais suivez les étapes suivantes si vous rencontrez des problèmes.
Remarque! Au moins sur CentOS 6 LVM, l’interface graphique n’est pas installée par défaut, mais vous pouvez l’installer avec
yum install system-config-lvm
.la source
Redimensionner l'image:
augmente la taille de l'image de 16 Go.
Si votre image a GPT (table de partition GUID) alors la taille du lecteur utilisé dans GPT sera différente de la nouvelle taille, vous devez corriger le problème avec
gdisk
:ou avec
parted
:Pour une raison quelconque, le
parted
correctif ne fonctionne pas quand aucun tty n'est présenté (par exemple lors de l'approvisionnement avec Vagrant), donc je l'utilisegdisk
.Augmentez la taille de la partition pour remplir tout l'espace disponible:
La
x a 2 <Enter>
pièce est facultative et nécessaire si vous utilisez le BIOS hérité.MY_PARTITION_GUID=...
et lesc $MY_PARTITION_GUID
parties sont également facultatives et nécessaires uniquement si vous utilisez l'UUID de partition dans/etc/fstab
ou ailleurs.Redémarrez ou relisez des partitions avec
partx -u $MY_DRIVE
oupartprobe
.Étendre la partition, exemple pour
ext2
,ext3
ouext4
:la source
Vous pouvez utiliser solus vm avec gparted monté. Une fois utilisé avec gparted, vous pouvez facilement démarrer le système et ajuster l’espace. Assurez-vous que vous avez le bon ensemble de priorités de démarrage. À titre de référence, veuillez vous reporter à l'URL ci-dessous qui pourrait vous être utile. https://greencloudvps.com/knowledgebase/11/How-to-Extend-the-Hard-drive-on-KVM-after-upgrading-VPS.html
la source