GNU/Linux >> Tutoriels Linux >  >> Debian

Debian Wheezy :diviser et redimensionner l'image disque Xen

Contexte

L'un de mes serveurs virtuels Xen devait diviser et redimensionner son disque 400G au cours du week-end, et je voulais réduire au minimum les temps d'arrêt. Le disque avait 240 Go utilisés, dont 235 Go étaient un répertoire /backup et les 5 Go restants étaient dédiés à une installation standard de Debian Linux. Je voulais diviser le disque en deux disques - un disque de 20 Go contenant le système Linux et un disque de 300 Go à monter en tant que /backup. Ensuite, je pourrais appliquer ma configuration DRBD pour répliquer cette partition de sauvegarde 300G sur une deuxième machine de sauvegarde distincte.

Je ne voulais pas me retrouver dans une situation où je devais copier une charge de données sur l'hôte physique, et je ne voulais certainement pas que la machine virtuelle s'arrête pendant que je le faisais.

Configurer les images

La machine virtuelle a son image disque située dans /vm/domains/b1/disk.img et un swap.img qui l'accompagne dont nous n'avons pas à nous soucier.

Problème :

losetup -a

Pour localiser tous les dispositifs de boucle utilisés. Dans mon cas, /dev/loop20 était le premier périphérique gratuit. Ensuite, je vais configurer un périphérique de bouclage pour l'image, puis le monter :

mkdir -p /mnt/loop-copy-from /mnt/loop-copy-to

losetup /dev/loop20 /vm/domains/b1/disk.img

monter /dev/loop20 /mnt/loop-copy-from

Créer une nouvelle image sparse vide

Maintenant, nous n'allons pas déplacer/sauvegarder, à la place, nous allons déplacer tout le reste vers la nouvelle image 20G. Nous allons créer un fichier image clairsemé de 20G avec :

dd if=/dev/zero of=/vm/domains/b1/disk-root.img bs=1k count=1 seek=$(((20*1024*1024)-1))

Ensuite, nous devrons configurer un nouveau périphérique de boucle, créer un système de fichiers et enfin monter cette nouvelle image

losetup /dev/loop21 /vm/domains/b1/disk-root.img

mkfs.ext3 /dev/loop21

monter /dev/loop21 /mnt/loop-copy-to

Copier le système de fichiers racine

Maintenant, je vais tout copier de /mnt/loop-copy-from vers /mnt/loop-copy-to en dehors du répertoire de sauvegarde 235G :

rsync -arplogu --exclude "/backup" --stats --progress /mnt/loop-copy-from/ /mnt/loop-copy-to

Nettoyer le système de fichiers existant

Je veux tout supprimer sur /mnt/loop-copy-from sauf le répertoire de sauvegarde :

cd /mnt/loop-copy-from ; ls | grep -v 'sauvegarde' | xargs rm -rf

Nous démonterons ensuite les deux appareils :

umount /mnt/loop-copy-from

démonter /mnt/loop-copy-to

Réduire le système de fichiers existant

Je vais maintenant devoir réduire /dev/loop20 de 400G à 300G :

e2fsck -f /dev/loop20

resize2fs /dev/loop20 300G

Copier les données de démarrage

Et ensuite, copiez les données de démarrage avant de détruire les périphériques de bouclage :

jj if=/dev/loop20 of=/dev/loop21 bs=1 count=512

losetup -d /dev/loop20

losetup -d /dev/loop21

Configuration Xen et démarrage de la VM

Modifiez maintenant le fichier de configuration Xen VM, dans mon cas, /etc/xen/b1.cfg, en changeant :

disk = [
  'file:/vm/domains/b1/disk.img,xvda2,w',
  'file:/vm/domains/b1/swap.img,xvda1,w',
]

Avec :

disk = [
  'file:/vm/domains/b1/disk-root.img,xvda2,w',
  'file:/vm/domains/b1/disk.img,xvda3,w',
  'file:/vm/domains/b1/swap.img,xvda1,w',
]
Et enfin:

xm créer b1.cfg

Sec numérique IO

Debian Wheezy XEN + configuration invité


Debian
  1. Comment installer Gitlab, Ruby et Nginx sur un VPS Debian 7 (Wheezy)

  2. Comment compiler à partir des sources et installer Nginx dans un VPS Debian 7 (Wheezy)

  3. Installer Silex sur Debian Wheezy

  4. Comment installer Group Office (un CRM d'entreprise et un outil de collaboration) sur Debian 7 (Wheezy)

  5. Est-il possible de redimensionner une image disque QEMU ?

Utilisateurs virtuels et domaines avec Postfix, Courier, MySQL et SquirrelMail (Debian Wheezy)

Installation de Nginx avec PHP5 (et PHP-FPM) et prise en charge de MySQL (LEMP) sur Debian Wheezy

Installation de Lighttpd avec PHP5 (PHP-FPM) et prise en charge de MySQL sur Debian Wheezy

Comment redimensionner et augmenter les disques dans FreeBSD

Comment installer Wine sur Debian 7 Wheezy

Installer et configurer Fail2ban sur Debian 11