Proxmox Virtual Environment - Jeudis du libre de...
Transcript of Proxmox Virtual Environment - Jeudis du libre de...
Authorized Proxmox Training Partner
Proxmox Virtual Environment
Alexandre Derumier
Jeudis du libre
21 septembre 2017
Who I am
• Ingénieur système et stockage chez ODISO (filliale hosting M6) depuis 12 ans
• Contributeur proxmox depuis 2010
En production :
• 2500 vms et 1500 containers, répartis sur 100 hosts (proxmox 4.4)
• Linux (debian, centos), freebsd, Windows (2008 →2016)
• (apache,nginx, php, node, java, go, mysql,postgresql, redis, memcache, elastic,
cassandra, iis, .net, sqlserver, exchange, ….)
2
Proxmox Server Solutions GmbH
• Basé à Vienne en Autriche
• Existe depuis 2004
• Petite équipe de 10 employés
2 produits :
• Proxmox Mail Gateway (License commerciale)
• Proxmox VE (Virtual Environnement) (GNU AGPL, v3)
• Propose le support payant sur proxmox VE
3
Proxmox
VirtualEnvironment
4
Architecture
Debian Linux with custom Ubuntu Kernel avec ZFS support,
KVM and LXC
Managed by Proxmox VE API (perl 5 )
5
Proxmox VE
• Octobre 2008 : Proxmox VE 1.x
KVM & containers openvz sur 1 seul plateforme) .
• Avril 2012: Proxmox VE 2.x
(debian squeeze, kernel 2.6.32, qemu 1.2, nouvelle interface graphique, gestion de la HA, template,clones,snapshot, support de ceph,….)
• May 2013: Proxmox VE 3.x
(debian wheezy, kernel 3.10, qemu 1.4, firewall, console html5, pveproxy, support glusterfs,...)
• Octobre 2015 : Proxmox 4.x
(debian jessie, kernel 4.4, qemu 2.4, corosync2 , nouvelle gestion de la HA, passage de openvz à LXC, support de ceph, ipv6 , support de zfs,...)
• Juillet 2017 : Proxmox VE 5.x
(debian stretch, kernel 4.9, qemu 2.9, replication zfs, ...)
6
Mise à jour
• Proxmox VE utilise APT (apt-get ...)
• 2 sources : Debian standard repositories and Proxmox packages repository
• Proxmox VE suit les version de debian (1.x Lenny, 2.x Squeeze, 3.x on Wheezy,
4.x on Jessie)
7
Cycle de releases
• Depot git : https://git.proxmox.com/
• Repo test : deb http://download.proxmox.com/debian/pve stretch pvetest
• Repo communautaire : deb http://download.proxmox.com/debian/pve stretch pve-
no-subscription
• Repo commercial : deb https://enterprise.proxmox.com/debian/pve stretch pve-
enterprise (besoin d‘une subscription - clé)
8
QEMU - KVM
• Qemu : Soft d‘emulation d‘une machine virtuelle complète (carte mète, cpu, ram,
diques, réseau, usb, ….)
• Kvm : Module kernel depuis 2.6.20 , permet d‘accélerer la virtualisation du cpu, en
utilisant les intructions Intel VT ou AMD-V
• Supporte n‘importe quel OS invité (linux, windows, macos, bsd, solaris, …).
(X86 only, pas d‘ arm)
9
QEMU- KVM
/usr/bin/kvm -id 100 /var/run/qemu-server/100.pid -daemonize -name mavm -smp 16,sockets=2,cores=8-
nodefaults -boot menu=on,strict=on,reboot
-vga std
-vnc unix:/var/run/qemu-server/100.vnc,x509,password
-cpu kvm64,+lahf_lm,+sep
-m 32768
-drive if=none,id=drive-ide2,media=cdrom,aio=threads -device ide-cd,bus=ide.1,unit=0,drive=drive-
ide2,id=ide2,bootindex=200 -drive file=/var/lib/vz/images/100.raw,if=none,id=drive-
virtio0,cache=none,format=raw,aio=native
-device virtio-blk-pci,drive=drive-virtio2,id=virtio2,bus=pci.0,addr=0xc -netdev
type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-
server/pve-bridgedown,vhost=on
-device virtio-net-pci,mac=7E:11:55:FC:71:22,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300
10
Linux Container (LXC)● Virtualisation de conteneur pour linux (Natif dans le kernel)
● Chaque conteneur execute un environnement complet comme un serveur réel (!= Docker → 1 conteneur = 1 application)
● Chaque conteneur possède son propre filesystem, utilisateurs, addresse ip, librairies systèmes, fichiers de configuration
● Support de disques multiples
● Linux only
Linux Container (LXC)
STACK SERVICES
Installation
15
https://monserveur:8006
Gestion du Stockage
24
Gestion du stockage
• Proxmox VE utilise lvm par defaut pour le stockage local.
• Possibilité d‘utiliser zfs si choisi lors de l‘installation
(possibilité de réplication asynchrone entre 2 stockages locaux)
• Supporte une grande variété de stockage différents
- local : fichiers: .raw, .qcow2 , .vmdk (!= perf)
• - local : block : lvm , zfs
• - réseau : fichiers: nfs
• -réseau : blocks : iscsi(lvm on iscsi, zfs on iscsi), FC, ceph, glusterfs.
• Possibilité d‘ajouter ses propres plugins (netapp, freenas,sheepdog, ...)
25
Gestion du Stockage
• Qemu-kvm:
- fichier (local, nfs, glusterfs...)
- block (lvm, zfs local, iscsi, zfs on iscsi, ceph, ….)
• Mappé sur le hostfichier : -drive file=/var/lib/vz/images/100/vm-100-disk-1.raw
block : -drive file=/dev/lvm/mystore/vm-100-disk-1
• Accès direct par qemuceph : -drive file=rbd:poolproxmox1/vm-821-disk-1:mon_host=192.168.0.1;192.168.0.2;192.168.0.3
• Iscsi : -drive file=iscsi:/192.168.0.1/vm-100-disk-1
• LXC :
• - mappage d‘un block device complet (lvm , zfs, ceph )
• - mappage d‘un fichier via loopdevice (!= performance)
26
Gestion du Stockage
• Ajouter un stockage : GUI “Datacenter/Storage” ou /etc/pve/storage.cfg
• roles - Images (qemu virtual disks)- ISO- Templates (LXC templates)- Backups- Conteneur
• Nodes: Restreindre l‘accès au stockage à certains noeuds
• Une vm ou un containeur peux utiliser plusieurs stockages diférents
27
Gestion du Réseau
28
Gestion du réseau
● La gui configure simplement „/etc/network/interfaces“
● Gestion du bonding (lacp,active-backup,...)
● Gestion des vlans au niveau de la vm/CT
● Pas de gestion de vxlan, QinQ,... dans la gui, mais possible de la faire la main
dans „/etc/network/interfaces“
29
Gestion du réseau
● Bridge Linux
● Bridge linux + vlans „classique“
● Bridge linux vlan aware (kernel > 4.1)
● Openvswitch
30
Bridge linux
31
Bridge linux + vlan classiqueVlans gérés en sortie de l‘interface, les bridges n‘ont pas connaissance des tags vlan 1 bridge par vlan→
32
Bridge linux vlan awareVlans gérés par port sur le brige
33
Openvswitch
34
Module kernel + daemon userland
© 2015 Proxmox Server Solutions GmbH 35
Proxmox VE Firewall
© 2015 Proxmox Server Solutions GmbH 36
Proxmox VE Firewall
• Firewall du Host && vms/conteneurs
• Utilise iptables + ip6tables + ipset
• Ipv4 - ipv6
• Règles par Vms ,alias, ipsets + règles de sécurités (groupes de règles)
• Firewall des vms au niveau des bridges
© 2015 Proxmox Server Solutions GmbH 37
Proxmox VE Firewall
© 2015 Proxmox Server Solutions GmbH 38
Some Qemu cool features
Hotplug (disks, nics, cpu, ram)
Qos (disks,nics, cpu)
Storage migration
Live migration
Live migration + storage migration
Live Backup
© 2015 Proxmox Server Solutions GmbH 39
Hotplug
Disk && nics : Hotplug PCI
Linux : modprobe acpi , pci_hotplugWindows : natif (> 2003)
CPU (hotplug/unplug)Linux : > 3.10Windows : > 2012r2
Mémoire (hotplug only)
Linux : > 3.10Windows : > 2012r2
© 2015 Proxmox Server Solutions GmbH 40
QosNics : rate limiting (mb/s)
Cpu : - cpu limit (limite d’utilisaion coeurs) - shared (priorité entre vms/CT)
Disks: ios (io/s) && bw (mb/s) limit + bursts
Qemu storage migration
Qemu Live Migration
Qemu Live Migration + local storage
migration
Qemu Live Backup
Qemu Live Backup
Proxmox Cluster
46
Proxmox cluster
• Configurations du storage, vms, ct,firewall, …. dans „/etc/pve“
• Filesystem fuse répliqué entre chaque noeud via corosync
• Tolerance aux panne (si un noeud est down, il récupère la derniere config au boot
• Pas de maitre-esclave, chaque noeud est maitre. (on peux ecrire la configuration dans „/etc/pve/“ sur n‘importe quel noeud, les locks sont gérés
• 3 noeuds minimum → QUORUM !
• Si 2 noeuds, et qu‘un noeud est down, le cluster passe en readonly (plus possible d‘ecrire dans „/etc/pve“ , les vms et CT continuent de tourner sans problème.
48
Creation du cluster
• Noeud1 : #pvecm create moncluster
• Noeud2 : #pvecm add <ip_noeud1>
• Noeud3 : #pvecm add <ip_noeud1 ou ip_noeud2>
49
Haute disponibilité
50
Introduction to HA
• Si une VM OU CT est confguré en HA, et qu‘un host physique tombe en panne, la vm est automatiquement redémarée sur un autre noeud (+- 1min)
• Attention que la vm reboot. (HA != FT (Faut tolerance)
• FT prévu dans les prochaines releases (qemu > 2.10)
• La HA est basée sur corosync + gestion de services proxmox (pve-lrm, pve-crm)
• Besoin d‘avoir le quorum !
51
Introduction to HA
52
Community Support
• Community Supportforum
- http://forum.proxmox.com
• Proxmox VE Wiki
- http://pve.proxmox.com
• Mailing List
- http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-user
• Bug Tracker
- https://bugzilla.proxmox.com
• Source Code
- https://git.proxmox.com
53
© 2014 Proxmox Server Solutions GmbH 54
Ceph
55
Ceph
56
LXC
57
Ceph
58
Ceph
59
Ceph
60
61
62
63
64
65
66
Questions?
67
https://github.com/aderumier
http://www.odiso.com (On Recrute !)
Demo Time !
68