La virtualisation dans le Datacenter 
      
     
      
       
        
         
          
           Déploiement d'applications critiques  
          
         
        
       
       
        
         
          
           
          
         
        
       
       
        
         
          
           Bonnes pratiques avec Debian+Xen 
          
         
        
       
       
        
         
          
           (entre autres) 
          
         
        
       
       
        
         
          
           
          
         
        
       
       
        
         
          
           Jérôme Petazzoni – Pilot Systems 
          
         
        
       
       
        
         
          
           Solutions Linux 2009

      
       Plan 
      
     
      
       
        
         Public concerné 
        
       
       
        
         Pourquoi virtualiser ? 
        
       
       
        
         Que virtualiser, comment, avec quoi ? 
        
       
       
        
         Quels enjeux pour l'infrastructure : sécurité, fiabilité, déploiement supervision ? 
        
       
       
        
         Quel coût (humain) ? 
        
       
       
        
         Le  Cloud computing 
        
       
       
        
         Xen + Debian en 20 minutes

      
       À qui s'adresse cette présentation 
      
     
      
       
        
         Au décideur pressé qui veut diminuer les coûts / augmenter la rentabilité de ses serveurs 
        
       
       
        
         Au sysadmin qui veut se mettre à la virtualisation  (sous Linux, parcequ'on n'est pas à « Solutions Windows ») 
        
       
       
        
         À l'utilisateur Debian/Ubuntu qui veut virtualiser 
        
       
       
        
         ... des applications critiques (haute disponibilité) 
        
       
       
        
         ... des applications lourdes (gourmandes en ressources) 
        
       
       
        
         ... de 7 à 77 ans, depuis 1 serveur jusqu'à 10 baies !

      
       Virtualiser ... pour quoi faire ? 
      
     
      
       
        
         Vos serveurs passent leur temps à ne rien faire 
        
       
       
        
         Vos disques sont utilisés à 10% à peine 
        
       
       
        
         Combien vous faut-il : 
        
       
       
        
         
          
           de cœurs ?  
          
         
        
       
       
        
         
          
           de gigas de RAM ?  42 ? 
          
         
        
       
       
        
         Vous avez besoin de machines temporaires 
        
       
       
        
         Vous voulez pouvoir changer de fournisseur facilement 
        
       
       
        
         Vous voulez faire de la haute dispo à moindre coût

      
       Virtualiser ... le CPU et RAM 
      
     
      
       
        
         Virtualisation « dure » : Xen, KVM 
        
       
       
        
         
          
           Xen et la RAM : pas  d' overcommit  ;  ballooning   
          
         
        
       
       
        
         
          
           KVM et la RAM :  guest memory swapping 
          
         
        
       
       
        
         
          
           Xen, KVM et le CPU :  scheduling  et  pinning 
          
         
        
       
       
        
         Virtualisation « molle » : VServer, OpenVZ 
        
       
       
        
         
          
           CPU et RAM partagés 
          
         
        
       
       
        
         
          
           Pas vraiment de limites dures 
          
         
        
       
       
        
         
          
           Accounting  utilisable

      
       Virtualiser ... le stockage de données (1) 
      
     
      
       
        
         À l'ancienne :  fdisk 
        
       
       
        
         
          
           Découpage du disque en partitions 
          
         
        
       
       
        
         
          
           Redimensionnement pénible 
          
         
        
       
       
        
         
          
           Agrégation avec du RAID (hard ou soft) 
          
         
        
       
       
        
         Aujourd'hui :  lvm 
        
       
       
        
         
          
           Découpage d'un  volume group  en  logical volumes 
          
         
        
       
       
        
         
          
           Redimensionnement facile  (ext3  online growing ) 
          
         
        
       
       
        
         
          
           Ajout de  physical volumes  à chaud

      
       Virtualiser ... le stockage de données (2) 
      
     
      
       
        
         Demain : des  snapshots  qui marchent 
        
       
       
        
         
          
           Ext3cow  : mûr, mais plus développé 
          
         
        
       
       
        
         
          
           Nilfs  : intégré récemment au noyau 
          
         
        
       
       
        
         
          
           ZFS  :  license wars, Solaris strikes back 
          
         
        
       
       
        
         
          
           Btrfs  : un nouvel espoir ? 
          
         
        
       
       
        
         On a dit : « demain » ! 
        
       
       
        
         
          
           Pour l'instant, merci d'utiliser lvcreate --snapshot

      
       Virtualiser ... l'accès aux données 
      
     
      
       
        
         NFS (via un serveur ou un NAS) 
        
       
       
        
         
          
           Disponible partout, facile à déployer 
          
         
        
       
       
        
         
          
           Difficile à sécuriser, performances variables 
          
         
        
       
       
        
         iSCSI (via un serveur, un NAS, ou un SAN) 
        
       
       
        
         
          
           Disponible sur les plateformes récentes 
          
         
        
       
       
        
         
          
           Interopérabilité parfois hasardeuse 
          
         
        
       
       
        
         
          
           Bonnes performances, mais il faut un bon réseau 
          
         
        
       
       
        
         Disques locaux (migration avec DRBD)

      
       Virtualiser ... la connectivité réseau 
      
     
      
       
        
         VLANs 
        
       
       
        
         
          
           Création d'un VLAN par serveur  (physique ou virtuel) 
          
         
        
       
       
        
         
          
           Provisioning  : 
          
         
        
       
       
        
         
          
           
            
             Manuel (un nouveau serveur = je crée un VLAN) 
            
           
          
         
        
       
       
        
         
          
           
            
             Automatique (GARP/GVRP) 
            
           
          
         
        
       
       
        
         
          
           
            
             Intermédiaire (pré-configuration de 4000 VLANs) 
            
           
          
         
        
       
       
        
         La plupart (toutes?) les technos de virtualisation sont indépendantes des VLANs 
        
       
       
        
         L'allocation de ressources se fait au niveau 2  ( switches )

      
       Virtualiser ... l'infrastructure 
      
     
      
       
        
         Routeurs /  Firewalls 
        
       
       
        
         
          
           Débit brut : jusqu'à 1 Gb/s dans du Xen 
          
         
        
       
       
        
         
          
           Petits  firewalls  ad hoc 
          
         
        
       
       
        
         Load balancers 
        
       
       
        
         
          
           150 kpps / 50000 sessions (~100 Mb/s) 
          
         
        
       
       
        
         Filers 
        
       
       
        
         
          
           Attention, les performances sont affectées 
          
         
        
       
       
        
         
          
           Mais cela permet de tester une technologie

      
       Virtualiser ... la sécurité 
      
     
      
       
        
         Security track  de Xen :  principalement avec pygrub et le  framebuffer  virtuel  (composants peu déployés, et dont on peut se passer) 
        
       
       
        
         AWS EC2 est basé sur Xen ... et n'a pas  (encore)  été victime de faille de sécurité 
        
       
       
        
         Isoler les réseaux est possible (et facile) 
        
       
       
        
         Pour les paranoïaques : le  CPU-pinning  permet d'éviter les attaques sur le cache L2

      
       Virtualiser ... la haute disponibilité 
      
     
      
       
        
         On déplace la problématique de haute disponibilité (heartbeat, DRBD, CARP...) vers la machine hôte 
        
       
       
        
         ... Donc on sépare plus clairement les tâches & rôles 
        
       
       
        
         Une VM démarre plus vite qu'une machine physique 
        
       
       
        
         Il est plus facile de faire des tests avec des VM (on peut simuler facilement allumage, extinction, coupure réseau, erreurs disques, etc.) 
        
       
       
        
         Pour les PRA : économie car mutualisation du  backup

      
       Virtualiser ... le déploiement 
      
     
      
       
        
         Essayons d'oublier l'installation « à l'ancienne » (GUI) 
        
       
       
        
         Procédures existantes réutilisables : 
        
       
       
        
         
          
           PXE+NFSROOT 
          
         
        
       
       
        
         
          
           Debootstrap (et équivalents) 
          
         
        
       
       
        
         
          
           Single System Image 
          
         
        
       
       
        
         Nouvelles procédures : 
        
       
       
        
         
          
           Déploiement par clone / snapshot 
          
         
        
       
       
        
         
          
           Technologies émergentes (DotCloud, EC2...)

      
       Virtualiser ... la supervision 
      
     
      
       
        
         On garde les bases : Nagios, Cacti, Munin, Zabbyx ... 
        
       
       
        
         On configure correctement les dépendances/groupes 
        
       
       
        
         On ajoute des briques logicielles pour l'inventaire

      
       C'est compliqué ! 
      
     
      
       
        
         Non ! 
        
       
       
        
         
          
           Tous les composants décrits sont  indépendants les uns des autres  (sauf la virtualisation CPU/RAM) 
          
         
        
       
       
        
         
          
           Les problématiques sont  indépendantes (on peut virtualiser le stockage avec un SAN, et virtualiser plus tard les machines, ou pas) 
          
         
        
       
       
        
         
          
           Prise en main rapide (on va y revenir!)

      
       Le  Cloud  dans tout ça 
      
     
      
       
        
         Dans la suite :  Cloud  = HaaS 
        
       
       
        
         Mise à disposition de ressources  (CPU, RAM, disque, réseau)  à la demande 
        
       
       
        
         Pas d'investissement 
        
       
       
        
         Facturation plus fine (au mois, voire à l'heure) 
        
       
       
        
         Ensemble d'API permettant le  provisioning

      
       Glossaire marketto-buzz du Cloud 
      
     
      
       
        
         AWS S3 = service de stockage de masse d'Amazon 
        
       
       
        
         AWS EC2 =  Cloud  (CPU  on-demand ) d'Amazon 
        
       
       
        
         Eucalyptus = implémentation Open Source d'EC2 
        
       
       
        
         NiftyName = API ouverte de gestion de Cloud (~EC2) 
        
       
       
        
         RightScale, Morph ... = fournisseurs de services Cloud (déploiement / gestion /  monitoring ) 
        
       
       
        
         DotCloud = stack gérant le  packaging , le déploiement, la configuration et la mise à jour de logiciels dans le Cloud 
        
       
       
        
         PODP = Power-On-Demand Platform (Pilot Systems)

      
       Xen + Debian en 20 minutes (1) 
      
     
      
       
        
         Installation des  packages 
        
       
       
        
         # apt-get install xen-linux-system-2.6.26-1-xen-amd64 
        
       
       
        
         # apt-get install vlan bridge-utils lvm2 mdadm ucarp 
        
       
       
        
         # apt-get install debootstrap xen-tools 
        
       
       
        
         ... reboot ... 
        
       
       
        
         # xm list 
        
       
       
        
         Name  ID    Mem VCPUs  State  Time(s) 
        
       
       
        
         Domain-0  0  64766     8  r-----  5570.0

      
       Xen + Debian en 20 minutes (2) 
      
     
      
       
        
         Configuration du LVM 
        
       
       
        
         # mdadm -C /dev/md0 -n2 -l1 /dev/sda /dev/sdb 
        
       
       
        
         # mdadm -C /dev/md1 -n2 -l1 /dev/sdc /dev/sdd 
        
       
       
        
         # pvcreate /dev/md0 /dev/md1 
        
       
       
        
         # vgcreate melody /dev/md0 /dev/md1 
        
       
       
        
         # lvcreate melody -n jack-disk -L 50G 
        
       
       
        
         # mke2fs -j /dev/melody/jack-disk 
        
       
       
        
         # mount /dev/melody/jack-disk 
        
       
       
        
         # lvextend /dev/melody/jack-disk -L 100G 
        
       
       
        
         # resize2fs /dev/melody/jack-disk 
        
       
       
        
         # rsync --numeric-ids --del -xa jack:/ /dev/melody/jack-disk/

      
       Xen + Debian en 20 minutes (3) 
      
     
      
       
        
         Affichage du LVM 
        
       
       
        
         # vgs VG  #PV #LV #SN Attr  VSize  VFree  melody  2  9  0 wz--n- 602.48G 301.97G 
        
       
       
        
         # pvs PV  VG  Fmt  Attr PSize  PFree  /dev/md0  melody lvm2 --  136.73G  86.60G /dev/md1  melody lvm2 a-  465.76G 215.37G 
        
       
       
        
         # lvs LV  VG  Attr  LSize  [...] jack-disk  melody -wi-ao 100.00G jack-swap  melody -wi-ao 128.00M plonenet-disk melody -wi-ao  50.00G plonenet-swap melody -wi-ao 128.00M [...]

      
       Xen + Debian en 20 minutes (4) 
      
     
      
       
        
         Configuration des VLANs 
        
       
       
        
         /etc/network/interfaces : 
        
       
       
        
         auto vlan42  
        
       
       
        
         iface vlan42 inet static address 10.42.0.12 netmask 255.255.0.0 gateway 10.42.254.254 bridge_ports eth1.42 bridge_fd 0 bridge_stp off 
        
       
       
        
         # ifup vlan42 
        
       
       
        
         # brctl show bridge name   bridge id           STP enabled  interfaces vlan42        8000.003048c66c93   no            eth1.42

      
       
        
         Déploiement 
        
       
       
        
         # vi /etc/xen-tools/xen-tools.conf 
        
       
       
        
         Modifier : lvm=melody size=5Gb memory=1000Mb swap=128Mb dist=lenny gateway=10.42.254.254 netmask=255.255.0.0 mirror= ftp://debian.worldcompany.net/debian 
        
       
       
        
         # xen-create-image --ip 10.42.3.4 --hostname foo \                  --size 50G --memory 4000 
        
       
       
        
         # xm create /etc/xen/foo.cfg -c 
        
       
      
     
      
       Xen + Debian en 20 minutes (5)

      
       
        
         Le fichier de configuration de la VM 
        
       
       
        
         # vi /etc/xen/foo.cfg kernel  = '/boot/vmlinuz-2.6.26-1-xen-amd64' ramdisk  = '/boot/initrd.img-2.6.26-1-xen-amd64' memory  = '4000' root  = '/dev/sda2 ro' disk  = [   'phy:/dev/melody/foo-swap,sda1,w',   'phy:/dev/melody/foo-disk,sda2,w',   ] name  = 'foo' ###vif  = [ 'ip=10.42.3.4,mac=00:16:3E:40:72:16' ] on_poweroff = 'destroy' on_reboot  = 'restart' on_crash  = 'restart' maxmem      = '16000'  ### ajoutons ça vcpus       = '2'  ### et puis ça vif         = ['ip=10.42.3.4,mac=00:16:3E:40:72:16,bridge=vlan42'] ### changeons ça 
        
       
      
     
      
       Xen + Debian en 20 minutes (6)

      
       
        
         Opérations diverses 
        
       
       
        
         # xm console foo 
        
       
       
        
         # xm shutdown foo -w # arrêt propre 
        
       
       
        
         # xm destroy foo # arrêt sale 
        
       
       
        
         # xm mem-set foo 8000 # more memory, please 
        
       
       
        
         # xm vcpu-set foo 1 # less CPU, please 
        
       
       
        
         
        
       
       
        
         # brctl show bridge name   bridge id           STP enabled  interfaces vlan42        8000.003048c66c93   no            eth1.42                                                vif3.0                                                vif3.0 
        
       
      
     
      
       Xen + Debian en 20 minutes (7)

      
       
        
         Un peu de haute dispo (début) 
        
       
       
        
         # apt-get install module-assistant 
        
       
       
        
         # m-a -t prepare && m-a -t update && m-a -t a-i drbd8 
        
       
       
        
         # vi /etc/drbd.conf ressource foo { protocol C; on melody { device /dev/drbd0; disk /dev/melody/foo-disk; address 10.42.0.12:9000; flexible-meta-disk /dev/melody/foo-meta; } on nelson { ... idem ... } 
        
       
       
        
         Copier le fichier (à l'identique) sur l'hôte nelson 
        
       
       
        
         
        
       
      
     
      
       Xen + Debian en 20 minutes (8)

      
       
        
         Un peu de haute dispo (suite et fin) 
        
       
       
        
         S'assurer que la VM ”foo” est arrêtée ! 
        
       
       
        
         # drbdadm create-md foo # sur melody et nelson 
        
       
       
        
         # /etc/init.d/drbd start # sur melody et nelson 
        
       
       
        
         # drbdsetup /dev/drbd0 primary -o # sur melody 
        
       
       
        
         ... Modifier la configuration Xen pour utiliser /dev/drbd0 au lieu de /dev/melody/foo-disk 
        
       
       
        
         ... Démarrer la VM sur melody 
        
       
       
        
         ... Attendre la fin de la synchro 
        
       
       
        
         ... Copier (et adapter - s/melody/nelson/) la config VM 
        
       
       
        
         Pour switcher : drbdsetup /dev/drbd0 primary -o 
        
       
       
        
         ... et démarrer la VM 
        
       
      
     
      
       Xen + Debian en 20 minutes (9)

      
       
        
         Migration 
        
       
       
        
         On peut sauver une VM avec ”xm save” 
        
       
       
        
         La restaurer avec ”xm restore” 
        
       
       
        
         ... Donc si on reboot l'hôte, les VM ne rebootent pas 
        
       
       
        
         Si on utilise NFS ou iSCSI : ”xm migrate” 
        
       
       
        
         Avec du stockage local :  
        
       
       
        
         
          
           Vaudou avec xm save + DRBD + xm restore 
          
         
        
       
       
        
         
          
           Migration, puis re-Vaudou dans l'autre sens 
          
         
        
       
       
        
         
        
       
      
     
      
       Xen + Debian en 20 minutes (10)

      
       
        
         Avec Xen, on peut faire tourner (sur un hôte 64 bits) : 
        
       
       
        
         
          
           Un Linux 64 bits 
          
         
        
       
       
        
         
          
           Un Linux 32 bits (kernel en 64, userland en 32) 
          
         
        
       
       
        
         
          
           Un OpenSolaris 64 bits 
          
         
        
       
       
        
         
          
           Un FreeBSD 64 bits (bientôt?) 
          
         
        
       
       
        
         
          
           À peu près n'importe quoi en HVM 32 ou 64 bits (ça veut dire aussi du Windows, et ça marche pour de vrai) 
          
         
        
       
       
        
         Donc des  appliances  ( firewall , NAS...) pour tester ou en prod 
        
       
      
     
      
       Quelques pistes

      
       
        
         Xen + Debian = la virtualisation pour les nuls 
        
       
       
        
         Bonne intégration des outils dans la distribution 
        
       
       
        
         Les gens qui connaissent déjà le RAID, le LVM, le NFS, l'iSCSI ; qui ont un NAS, un SAN, des VLANs... peuvent tout garder et le mettre à profit en virtualisé 
        
       
       
        
         Ceux qui ne connaissent pas peuvent s'en passer 
        
       
       
        
         Plateformes en production depuis 2004 (Les mises à jour se passent bien) 
        
       
      
     
      
       Conclusions

      
       Questions ? 
      
     
      
       
        
         
        
       
       
        
         Jérôme Petazzoni 
        
       
       
        
         [email_address] 
        
       
       
        
         Pilot Systems 
        
       
       
        
         http://fon.gs/xenforever

La virtualisation dans le Datacenter

  • 1.
    La virtualisation dans le Datacenter Déploiement d'applications critiques Bonnes pratiques avec Debian+Xen (entre autres) Jérôme Petazzoni – Pilot Systems Solutions Linux 2009
  • 2.
    Plan Public concerné Pourquoi virtualiser ? Que virtualiser, comment, avec quoi ? Quels enjeux pour l'infrastructure : sécurité, fiabilité, déploiement supervision ? Quel coût (humain) ? Le Cloud computing Xen + Debian en 20 minutes
  • 3.
    À qui s'adresse cette présentation Au décideur pressé qui veut diminuer les coûts / augmenter la rentabilité de ses serveurs Au sysadmin qui veut se mettre à la virtualisation (sous Linux, parcequ'on n'est pas à « Solutions Windows ») À l'utilisateur Debian/Ubuntu qui veut virtualiser ... des applications critiques (haute disponibilité) ... des applications lourdes (gourmandes en ressources) ... de 7 à 77 ans, depuis 1 serveur jusqu'à 10 baies !
  • 4.
    Virtualiser ... pour quoi faire ? Vos serveurs passent leur temps à ne rien faire Vos disques sont utilisés à 10% à peine Combien vous faut-il : de cœurs ? de gigas de RAM ? 42 ? Vous avez besoin de machines temporaires Vous voulez pouvoir changer de fournisseur facilement Vous voulez faire de la haute dispo à moindre coût
  • 5.
    Virtualiser ... le CPU et RAM Virtualisation « dure » : Xen, KVM Xen et la RAM : pas d' overcommit ; ballooning KVM et la RAM : guest memory swapping Xen, KVM et le CPU : scheduling et pinning Virtualisation « molle » : VServer, OpenVZ CPU et RAM partagés Pas vraiment de limites dures Accounting utilisable
  • 6.
    Virtualiser ... le stockage de données (1) À l'ancienne : fdisk Découpage du disque en partitions Redimensionnement pénible Agrégation avec du RAID (hard ou soft) Aujourd'hui : lvm Découpage d'un volume group en logical volumes Redimensionnement facile (ext3 online growing ) Ajout de physical volumes à chaud
  • 7.
    Virtualiser ... le stockage de données (2) Demain : des snapshots qui marchent Ext3cow : mûr, mais plus développé Nilfs : intégré récemment au noyau ZFS : license wars, Solaris strikes back Btrfs : un nouvel espoir ? On a dit : « demain » ! Pour l'instant, merci d'utiliser lvcreate --snapshot
  • 8.
    Virtualiser ... l'accès aux données NFS (via un serveur ou un NAS) Disponible partout, facile à déployer Difficile à sécuriser, performances variables iSCSI (via un serveur, un NAS, ou un SAN) Disponible sur les plateformes récentes Interopérabilité parfois hasardeuse Bonnes performances, mais il faut un bon réseau Disques locaux (migration avec DRBD)
  • 9.
    Virtualiser ... la connectivité réseau VLANs Création d'un VLAN par serveur (physique ou virtuel) Provisioning : Manuel (un nouveau serveur = je crée un VLAN) Automatique (GARP/GVRP) Intermédiaire (pré-configuration de 4000 VLANs) La plupart (toutes?) les technos de virtualisation sont indépendantes des VLANs L'allocation de ressources se fait au niveau 2 ( switches )
  • 10.
    Virtualiser ... l'infrastructure Routeurs / Firewalls Débit brut : jusqu'à 1 Gb/s dans du Xen Petits firewalls ad hoc Load balancers 150 kpps / 50000 sessions (~100 Mb/s) Filers Attention, les performances sont affectées Mais cela permet de tester une technologie
  • 11.
    Virtualiser ... la sécurité Security track de Xen : principalement avec pygrub et le framebuffer virtuel (composants peu déployés, et dont on peut se passer) AWS EC2 est basé sur Xen ... et n'a pas (encore) été victime de faille de sécurité Isoler les réseaux est possible (et facile) Pour les paranoïaques : le CPU-pinning permet d'éviter les attaques sur le cache L2
  • 12.
    Virtualiser ... la haute disponibilité On déplace la problématique de haute disponibilité (heartbeat, DRBD, CARP...) vers la machine hôte ... Donc on sépare plus clairement les tâches & rôles Une VM démarre plus vite qu'une machine physique Il est plus facile de faire des tests avec des VM (on peut simuler facilement allumage, extinction, coupure réseau, erreurs disques, etc.) Pour les PRA : économie car mutualisation du backup
  • 13.
    Virtualiser ... le déploiement Essayons d'oublier l'installation « à l'ancienne » (GUI) Procédures existantes réutilisables : PXE+NFSROOT Debootstrap (et équivalents) Single System Image Nouvelles procédures : Déploiement par clone / snapshot Technologies émergentes (DotCloud, EC2...)
  • 14.
    Virtualiser ... la supervision On garde les bases : Nagios, Cacti, Munin, Zabbyx ... On configure correctement les dépendances/groupes On ajoute des briques logicielles pour l'inventaire
  • 15.
    C'est compliqué ! Non ! Tous les composants décrits sont indépendants les uns des autres (sauf la virtualisation CPU/RAM) Les problématiques sont indépendantes (on peut virtualiser le stockage avec un SAN, et virtualiser plus tard les machines, ou pas) Prise en main rapide (on va y revenir!)
  • 16.
    Le Cloud dans tout ça Dans la suite : Cloud = HaaS Mise à disposition de ressources (CPU, RAM, disque, réseau) à la demande Pas d'investissement Facturation plus fine (au mois, voire à l'heure) Ensemble d'API permettant le provisioning
  • 17.
    Glossaire marketto-buzz du Cloud AWS S3 = service de stockage de masse d'Amazon AWS EC2 = Cloud (CPU on-demand ) d'Amazon Eucalyptus = implémentation Open Source d'EC2 NiftyName = API ouverte de gestion de Cloud (~EC2) RightScale, Morph ... = fournisseurs de services Cloud (déploiement / gestion / monitoring ) DotCloud = stack gérant le packaging , le déploiement, la configuration et la mise à jour de logiciels dans le Cloud PODP = Power-On-Demand Platform (Pilot Systems)
  • 18.
    Xen + Debian en 20 minutes (1) Installation des packages # apt-get install xen-linux-system-2.6.26-1-xen-amd64 # apt-get install vlan bridge-utils lvm2 mdadm ucarp # apt-get install debootstrap xen-tools ... reboot ... # xm list Name ID   Mem VCPUs State Time(s) Domain-0 0  64766     8 r----- 5570.0
  • 19.
    Xen + Debian en 20 minutes (2) Configuration du LVM # mdadm -C /dev/md0 -n2 -l1 /dev/sda /dev/sdb # mdadm -C /dev/md1 -n2 -l1 /dev/sdc /dev/sdd # pvcreate /dev/md0 /dev/md1 # vgcreate melody /dev/md0 /dev/md1 # lvcreate melody -n jack-disk -L 50G # mke2fs -j /dev/melody/jack-disk # mount /dev/melody/jack-disk # lvextend /dev/melody/jack-disk -L 100G # resize2fs /dev/melody/jack-disk # rsync --numeric-ids --del -xa jack:/ /dev/melody/jack-disk/
  • 20.
    Xen + Debian en 20 minutes (3) Affichage du LVM # vgs VG #PV #LV #SN Attr VSize VFree melody 2 9 0 wz--n- 602.48G 301.97G # pvs PV VG Fmt Attr PSize PFree /dev/md0 melody lvm2 -- 136.73G 86.60G /dev/md1 melody lvm2 a- 465.76G 215.37G # lvs LV VG Attr LSize [...] jack-disk melody -wi-ao 100.00G jack-swap melody -wi-ao 128.00M plonenet-disk melody -wi-ao 50.00G plonenet-swap melody -wi-ao 128.00M [...]
  • 21.
    Xen + Debian en 20 minutes (4) Configuration des VLANs /etc/network/interfaces : auto vlan42 iface vlan42 inet static address 10.42.0.12 netmask 255.255.0.0 gateway 10.42.254.254 bridge_ports eth1.42 bridge_fd 0 bridge_stp off # ifup vlan42 # brctl show bridge name   bridge id           STP enabled  interfaces vlan42        8000.003048c66c93   no            eth1.42
  • 22.
    Déploiement # vi /etc/xen-tools/xen-tools.conf Modifier : lvm=melody size=5Gb memory=1000Mb swap=128Mb dist=lenny gateway=10.42.254.254 netmask=255.255.0.0 mirror= ftp://debian.worldcompany.net/debian # xen-create-image --ip 10.42.3.4 --hostname foo \                  --size 50G --memory 4000 # xm create /etc/xen/foo.cfg -c Xen + Debian en 20 minutes (5)
  • 23.
    Le fichier de configuration de la VM # vi /etc/xen/foo.cfg kernel = '/boot/vmlinuz-2.6.26-1-xen-amd64' ramdisk = '/boot/initrd.img-2.6.26-1-xen-amd64' memory = '4000' root = '/dev/sda2 ro' disk = [ 'phy:/dev/melody/foo-swap,sda1,w', 'phy:/dev/melody/foo-disk,sda2,w', ] name = 'foo' ###vif = [ 'ip=10.42.3.4,mac=00:16:3E:40:72:16' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' maxmem      = '16000' ### ajoutons ça vcpus       = '2' ### et puis ça vif         = ['ip=10.42.3.4,mac=00:16:3E:40:72:16,bridge=vlan42'] ### changeons ça Xen + Debian en 20 minutes (6)
  • 24.
    Opérations diverses # xm console foo # xm shutdown foo -w # arrêt propre # xm destroy foo # arrêt sale # xm mem-set foo 8000 # more memory, please # xm vcpu-set foo 1 # less CPU, please # brctl show bridge name   bridge id           STP enabled  interfaces vlan42        8000.003048c66c93   no            eth1.42                                                vif3.0                                                vif3.0 Xen + Debian en 20 minutes (7)
  • 25.
    Un peu de haute dispo (début) # apt-get install module-assistant # m-a -t prepare && m-a -t update && m-a -t a-i drbd8 # vi /etc/drbd.conf ressource foo { protocol C; on melody { device /dev/drbd0; disk /dev/melody/foo-disk; address 10.42.0.12:9000; flexible-meta-disk /dev/melody/foo-meta; } on nelson { ... idem ... } Copier le fichier (à l'identique) sur l'hôte nelson Xen + Debian en 20 minutes (8)
  • 26.
    Un peu de haute dispo (suite et fin) S'assurer que la VM ”foo” est arrêtée ! # drbdadm create-md foo # sur melody et nelson # /etc/init.d/drbd start # sur melody et nelson # drbdsetup /dev/drbd0 primary -o # sur melody ... Modifier la configuration Xen pour utiliser /dev/drbd0 au lieu de /dev/melody/foo-disk ... Démarrer la VM sur melody ... Attendre la fin de la synchro ... Copier (et adapter - s/melody/nelson/) la config VM Pour switcher : drbdsetup /dev/drbd0 primary -o ... et démarrer la VM Xen + Debian en 20 minutes (9)
  • 27.
    Migration On peut sauver une VM avec ”xm save” La restaurer avec ”xm restore” ... Donc si on reboot l'hôte, les VM ne rebootent pas Si on utilise NFS ou iSCSI : ”xm migrate” Avec du stockage local : Vaudou avec xm save + DRBD + xm restore Migration, puis re-Vaudou dans l'autre sens Xen + Debian en 20 minutes (10)
  • 28.
    Avec Xen, on peut faire tourner (sur un hôte 64 bits) : Un Linux 64 bits Un Linux 32 bits (kernel en 64, userland en 32) Un OpenSolaris 64 bits Un FreeBSD 64 bits (bientôt?) À peu près n'importe quoi en HVM 32 ou 64 bits (ça veut dire aussi du Windows, et ça marche pour de vrai) Donc des appliances ( firewall , NAS...) pour tester ou en prod Quelques pistes
  • 29.
    Xen + Debian = la virtualisation pour les nuls Bonne intégration des outils dans la distribution Les gens qui connaissent déjà le RAID, le LVM, le NFS, l'iSCSI ; qui ont un NAS, un SAN, des VLANs... peuvent tout garder et le mettre à profit en virtualisé Ceux qui ne connaissent pas peuvent s'en passer Plateformes en production depuis 2004 (Les mises à jour se passent bien) Conclusions
  • 30.
    Questions ? Jérôme Petazzoni [email_address] Pilot Systems http://fon.gs/xenforever