4020
Commentaire:
|
5893
|
Texte supprimé. | Texte ajouté. |
Ligne 30: | Ligne 30: |
==== Création du volume ==== |
|
Ligne 32: | Ligne 34: |
Je ferai sans doute un script reprenant toutes ces étapes, quand j'en aurai le temps, en gros, il faut modifier un certain nombre de fichiers, et vérifier que Proxmox a bien pris en compte les changements. Ne faites pas ces changements si vous n'êtes pas sûrs de maîtriser l'intégralité des outils que Proxmox propose : vous pouvez juste péter l'intégralité des services, en command line. | Je ferai sans doute un script reprenant toutes ces étapes, quand j'en aurai le temps, en gros, il faut modifier un certain nombre de fichiers, et vérifier que Proxmox a bien pris en compte les changements. Ne faites pas ces changements si vous n'êtes pas sûrs de maîtriser l'intégralité des outils que Proxmox propose : vous pouvez juste péter l'intégralité des services, en command line. Idéalement, assurez-vous que tous les servers du cluster sont bien sur le réseau et arrivent à parler entre eux. Le plus simple reste toujours l'interface web. |
Ligne 79: | Ligne 81: |
Maintenant, trouvez un id de vm libre. L'idée est d'avoir une suite continue, donc de prendre le premier libre en partant de 100. | Maintenant, trouvez un id de vm libre. L'idée est d'avoir une suite continue, donc de prendre le premier libre en partant de 100. La config d'une VM n'est accessible que sur le nœud qui l'héberge actuellement. Il faut donc consulter tous les nœuds, et vérifier la liste des id pris dans /etc/pve/qemu-server et /etc/pve/openvz (a priori vide, on utilise pas openvz). Une fois l'id trouvé, créez le volume logique vm-idtrouvé-disk-1 dans le volumegroup que vous avez créé précédemment, pour moi, l'id est 107. Chez moi ça donne : {{{ # lvcreate -n vm-107-disk-1 -l 100%FREE apprentis }}} ==== Création de la machine ==== Je crée donc /etc/pve/qemu-server/107.conf et j'y mets : {{{ args: -nographic -serial unix:/var/run/qemu-server/107.serial,server,nowait balloon: 128 bootdisk: virtio0 cores: 1 ide2: none,media=cdrom memory: 512 name: apprentis net0: e1000=EE:DC:7E:BB:48:3B,bridge=vmbr0 net1: e1000=EE:DC:7E:BB:48:3C,bridge=vmbr2 ostype: l26 virtio0: apprentis:vm-107-disk-1 sockets: 1 }}} * Modifiez args en mettant l'id voulu à la place de 107 * Changez le name * Mettez autant de netX que besoin est, en bridgant correctement. Attention, vmbr0 est le vlan 1, et ensuite, vmbrX est le vlan X. Mettez une mac temporaire, différente de celle de la machine de provenance, pour chaque interface. * Pour virtio0, mettez nomduvolumegroup:nomdulvmqu'onvacreer * Ne touchez pas à sockets, sauf si vous avez lu la doc de proxmox. Enregistrez et quittez. On va maintenant mettre en place le contenu du disque. ==== Remplissage du disque ==== Bon, maintenant, bunches of fun comming. La suite se fait en root. Toujours pareil, remplacez apprentis par le vgname voulu, et 107 par l'id voulu. {{{ # fdisk /dev/apprentis/vm-107-disk-1 }}} |
Cette page a pour but d'expliquer comment migrer un DomU de Xen vers une VM sous Proxmox.
Création de la VM Proxmox
Premièrement, il faut créer une VM d'accueil sous Proxmox, vierge.
Création du volume logique
On crée le volume pour cette VM
$ cd /usr/scripts/gestion/iscsi $ ipython In [1]: import nolslib In [2]: nols = nolslib.Nols() In [3]: nols.create_volume('apprentis', 6, 'GiB', 'slon1') Le volume apprentis a été créé, son numéro d'identification est 21 In [4]: nols.logout() Si vous avez effectué des modifications pensez à exécuter: /usr/scripts/gestion/iscsi/update.sh sur chacun des dom0
Quittez alors ipython, et obéissez au script, en exécutant update.sh sur fy, fz, kdell et vo (qui sert de nœud redondant pour proxmox en attendant la fin des migrations).
Création de l'hôte sous Proxmox
Plusieurs choix s'offrent à vous, je vais tenter de les détailler.
Création en command line sur un des nœuds du cluster Proxmox
Création du volume
Toutes les commandes sont à faire sur la machine sur laquelle vous voulez faire votre travail.
Je ferai sans doute un script reprenant toutes ces étapes, quand j'en aurai le temps, en gros, il faut modifier un certain nombre de fichiers, et vérifier que Proxmox a bien pris en compte les changements. Ne faites pas ces changements si vous n'êtes pas sûrs de maîtriser l'intégralité des outils que Proxmox propose : vous pouvez juste péter l'intégralité des services, en command line. Idéalement, assurez-vous que tous les servers du cluster sont bien sur le réseau et arrivent à parler entre eux. Le plus simple reste toujours l'interface web.
Premièrement, il faut repérer le disque iscsi à configurer en lvm. Pour cela, rien de plus simple, faîtes ls -al /dev/disk/by-path | grep lun-21 (pensez à remplacer le 21 par le numéro que vous a donné ipython).
$ ls -al /dev/disk/by-path | grep lun-21 lrwxrwxrwx 1 root root 10 août 14 12:23 ip-10.0.0.93:3260-iscsi-iqn.1986-03.com.hp:storage.p2000g3.114213a1f2-lun-21 -> ../../sddg lrwxrwxrwx 1 root root 10 août 14 12:23 ip-10.0.0.97:3260-iscsi-iqn.1986-03.com.hp:storage.p2000g3.114213a1f2-lun-21 -> ../../sddh
Cherchons donc sddg et sddh dans /dev/disk/by-id.
$ ls -al /dev/disk/by-id | grep sdd[gh] ls -al /dev/disk/by-id | grep sdd[gh] lrwxrwxrwx 1 root root 10 août 14 12:43 scsi-3600c0ff00013da4eb0760b5201000000 -> ../../sddh lrwxrwxrwx 1 root root 10 août 14 12:43 wwn-0x600c0ff00013da4eb0760b5201000000 -> ../../sddh
On ne trouve qu'un des deux, normal. Je m'explique. J'aurais bien voulu utiliser directement ce qu'on a trouvé dans /dev/disk/by-path ou /dev/sddg, mais ce sont des valeurs qui dépendent, pour une, de l'ip que la baie de disques a prise (10.0.0.9[37]), et pour l'autre, de l'ordre d'apparition des disques dans udev (sdd[gh]). Ce sont des données changeantes. Proxmox n'aime pas les données qui peuvent changer. En revanche, l'id est une donnée immuable (sauf si vous détruisez le volume). Donc il faut trouver l'id. Comme celui-ci ne dépend pas de l'ip de l'interface de la baie, ou de l'ordre d'apparition, il ne peut exister deux liens avec le même id dans /dev/disk/by-id, donc on en a qu'un. Mais nous, on s'en fout. Notez cet id quelque part. (celui qui commence par scsi-).
Maintenant, créons un lvm sur le nouveau disque. On utilise pour cela la commande vgcreate.
# vgcreate apprentis /dev/iscsi_apprentis
Pour les petits curieux qui se demandent pourquoi j'ai pas utilisé pvcreate avant, c'est parce que vgcreate crée le volume physique à la volée si ce n'est pas fait.
Maintenant, on crée le stockage dans /etc/pve/storage.cfg
# vim /etc/pve/storage.cfg
Ajoutez ça :
lvm: apprentis vgname apprentis base nols:0.0.21.scsi-3600c0ff00013da4eb0760b5201000000 shared content images
Sauvegardez, rechargez la page proxmox si vous faites du ouaibe en parallèle, et admirez.
Maintenant, trouvez un id de vm libre. L'idée est d'avoir une suite continue, donc de prendre le premier libre en partant de 100. La config d'une VM n'est accessible que sur le nœud qui l'héberge actuellement. Il faut donc consulter tous les nœuds, et vérifier la liste des id pris dans /etc/pve/qemu-server et /etc/pve/openvz (a priori vide, on utilise pas openvz).
Une fois l'id trouvé, créez le volume logique vm-idtrouvé-disk-1 dans le volumegroup que vous avez créé précédemment, pour moi, l'id est 107. Chez moi ça donne :
# lvcreate -n vm-107-disk-1 -l 100%FREE apprentis
Création de la machine
Je crée donc /etc/pve/qemu-server/107.conf et j'y mets :
args: -nographic -serial unix:/var/run/qemu-server/107.serial,server,nowait balloon: 128 bootdisk: virtio0 cores: 1 ide2: none,media=cdrom memory: 512 name: apprentis net0: e1000=EE:DC:7E:BB:48:3B,bridge=vmbr0 net1: e1000=EE:DC:7E:BB:48:3C,bridge=vmbr2 ostype: l26 virtio0: apprentis:vm-107-disk-1 sockets: 1
- Modifiez args en mettant l'id voulu à la place de 107
- Changez le name
- Mettez autant de netX que besoin est, en bridgant correctement. Attention, vmbr0 est le vlan 1, et ensuite, vmbrX est le vlan X. Mettez une mac temporaire, différente de celle de la machine de provenance, pour chaque interface.
- Pour virtio0, mettez nomduvolumegroup:nomdulvmqu'onvacreer
- Ne touchez pas à sockets, sauf si vous avez lu la doc de proxmox.
Enregistrez et quittez.
On va maintenant mettre en place le contenu du disque.
Remplissage du disque
Bon, maintenant, bunches of fun comming. La suite se fait en root. Toujours pareil, remplacez apprentis par le vgname voulu, et 107 par l'id voulu.
# fdisk /dev/apprentis/vm-107-disk-1