GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Debian Wheezy:Xen-Festplatten-Image aufteilen und in der Größe ändern

Hintergrund

Bei einem meiner virtuellen Xen-Server musste seine 400-GB-Festplatte über das Wochenende aufgeteilt und in der Größe angepasst werden, und ich wollte die Ausfallzeit auf ein Minimum beschränken. Auf der Festplatte wurden 240 GB verwendet, von denen 235 GB ein /backup-Verzeichnis waren und die restlichen 5 GB einer regulären Debian-Linux-Installation gewidmet waren. Ich wollte die Festplatte in zwei Festplatten aufteilen - eine 20-GB-Festplatte mit dem Linux-System und eine 300-GB-Festplatte zum Mounten als /backup. Dann könnte ich mein DRBD-Setup anwenden, um diese 300-GB-Sicherungspartition auf eine separate zweite Sicherungsmaschine zu replizieren.

Ich wollte nicht in eine Situation geraten, in der ich eine Menge Daten auf den physischen Host kopieren muss, und ich wollte auf keinen Fall, dass die virtuelle Maschine währenddessen heruntergefahren wird.

Bilder einrichten

Das Festplatten-Image der virtuellen Maschine befindet sich in /vm/domains/b1/disk.img und eine begleitende Datei swap.img, um die wir uns keine Sorgen machen müssen.

Problem:

losetup -a

Zum Auffinden aller verwendeten Loop-Geräte. In meinem Fall war /dev/loop20 das erste freie Gerät. Als Nächstes richte ich ein Loopback-Gerät für das Image ein und mounte es dann:

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

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

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

Ein neues leeres Sparse-Image erstellen

Jetzt werden wir nicht /backup verschieben, sondern alles andere auf das neue 20G-Image verschieben. Wir erstellen eine Sparse-Image-Datei von 20 GB mit:

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

Als nächstes müssen wir ein neues Loop-Gerät einrichten, ein Dateisystem erstellen und schließlich dieses neue Image mounten

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

mkfs.ext3 /dev/loop21

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

Root-Dateisystem kopieren

Jetzt kopiere ich alles von /mnt/loop-copy-from nach /mnt/loop-copy-to neben dem 235G-Sicherungsverzeichnis:

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

Vorhandenes Dateisystem bereinigen

Ich möchte alles auf /mnt/loop-copy-from außer dem Backup-Verzeichnis entfernen:

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

Wir werden dann beide Geräte unmounten:

umount /mnt/loop-copy-from

umount /mnt/loop-copy-to

Vorhandenes Dateisystem verkleinern

Ich muss jetzt /dev/loop20 von 400G auf 300G verkleinern:

e2fsck -f /dev/loop20

resize2fs /dev/loop20 300G

Startdaten kopieren

Kopieren Sie dann die Boot-Daten, bevor Sie die Loopback-Geräte zerstören:

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

losetup -d /dev/loop20

losetup -d /dev/loop21

Xen-Konfiguration und VM-Boot

Bearbeiten Sie nun die Xen-VM-Konfigurationsdatei, in meinem Fall /etc/xen/b1.cfg, und ändern Sie:

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

Mit:

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',
]
Und schlussendlich:

xm b1.cfg erstellen

IO Digital Sek.

Debian Wheezy XEN + Gasteinrichtung


Debian
  1. Einrichten eines NFS-Servers und -Clients auf Debian Wheezy

  2. Beschleunigen Sie den Apache-Webserver mit mod_pagespeed und memcached auf Debian 7 (Wheezy)

  3. Installation von Xen Hypervisor 4.8 auf Debian Jessie

  4. So installieren Sie Gitlab, Ruby und Nginx auf einem Debian 7 (Wheezy) VPS

  5. Wie man aus dem Quellcode kompiliert und Nginx in einem Debian 7 (Wheezy) VPS installiert

Virtuelle Benutzer und Domains mit Postfix, Courier, MySQL und SquirrelMail (Debian Wheezy)

Installieren von Nginx mit PHP5 (und PHP-FPM) und MySQL-Unterstützung (LEMP) auf Debian Wheezy

Installation von Lighttpd mit PHP5 (PHP-FPM) und MySQL-Unterstützung auf Debian Wheezy

So ändern Sie die Größe und Größe von Festplatten in FreeBSD

So installieren Sie Wine unter Debian 7 Wheezy

Installieren und konfigurieren Sie Fail2ban unter Debian 11