Xenisation d'une machine physique lenny

BONJOUR A TOUS
PROBLEME : Migrer un serveur physique sous Debian Lenny en machine virtuelle Xen.

Afin de migrer mes quelques 20 machines virtuelles VMWARE2 vers Xen, j’ai installé Xen standard sur une debian squeeze ( ancien petit serveur de 2Go RAM - 140Go ) pour faire des tests et apprendre le fonctionnement.( Avant de commencer une migration officielle sur de vrais serveurs )

Puis, sur ce serveur Xen, j’ai installé une machine virtuelle XP qui fonctionne. Puis une Linux squeeze qui fonctionne aussi. J’ai aussi migrer une 1ère machine vmware2 vers XEN qui fonctionne aussi.
Pour terminer les tests, j’ai voulu migrer une machine physique Lenny. Et là… Problème.

Le serveur physique à virtualiser possède un disque de 80Go et 2 partitions, mais seuls 1,5Go sont utilisés. Cela ne m’intéresse donc pas de créer une machine virtuelle de 80Go. J’ai donc voulu récupérer uniquement la partition système.
J’ai fait plusieurs essais avec clonezilla, mais il manque toujours le MBR.
J’ai fait de nombreux essais en créant un “fichier disque-image” ( soit avec les 2 partitions, soit avec seulement la partition systeme ) avec la commande dd, sur le serveur physique puis en copiant ce “fichier-disque-image” dans le dossier xen, et en essayant de démarrer, mais il y a aussi un problème de boot ( grub ) qui ne trouve pas la partition, ou il démarre et arrive sur initramfs, ou pas de disque systeme, …

Je n’ai pas trouvé sur le net une procédure complète, mais plus des “morceaux” de procédures. Je n’ai pas non plus trouvé une version de P2V pour Debian. ( Peut -être pas bien cherché… )

Si quelqu’un a fait ce genre de manipulations et a fait une doc ou si quelqu’un connaît la façon de faire, je suis preneur.

En vous remerciant

Cordialement

Serge
Cellule Informatique

Bonjour,

Tu peux essayer de faire une domU normale et t’inspirer du fichier de configuration de cette domU pour en créer une avec tes partitions. Les domU démarrent avec pygrub, je n’ai pas tous les paramètres en tête, mais il me semble qu’il faut indiqué dans le fichier de config le noyau, la partition racine et la correspondance entre les partitions de la dom0 et celle de la domU. C’est à priori le minimum à adapter pour lancer une domU.

Il faut certainement modifier le fichier fstab de la domU pour mettre les bonnes partitions genre /dev/xvdaN.

En gros les lignes à modifier :

bootloader = "/usr/lib/xen-3.2-1/bin/pygrub"
root    = '/dev/xvda1 ro'
disk    = [ 'phy:/dev/mapper/loop1p1,xvda1,w',
            'phy:/dev/mapper/loop1p2,xvda2,w',
            'phy:/dev/mapper/loop1p3,xvda3,w']

D’abord MERCI BEAUCOUP pour ta réponse.

Voici le fichier de configuration de ma machine virtuelle de test. ( CT57-xftp est le serveur physique )
Cela ne correspond pas trop… j’suis en Xen-4.0
Du coup, j’ai un peu de mal à m’y retrouver
Est-ce bien du même fichier que l’on parle ???

#------------------------------------
kernel = "/usr/lib/xen-4.0/boot/hvmloader"
builder='hvm’
memory = 1024
shadow_memory = 8
name = “ct57-xftp”

disk = [
‘file:/donnees/xen/ISO/clonezilla-live.iso,hda:cdrom,r’,

‘file:/donnees/xen/ISO/debian-6.0.6-i386-CD-1.iso,hda:cdrom,r’,

    'file:/donnees/xen/machines/ct57-xftp.img,hdb,w',
   ]

device_model = ‘/usr/lib/xen-4.0/bin/qemu-dm’
boot="cd"
vfb = [ “type=vnc,keymap=fr” ]
vif = [ “type=ioemu, bridge=eth0” ]
sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncpasswd=’’

stdvga=0
usb=1
serial='pty’
usbdevice=‘tablet’

on_poweroff = 'destroy’
on_reboot = 'restart’
on_crash = ‘restart’

Ton fichier de configuration correspond à de la virtualisation hardware (kernel = “/usr/lib/xen-4.0/boot/hvmloader” et builder=‘hvm’). Le hvmloader permet de lancer le grub de la vm alors que pygrub charge le noyau dans la vm.

Je suppose que le fichier/donnees/xen/ISO/clonezilla-live.iso est l’image de la machine à créer et file:/donnees/xen/machines/ct57-xftp.img le “disque” à installer ? Je n’utilise malheureusement pas ce genre de chose et ne peux t’aider directement.

Si ca peut t’aider, j’utilise de la paravirtualisation avec mes partitions sous lvm. Pour faire quelque chose de semblable, il faudrait que tu copies tes partitions dans des partitions (lvm ou dans des fichier img) sur la machine hote. C’est dans la partie “disk” que l’on met les partitions avec “phy” pour une vrai partition ou du lvm et “file” pour des fichier comme “.img” ou “.iso”.

Je te remercie.

Je vais réfléchir à tout çà.
Je suis peut-être aller un peu vite…
Je reconnais que je suis allé au plus simple. Et comme çà fonctionnait pour les autres machines virtuelles testées, je pensais que cela irait ainsi.
En fait, j’ai copié le 1er truc que j’ai trouvé sur le net.

Bon… Encore Merci. Je vais voir comment m’en sortir

cordialement

Serge

Si ca peut aider, une vm hardware (installer via une iso wheezy avec vnc) :

[code]ostype = 'other’
kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder = "hvm"
vcpus = '1’
memory = “2048”

disk = [
‘phy:/dev/vg/hvm0,hda,w’,

‘file:/home/xen/wheezy.iso,hdc:cdrom,r’

]

device_model = ‘/usr/lib/xen-4.1/bin/qemu-dm’

name = ‘hvm’

vif = [
‘ip=10.1.1.3,bridge=lanbr0’,
]

vnc=1
vnclisten=“0.0.0.0”
#vncunused=1
vncdisplay=0
vncconsole=0
#nographic=0
vncpasswd=‘PASSWORD’

apic=0
acpi=1
pae=1
serial='pty’
keymap=‘fr’

boot = “dca”

on_poweroff = 'destroy’
on_reboot = 'restart’
on_crash = ‘restart’
[/code]

Une vm non hardware installé avec

xen-create-image \ --pygrub \ --hostname web1 \ --ip 10.1.3.1 \ --partitions=www

[code]bootloader = ‘/usr/lib/xen-4.1/bin/pygrub’

vcpus = '2’
memory = ‘4096’

Disk device(s).

root = '/dev/xvda1 ro’
disk = [
‘phy:/dev/vg/web1-root,xvda1,w’,
‘phy:/dev/vg/web1-swap,xvda2,w’,
‘phy:/dev/vg/web1-tmp ,xvda3,w’,
‘phy:/dev/vg/web1-var ,xvda4,w’,
‘phy:/dev/vg/web1-srv ,xvda5,w’,
‘phy:/dev/vg/web1-bak ,xvda6,w’,

‘phy:/dev/sda2 ,xvda7,w’,

          ]

Physical volumes

Hostname

name = ‘web’

Networking

vif = [
‘ip=10.1.3.1 ,mac=00:16:3E:DB:4C:2A,bridge=lanbr0,vifname=lan31.0’,
‘ip=10.2.3.1 ,mac=00:16:3E:DB:4C:2B,bridge=wanbr0,vifname=wan31.1’,
]

Behaviour

on_poweroff = 'destroy’
on_reboot = 'restart’
on_crash = ‘restart’
[/code]

MERCI BEAUCOUP

Je vais prendre tout çà comme exemple et essayer de l’adapter chez moi.