GNU/Linux >> Belajar Linux >  >> Debian

Debian Wheezy:Pisahkan dan ubah ukuran gambar disk Xen

Latar Belakang

Salah satu server virtual Xen saya perlu membagi dan mengubah ukuran disk 400G selama akhir pekan, dan saya ingin meminimalkan waktu henti. Disk tersebut menggunakan 240G, 235G di antaranya adalah direktori /backup, dan 5G sisanya didedikasikan untuk instalasi Debian Linux biasa. Saya ingin membagi disk menjadi dua disk - disk 20GB yang berisi sistem Linux, dan disk 300G untuk dipasang sebagai /backup. Kemudian saya dapat menerapkan pengaturan DRBD saya untuk mereplikasi partisi cadangan 300G itu ke mesin cadangan kedua yang terpisah.

Saya tidak ingin berakhir dalam situasi harus menyalin banyak data di host fisik, dan tentu saja saya tidak ingin mesin virtual mati saat saya melakukannya.

Menyiapkan gambar

Mesin virtual memiliki gambar disk yang terletak di /vm/domains/b1/disk.img dan swap.img yang menyertainya yang tidak perlu kita khawatirkan.

Masalah:

kalah -a

Untuk menemukan semua perangkat loop yang digunakan. Dalam kasus saya, /dev/loop20 adalah perangkat gratis pertama. Selanjutnya, saya akan menyiapkan perangkat loopback untuk gambar, lalu memasangnya:

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

Buat gambar sparse kosong baru

Sekarang, kita tidak akan memindahkan /backup, sebaliknya, kita akan memindahkan yang lainnya ke image 20G yang baru. Kami akan membuat file gambar sparse 20G dengan:

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

Selanjutnya, kita perlu menyiapkan perangkat loop baru, membuat sistem file, dan terakhir memasang gambar baru ini

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

mkfs.ext3 /dev/loop21

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

Salin sistem file root

Sekarang, saya akan menyalin semuanya dari /mnt/loop-copy-from ke /mnt/loop-copy-to selain dari direktori cadangan 235G:

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

Bersihkan sistem file yang ada

Saya ingin menghapus semua yang ada di /mnt/loop-copy-from kecuali direktori cadangan:

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

Kami kemudian akan melepas kedua perangkat:

umount /mnt/loop-copy-from

umount /mnt/loop-copy-to

Perkecil sistem file yang ada

Sekarang saya harus mengecilkan /dev/loop20 dari 400G ke 300G:

e2fsck -f /dev/loop20

resize2fs /dev/loop20 300G

Salin data boot

Dan kemudian, salin data boot sebelum menghancurkan perangkat loopback:

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

losetup -d /dev/loop20

losetup -d /dev/loop21

Konfigurasi Xen dan boot VM

Sekarang edit file konfigurasi Xen VM, dalam kasus saya, /etc/xen/b1.cfg, ubah:

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

Dengan:

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',
]
Dan akhirnya:

xm buat b1.cfg

Detik Digital IO

Debian Wheezy XEN + Pengaturan Tamu


Debian
  1. Cara mengkompilasi dan menginstal Bitcoin Core di Debian Wheezy

  2. Menyiapkan Server dan Klien NFS di Debian Wheezy

  3. Memutakhirkan dari Debian 6 Squeeze dengan ISPConfig dan kurir/postfix ke Debian 7 Wheezy

  1. Percepat server web apache dengan mod_pagespeed dan memcached di Debian 7 (Wheezy)

  2. Menginstal Xen Hypervisor 4.8 di Debian Jessie

  3. Cara menginstal Gitlab, Ruby dan Nginx pada VPS Debian 7 (Wheezy)

  1. Cara mengkompilasi dari sumber dan menginstal Nginx di VPS Debian 7 (Wheezy)

  2. Instal Silex di Debian Wheezy

  3. Cara menginstal Group Office (CRM perusahaan dan alat kolaborasi) di Debian 7 (Wheezy)