ProxMox

De OpenWikiBSD
Aller à : navigation, rechercher

Sommaire

Nouveautés de la version 5.0 Béta

  • ifconfig a disparu, remplacée par ip. Pour la retrouver :
apt-get install net-tools

Migrer un conteneur OpenVZ en LXC

Toutes les infos

  • Sur le noeud 3.X :
pvesm status
vzctl stop CTID && vzdump CTID -storage local

Si vous récupérez une erreur :

can't use storage for backups - wrong content type

Vous devez, activer les backups locaux. Depuis la GUI : Datacenter/Storage/local/Edit/Content/OpenVZ Backup Files/OK

  • Transférez le backup du noeud 3.X au noeud 5.0 :
scp root@Noeud3:/var/lib/vz/dump/vzdump-openvz-CTID-DATE.tar root@Noeud5:
pct restore  CTID /var/lib/vz/dump/vzdump-openvz-CTID-DATE.tar -storage local-zfs
pct set CTID -net0 name=eth0,bridge=vmbr0,ip=IP/MASK,gw=IP
pct start CTID
pct enter CTID

Installation

Bare metal depuis un CD bootable Rien à dire dessus, next, next, next..

Configuration

/Datacenter/Node/Network Inutile de mettre une passerelle.

Support

En dehors du support commercial payant : , vous avez les listes de diffusion : Attention à bien fournir la sortie des ces deux commandes  :

pveperf /var/lib/vz
pveversion -v

Sources.list

Si vous êtes en test ou en recette :

  • /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian wheezy main contrib
# security updates
deb http://security.debian.org/ wheezy/updates main contrib
  • /etc/apt/sources.list.d/pve-enterprise.list .
deb http://download.proxmox.com/debian wheezy pve-no-subscription

Et afin de vérifier la signature des paquets :

 wget http://download.proxmox.com/debian/key.asc
 gpg --with-fingerprint key.asc
pub  1024D/9887F95A 2008-10-28 Proxmox Release Key <proxmox-release@proxmox.com>
     Key fingerprint = BE25 7BAA 5D40 6D01 157D  323E C23A C7F4 9887 F95A
sub  2048g/A87A1B00 2008-10-28
apt-key add key.asc

Mise en cluster

La doc

  • pvecm permet la mise en cluster.
pvecm create moncluster-de-test

et aussitôt dans l'interface web onglet HA, des infos apparaissent.

  • Commandes
pvecm status
pvecm nodes

sur un autre noeud qu'on veut intégrer

pvecm add IP_cluster
copy corosync auth key
stopping pve-cluster service
backup old database
waiting for quorum...OK
generating node certificates
merge known_hosts file
restart services
successfully added node 'arya' to cluster.

* pvecm status
* pvecm nodes

Stockage réparti

Ceph

Mise en miroir réseau des disques : drbd/LVM

La Doc

Mise en miroir drbd

cfdisk /dev/sdb (crer une partition de type 8e = LVM)
apt-get update
apt-get install drbd8-utils
vi /etc/drbd.d/r0.res


resource r0 {
 protocol C;
 startup {
   wfc-timeout  15;     # non-zero wfc-timeout can be dangerous (http://forum.proxmox.com/threads/3465-Is-it-safe-to-use-wfc-timeout-in-DRBD-configuration)
   degr-wfc-timeout 60;
   become-primary-on both;
 }
 net {
   cram-hmac-alg sha1;
   shared-secret "M0NSECRET";
   allow-two-primaries;
   after-sb-0pri discard-zero-changes;
   after-sb-1pri discard-secondary;
   after-sb-2pri disconnect;
 }
 syncer { rate 50M; }
 on prox-t1 {
   device /dev/drbd0;
   disk /dev/sdb1;
   address 1.0.0.1:7788;
   meta-disk internal;
 }
 on prox-t2 {
   device /dev/drbd0;
   disk /dev/sdb1;
   address 1.0.0.2:7788;
   meta-disk internal;
 }


A recopier sur les réplicats

drbdadm create-md r0
drbdadm up r0
/etc/init.d/drbd start
  • Sur le premier noeud
drbdadm -- --overwrite-data-of-peer primary r0
  • surveillez la première synchro :
watch cat /pro/drbd
  • Infos sur la régulation de la bande passante pour la synchronisation.
  • Dans le cadre de la haute dispo, il est conseillé de faire deux volumes drbd; un pour la prod, un pour les tests.

Montage du gestionnaire de volume LVM

La doc.

  • Fichier /etc/lvm/lvm.conf', ligne 68 :

Remplacer

filter = [ "a/.*/" ]

par

filter = [ "r|/dev/sdb1|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]
  • Sur un noeud :
pvcreate /dev/drbd0

En cas de souci, un redémmarage du serveur capricieux suffit.

vgcreate drbdvg /dev/drbd0
  • Sur l'interface Web :

Datacenter/Storage/Add/LVMGroup

Lvm.png

Vous voyez apparaître simultanément sur les noeuds un nouvel espace de stockage

Maintenant vous pouvez créer une VM sur un espace partagé et tester une migration en ligne :

starting migration of VM 102 to node 'prox-t1' 
copying disk images
migration finished successfuly (duration 00:00:01)
TASK OK

Fun!

Réseau

Seconde carte réseau physique

  • Ajoutez un pont LInux (vmbr1), configurez-le comme il faut.

Inutile d'ajouter de seconde passerelle, d'ailleurs.

cp /etc/network/interfaces.new /etc/network/interfaces
ifdown vmbr1 && ifup vmbr1

Agrégation de liens réseaux

La doc

  • Sur l'interface : Create/Bond
  • Slaves : Collez, avec un espace les cartes réseau
  • Mode : 802.3ad pour coller aux switches

Bond.png

ProxMox en Raid Soft

Par défaut, ProxMox ne permet pas de monter en Raid1 Soft . Il faut le faire à la main : - l'idée de base

Un peu veillot, et plus à jour, mais l'idée est bien là.

Attention, j'ai flingué une install fonctionnelle de ProxMoX avec ça!!!


Le plus simple, en fait est de faire un install debian Wheezy 64 en raid1, puis de suivre la doc :

cfdisk /dev/sda ou b
                    
         Nom                             Ind.                          Partition                   S. Fic.                                    [Étiq.]                             Taille (Mo)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                        Pri/Log                    Espace libre                                                                          1,05                    *
         sda1                            Amorce                         Primaire                   linux_raid_m                               [ProxHome:0]                           39998,99                    *
         sda2                                                           Primaire                   swap                                                                              19999,50                    *
         sda3                                                           Primaire                   linux_raid_m                               [ProxHome:1]                         1440300,93                    *

J'ai tout monté en ext3, rien en LVM C'est une idiotie; il faut partir soit en LVM, soit en ext4 pour bénéficier des quotas user sur la partition

  • Les repositories:
 vi /etc/apt/sources.list

deb http://debian.proxad.net/debian/ wheezy main contrib
deb-src http://debian.proxad.net/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main contrib 
deb-src http://security.debian.org/ wheezy/updates main
deb http://debian.proxad.net/debian/ wheezy-updates main
deb-src http://debian.proxad.net/debian/ wheezy-updates main
# PVE repository provided by proxmox.com, only for installation (this repo will stay on 3.1)
deb http://download.proxmox.com/debian wheezy pve
  • MaJ
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
apt-get update && apt-get dist-upgrade
apt-get install pve-firmware pve-kernel-2.6.32-26-pve
  • Le Noyo
grep menuentry /boot/grub/grub.cfg

On compte le bon noyau en partant de 0; on devrait trouver 2

Remplacer la valeur de DEFAULT:

 vi /etc/default/grub 
 update-grub2
 uname -a
 reboot
 uname -a
 apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64 linux-base
 update-grub
 reboot
 apt-get install proxmox-ve-2.6.32 ntp ssh lvm2 postfix ksm-control-daemon vzprocps open-iscsi bootlogd
  • Système satellite pour postfix


Vérifiez que l'interface https://IP:8006 répond bien puis modifiez /etc/network/interfaces

auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
       address  10.0.0.20
       netmask  255.255.255.0
       gateway  10.0.0.5
       bridge_ports eth0
       bridge_stp off
       bridge_fd 0
reboot
  • Modifiez le sources.list pour les paquets de prod: Remplacez la dernière ligne proxmox par :
deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

si vous avez payé (BIEN)

deb http://download.proxmox.com/debian wheezy pve-no-subscription
perl -pi -e 's/pve-enterprise/pve-no-subscription/' /etc/apt/sources.list.d/pve-enterprise.list

si vous n'avez pas payé (MAL)

 apt-get update && apt-get dist-upgrade

Done !

Gestion des VM/CT

  • VM = Machine virtuelle : KVM= tout type d'OS
  • CT= Container : OpenVZ = Linux Only

Machine KVM

Perfs

  • Pour garder la compatibilité maxi :
    • Disque IDE
    • Carte Intel E1000
    • partition qcow2

Attention, il y a une limite autour de 2 To pour les disques.

  • Pour avoir les meilleures perfs :
    • Disque Virtio
    • Carte Virtio
    • Partition raw
    • No cache
    • CPU HOst

Attention, en mode raw, les disques sont en thick provisionning, vous utilisez tout de suite la place décrite. Sinon, choisissez le format qcow2, thin provisionning, qui augmente en live la taille du disque image et permet les snapshots!


Source

[1]

Container LXC

C'est la virtualisation sans perte de perf; le noyau invité utilise le noyau hôte. Des templates ont été créés par la société et sont librement téléchargeables et ( Si le fait de télécharger et d'installer un binaire inconnu comme VM ne vous effraie pas..)

La doc complète.

En résumé :

pveam update
pveam available --section system
pveam download local  debian-9.0-standard_9.0-2_amd64.tar.gz

Si c'est sur un stockage partagé, tous les noeuds de virtualisation auront accès au template.

Allocation des espaces disques

Chez les autres, on appelle ça le thin provisionning !

On peut créer des VM dont l'espace n'est pas immédiatement alloué, mais l'est au fur et ) mesure, dans la limite de l'espace annoncé au départ.

Un bon résumé.

Bref :

  • Mode raw :plus rapide, allocation immédiate de l'espace disque
  • Mode qcow2 : Permet les snapshot, allocation selon les besoins.

Et en cas d'espace disque trop petit ??

Avec un container, c'est désarmant de simplicité : Sur l'interface web de ProxmoX, choisir la VM, resources,disk,edit,OK et instantanément, vous avez gagné de l'espace disque..

Pas de reboot, pas de resize du fs, le tout à chaud....

Spécificités OS

OpenBSD/KVM

Les drivers virtio pour disques et nic existent et sont préférables.

En revanche si vous ajoutez une seconde carte virtio, alors vous devrez éteindre puis rallumer la VM, pas de reboot sinon la vio1 n'apparait pas.

Container OpenVZ

VOus ne pouvez pas charger de modules dans un container ! Donc pas d'OpeVPN etc..

Solution : [2]

Migration de machine

Migration manuelle d'une machine dans ProxMox

Il faut que le CD virtuel soit démonté. Tout se fait à base d'outils éprouvés SSH,Rsync,..

  • Si la machine est sur un stockage local, il faut la recopier entièrement... Ici 7 minutes
starting migration of VM 100 to node 'prox-t1' (IP)
copying disk images
vm-100-disk-1.raw
rsync status: 32768 0% 0.00kB/s 0:00:00
rsync status: 60784640 1% 11.18MB/s 0:07:43
...
rsync status: 5368709120 100% 11.14MB/s 0:07:39 (xfer#1, to-check=0/1)
sent 5369364559 bytes received 31 bytes 11659857.96 bytes/sec
total size is 5368709120 speedup is 1.00
migration finished successfuly (duration 00:07:41)
TASK OK
  • Si la machine est sur un volume drbd partagé, c'est plus..rapide
starting migration of VM 103 to node 'prox-t2' (IP)
copying disk images
migration finished successfuly (duration 00:00:01)
TASK OK

Moins de 1 seconde !


Migration manuelle d'un container OpenVZ

[3]

Après avoir mis en place l'authentification par clés SSH,

Old_SRV:#> vzmigrate New_SRV Container_Id

Haute disponibilité = HA

Prérequis :

  • 3 noeuds (Avec 2, on ça marche avec quelques bricolages)
  • 1 stockage partagé (drbd,SAN)
  • Une carte IPMI/ILO/IDRAC dans chaque serveur

Fencing

Appelé STONITH (Shoot the other node in the head : Tire lui une balle en pleine tête), ça permet de de ne démarrer électriquement l'autre noeud qu'au bon moment afin d'avoir des données synchronisées sur le stockage. Il faut pour cela que chaque noeud tienne l'autre par la barbichette de la carte ILO/IDRAC/IPMI.. La doc

Interface

Datacenter/HA/HA Managed VM/CT

  • On ajoute la machine à la haute dispo et on active les changements.

Authentification sur l'interface de management

Nouveautés de la 3.3 :

  • Authentification LDAP/AD
  • Authentification forte

Authentification LDAP/AD

Authentification forte

Avec les Authentification_Forte Yubikey, on va pouvoir jouer : [4] Au préalable, récupérez l'API Yubico : [5] qui vous donne:

  • Votre ID client (5 chiffres)
  • Votre API key (appelée Secret Key)


Commencez par créer un user dédié (Realm : Proxmox VE Authentication) , et restez connecté en root sur un autre navigateur pendant ces tests.

Permettre l'auth forte sur le serveur ProxMox :

  • Datacenter
  • Onglet Authentication
  • PVE / Edit
  • Cliquer sur TFA (Two Factor Authentication)
    • Yubico API Id: Copiez la Client ID
    • Yubico API Key : Copiez la API (Secret donc) Key
    • Yubico API URL : Vide

Ensuite pour chaque user :

La clé utilisateur, à copier/coller dans le champ Keys Id pour chaque user. Pour cela, sélectionnez le champ Key Id et caressez la yubikey. Gardez les 12 premiers caractères.


Désormais (enfin dans 5 minutes, le temps de mettre à jour la base des serveurs Yubico) pour se connecter, votre utilisateur doit fournir login + Password + OTP de la clé Yubikey enregistrée !

Depuis un smartphone NFC

Sous Android, installez Yubiclip. Lors de l'authentification sur l'interface web de Proxmox, rentrez vos logins, mot de passe, puis passez le Yubikey Neo (avec Tag NFC) derrière le smartphone. Yubiclip vous propose de copier/coller l'OTP dans le presse-papier. Il ne reste plsu qu'à coller le tout dans le champ correspondant.

Rôles et permissions

Classiquement, on crée un groupe auquel on adjoint une permission (path = /) et on colle les utilisateurs dedans. Les | rôles Proxmox.

Firewall du cluster

Interface

CLI

OpenVZ

  • Plutôt que de passer par la lourde interface web, utilisez l'outil adapté :[6] et [7]

Depuis la console serveur de ProxMoX

Accéder à la console du container :
 vzctl console ID_VM

Pour sortir de la console : ESC .

Lister les CT actifs
vzlist
Lister tous les CT
vzlist -a
Démarrer un CT
vzctl start VM_ID
Reset Password
vzctl set VE_ID --userpasswd root:newpasswd --save

Evidemment, ça marche moins bien avec des caractères interprétés par le shell :_)

Mettre en place la config IP du CT
vzctl set VM_ID --ipadd IP --save

Pour la route par déaut, ce sera celle de l'hôte ProxMox


Monter dans le CT un disque de l'hôte
  • Hôte :
mount /dev/sdc1 /mnt/
mount -n  --bind  /mnt/ /var/lib/vz/root/100/mnt/

Done !

Et dans le cas d'un montage permanent :

  • Hôte :
mkdir -p /mnt/backup

/etc/fstab:

/dev/sdc1       /mnt/backup     auto    rw,user,noauto  0       0
/mnt/backup	/var/lib/vz/root/100/backup/	none	bind	0	0
  • Invité
mkdir -p /backup
Gestion du volume disque du container =
  • Je suis dans le bon container
cat /var/lib/vz/root/CTID/etc/hostname 
  • Quelle place occupée
vzctl exec CTID df -h
  • On augmente a chaud et instantanément
 vzctl set CTID --diskspace 300G:320G --save
Ajouter un disque en LVM sur l'hôte

[8]

fdisk /dev/sdXX

Ajouter partition type 8E

pvcreate /dev/sdb1
vgcreate MON-vol /dev/sdb1

Puis dans l'interface proxmox , Datacenter/Storage/Add

Gestion de la pénurie d'IPv4

Vous avez loué un dédié et n'avez qu'une IP et plusieurs VMs dessus. Suivez ça

  • Créez des VM en mode NAT (Choix de vnenet) avec une @IP en RFC 1918 (genre 10.0.0.101)
  • Sur l'hôte, nattez les ports :
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j SNAT --to IP_Hote_Proxmox
iptables -t NAT -L -n

Puis redirigez les ports utiles, ici SSH

iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to 10.0.0.101:22
iptables -t nat -n -L

Puis ensuite, mettez un proxy reverse

KVM

Accès

Pour activer Spice, vous devez éditer (VM/onglet Harware/Diplay) display et mettre SPICE, puis console : SPice Une fois une fenêtre sélectionnée, faites un CTRL+ALT+R pour en sortir.

Debug

Impossible d'ajouter un hôte au cluster

pvecm add CLUSTER
unable to copy ssh ID: ERROR no-identities found

Essayez une connexion ssh vers le cluster. Si ça ne fonctionne pas, régénérez une nouvelle clé (ssh-keygen)

L'install depuis une debian Wheezy ne fonctionne pas

Starting pve cluster filesystem : pve-cluster[main] crit: Unable to get local IP address

Vérifiez le /etc/hosts qui ne doit pas contenir d'horreur, genre :

127.0.1.1 Prox

voire

127.0.0.1 Prox

Les containers restaurés ne démarrent pas

Unable to start init, probably incorrect template

Vous avez restauré un CT et oublié le template associé. Genre 64bits au lieu de 32..

Ecran blanc

..Vous n'auriez pas désactivé Javascript ,??

La connexion avec le serveur a été réinitialisée pendant le chargement de la page.

et dans les logs (/var/log/daemon.log) :

pveproxy[PID]: problem with client .... rsa_padding_check_pkcs1_type_1: block type is not 01
pveproxy[PID]: WARNING: Can't call method "timeout_reset" on an undefined value at /usr/share/perl5/PVE/HTTPServer.pm line 172.

Videz le cache du browser; Ca m'est arrivé lors d'une réinstall d'un serveur proxmox sur la même IP avec le même FQDN et ddonc des certificats différents. Videz le cache, voire le magasin de certificats

La console ne fonctionne pas

Pour avoir la console des VM, vous devez utiliser la machine java de Sun, pas une autre..Non, non même libre, c'est Sun, point barre!

Sur une Debian Wheezy, utilser chrome avec le plugin java from sun et la manip spéciale chrome indiquée.

Sur une Ubuntu 12.04

Les machines KVM ne démarrent pas

  • avec un message "No accelerator found"

Tester juste pour voir

egrep '^flags.*(vmx|svm)' /proc/cpuinfo

et vérifiez que vous avez une réponse non-nulle...

Si ce n'est pas le cas, votre CPU (Celeron, Atom,..) ne supporte pas les instructions de virtualisation; pas de KVM, donc pas de VM windows,etc... ! Dommage

  • Avec un message : Could not access KVM kernel module: No such file or directory

failed to initialize KVM: No such file or directory

Vous avez un CPU avec les instructions VT, mais ces dernières ne osnt pas activées; allez faire un tour dans le bios

Par OS

OpenBSD

Au boot de la VM,;

Fatal protection fault in supervisor mode
panic : trap type 4

[9]

Choisissez le type de CPU par défaut, amd64 (et pas host)

Téléchargement d'une image ISO de boot CD

  • VM : KVM

Sur l'interface datacenter/Server/local, vous avez un onglet Content, puis un bouton Upload.

  • Container :OpenVZ

Sur l'interface datacenter/Server/local, vous avez un onglet Content, puis un bouton Templates.


Tout est collé dans /var/lib/vz/template/iso/ par défaut que ce soit pour un CT ou une VM

Pour avoir des CT en adm64 et pas uniquement en i386

Il faut aller les chercher à la main : http://download.proxmox.com/appliances/system/

Passer du test à la prod

Protéger l'hôte : Firewall

sur l'hôte :

apt-get install ufw
ufw deny in on eth_WAN to any from  any port 8006 proto tcp
ufw default allow outgoing
ufw allow ssh
ufw deny 3306/tcp (Sans Cluster proxmox, pas de souci)
ufw enable
ufw status

Protéger l'hôte : IP_publique

Pourquoi mettre une @IP sur l'interface publique de votre serveur ?

Supprimez la :

iface eth0 inet manual
auto vmbr_WAN
iface vmbr_WAN inet manual
       bridge_ports eth0
       bridge_stp off
       bridge_fd 0

Monitorer l'hôte

Pour les guests : Munin

Virtualisation d'une machine physique

La doc.

Novell Netware

Un (très) vieux serveur sous Netware 5.X avec sa NDS,....Snif, ça me rappelle ma jeunesse...

Ce serait dommage de le laisser disparaître. Et puis surtout, il y a dessus une appli indispensable dont plus personne n'a le source, ni le mode d'emploi et qui est une appli critique pour le service...

Bref, va falloir la garder sur le nouveau serveur hexacore. ==> On migre, Du Pii-too-vii (Physical to Virtual):

  • Une doc pour ESX


Sauvegarde/Restauration & Migration

Des VM

Une doc

vzdump Numéro_de_la_VM --dumpdir /var/lib/vz/dump --mailto root --mode snapshot

Permet de ne pas interrompre la VM durant son fonctionnement. et vous recevez un mail en prime

vzrestore FIchier ID