Forum général.général Virtualisation / KVM - questions diverses et variées

Posté par .
Tags : aucun
2
8
nov.
2011

Bonjour à toi, forum !

Je viens te demander un peu d'aide, retour d'expérience, préconisations et autres sur de la virtualisation de serveurs. J'abuse un peu, j'ai déjà fait pas mal de recherches (pas assez diront certains), mais reste des zones d'ombres dont je souhaiterai te faire part.

Contexte

Dans un futur très proche, je vais virtualiser les serveurs de ma boite, soit environ une dizaine de serveurs. La plupart sont sous Debian, 2-3 résistent sous Windows.

Les principaux arguments pour faire cela sont:
- gain de place dans les baies
- économie d'électricité
- haute dispo / fail-over des services (bascule sur un 2ème serveur si le 1er est HS / raz la gueule)

Architecture / Matériel

Coté archi, le tout peut être virtualisé avec 2 hyperviseurs + SAN. Le tout tiendrait même sur 1 seul serveur, le 2ème est la surtout pour la haute dispo.

On a du matériel Dell, ça fonctionne plutôt bien, pour pas trop cher, donc je vais rester la dessus.

Solution logicielle

Ici, 2 choix:
- VMware, leader du marché tout ça, qui sur le papier fait tout bien, mais avec une gestion des licences obscur. Ce que je peux voir aussi c'est que KVM est de plus en plus apprécié.
- KVM, mon choix de prédilection, mais où j'ai du mal à concevoir quel outil de management peut rivaliser avec les outils vmware. Et j'ai pas forcément envie de tout faire à la main (même si ça m'intéresse bien).

Disons que je parte sur KVM. Red Hat propose RHEV, solution intéressante, qui propose un hyperviseur + manager qui fait a priori tout ce que je veux. Mais avant cela, histoire d'avoir toutes les billes pour décider, j'ai quelques questions.

Questions

Voici maintenant la partie intéressante, surtout pour moi ;)

  • Au niveau du SAN, pour ceux qui ont ce genre d'architecture, comment gérez-vous le lien disque VM stocké sur le SAN <-> Hyperviseur ?
  • Les diverses machine sont aujourd'hui sur le LAN et DMZ, tout rassembler sur une même machine physique peut poser un problème de sécurité. VMware propose une séparation par VLANs. KVM aussi je crois, mais je demande confirmation ;)
  • Quel est la meilleure distribution, d'après vous, qui peut faire office de hyperviseur KVM ?
  • Au niveau manager, Red Hat impose une machine dédiée (aujourd'hui Windows, super, mais avec RHEV 3, ce sera du RHEL). Je crois que VMWare permet d'avoir une VM pour cela. Votre avis la dessus ?
  • Mis à part RHEV, quel manager permet la gestion de la haute-dispo ? Est-ce Proxmox VE permet cela ?
  • Est-ce que partir sur Proxmox semble judicieux, sachant qu'il ne se base pas sur libvirt, ce qui est dommage car ça a l'air sympa ?

Coté solution, je suis évidemment prêt à avoir une solution payante (type RHEL), mais sans coût exhorbitants / cachés).

Tout retour d'expérience est le bienvenu, choses à faire / ne pas faire, etc etc.

Merci à toi qui m'a lu jusqu'au bout, si tu es arrivé jusque la, tu pourra peut-être répondre à au moins une de mes questions ;)

  • # KVM à la mano

    Posté par (page perso) . Évalué à 2.

    KVM à un outil en ligne de commande, c'est vrai mais par contre il a aussi une foule d'outils d'automatisation qui tournent autours, à commencer par libvirt. Après si c'est juste pour 2 serveurs physiques et quelques machines virtuels je ne pense pas que tu ai besoin d'un outils comme puppet mais si le parque est amené à grandir c'est un outils superbe.

    Une distribution qui fera hyperviseur doit surtout être STABLE ! Par habitude (et expérience), centOS et Debian sont 2 très bons choix.

    Si tu veux partir dans l'excès après tu as des choses comme openstack, cloudstack ou encore opennebula, tous supportent KVM. Pas de support libvirt pour cloudstack.

    Toute le problème réside à trouver une solution qui te prendra le moins de temps à l'usage tout en étant assez souple.

    Dans le domaine de la haute disponibilité hearthbeat couplé à pacemaker est un classique robuste, drbd est pas mal du tout. Après il faut voir ce que tu pense faire:
    - Un cluster qui permet l'ajout/suppression à chaud de machines
    - Deux serveurs dupliqués (mais là c'est pas terrible vu que tu n'as que 2 serveurs physiques).

    Il faut bien que tu sache que faire de la haute dispo sur 2 serveurs physiques c'est pas facile et pas très utile.

    Pour ce qui est de tout mettre sur une même machine physique tu peux très bien avoir des VM sur un vlan interne et des VM avec une IP publique sur un autre vlan. Il faut juste bien configurer les bridges réseau. Ça dépend aussi de l'architecture réseau de ta boite.

    Pour le manager il ne faut pas regarder ce qui existe et essayer de faire un choix, il faut déterminer tes besoins (ne pas oublier le long terme) et ensuite voir si quelque chose correspond. Trop souvent des admins sont attirés par une fonctionnalité intéressante mais dans un outils qui leur pourrira la vie pendant longtemps. Mieux vaut un outils maison à base de scripts qu'un outils inadapté.

    En espérant avoir répondu à tes questions

    Si tu ne sais pas demande, si tu sais partage !

    • [^] # Re: KVM à la mano

      Posté par . Évalué à 0.

      Merci pour ta réponse !

      Pour l'hyperviseur, je suis adepte de Debian, donc mon choix se porterait à priori la dessus, sauf contre-indication.

      Pour la plateforme, aujourd'hui je prévois 2 serveurs physiques, mais cela peut augmenter avec le temps / besoins. J'essaie surtout de bâtir une base solide / cohérente.

      Pour la haute dispo, je connais de nom les outils type heartbeat/drbd, mais je croyais comprendre, peut-être à tort, que les outils de management (vmware, RHEV), offraient nativement ces fonctionnalités. Du coup, on peut coupler heartbeat avec kvm de façon assez simple ?

      Pour la conf réseau ça me fait pas plus peur que ça, merci pour les infos en tous cas.

      • [^] # Re: KVM à la mano

        Posté par (page perso) . Évalué à 1.

        Je te deconseil vmware. Le marketing est vraiment cool mais a l'utilisation c'est vraimwnt la galère comparé a kvm ou openvz experience vécue !

        Si tu ne sais pas demande, si tu sais partage !

        • [^] # Re: KVM à la mano

          Posté par . Évalué à 0.

          Justement, qu'est-ce qui est galère sur vmware qui ne l'est pas sur kvm ?

    • [^] # Re: KVM à la mano

      Posté par . Évalué à 7.

      Il faut bien que tu sache que faire de la haute dispo sur 2 serveurs physiques c'est pas facile et pas très utile.

      Pas facile je veux bien, mais pas très utile ça me parait hautement discutable comme opinion (et très dépendant des utilisations)..
      Sur quoi te bases-tu pour dire ça?

      • [^] # Re: KVM à la mano

        Posté par (page perso) . Évalué à 1.

        Le fait est que faire de la haute dispo est complexe et demande des connaissences importantes en admin. Un parc de 2machines ne doit pas demander 10 admins et donc le temps de mettre une telle infra serait trop important. Mon experience dans le domaine me font penser qu'une bonne infra a peut de chance de tomber en panne pour demander de la haute dispo.
        Apres, tout est faisable, il faut juste se poser les bonnes questions et surtout ne pas le faire parce que la feature semble cool. Les services demandants de la haute dispo sont somme tout rares.

        Si tu ne sais pas demande, si tu sais partage !

        • [^] # Re: KVM à la mano

          Posté par . Évalué à 0.

          Je suis d'accord la dessus. la problématique Haute Dispo est assez complexe (du moins ça demande un certain temps de compréhension).
          Au risque de me faire moinsser, je pense donc partir sur 2 solutions:
          - vmware pour les services office (ce que j'ai présenté). Ca me permet d'avoir un truc tout en un fonctionnel, avec du support. RHEV ne prévoit pas le support de guests debian, donc j'élimine (c'est dommage de payer du support pour des trucs non supportés)
          - Debian + KVM + Archipel pour un autre projet non critique, donc pas de HA au départ. Ca me permettra de me faire la main dessus plus sereinement.

          • [^] # Re: KVM à la mano

            Posté par (page perso) . Évalué à 4.

            Justement, qu'est-ce qui est galère sur vmware qui ne l'est pas sur kvm ?

            Vmware:
            - Propriétaire (c'est peut-être personnel mais quand je trouve une solution libre qui fonctionne je ne cherche pas plus loin)
            - La version gratuit est limitée (maximum 2 core, je crois qu'il y a aussi une limitation sur la RAM).
            - Lourd, vmware sans aucune vm bouffe déjà 500Mo de RAM. Une étude de RedHat (désolé j'ai la flemme de rechercher le lien) avait montré que sur un même hardware KVM faisait tourner 5 VM et vmware 3, en ayant les mêmes performances sur les invités.
            - Vmware étant propriétaire ils font en sorte que tu reste avec eux (ce n'est pas facile de migrer de vmware à une autre solution, possible mais pas évident, c'est un point important si la solution choisie ne répond pas aux besoins et qu'il faut migrer sur une autre solution)
            - L'installation, surtout des modules kernels, est assez compliqué (on a du a plusieurs reprises compiler le kernel à la mano pour avoir les modules installés correctement)

            KVM:
            - Libre (c'est un critère important pour moi, en plus on est sur linuxfr, légèrement libriste...)
            - Très performant (avec openvz nous perdons environ 1-3% de performances globales, avec KVM entre 5 et 8%, avec vmware nous étions à 10-15% en fonction des invités)
            - C'est paradoxal mais le support de windows est meilleurs, surtout si tu veux utiliser un environnement graphique
            - Installation (apt-get install kvm ou yum install kvm, pas trouvé plus simple...)
            - Administration très souple (plus complexe car c'est de la ligne de commande mais tu fais vraiment ce que tu veux, administration via puppet, libvirt avec virsh ou virt-manager qui est un binding gui de virsh mais avec moins de possibilités)

            Sinon j'ai aussi un autre commentaire quand au faire de faire tourner 10 machines virtuelles sur un serveur (dupliqué si tu fais de la haute disponibilité). Sur un serveur récent (Dell PowerEdge R510, 2 xeon quad core, 32Go de ram, 4 disques SAS en raid 5, quand même environ 9000 francs suisses donc 7305 €) on ne met pas plus de 8 VM dessus, et on est short. De plus ce ne sont que des serveurs GNU/Linux, windows demande plus de ressources (RAM et CPU, c'est vraiment flagrant sur une utilisation serveur). Tu risque d'avoir des ralentissements si tu n'a pas des serveurs plus puissants que celui-ci. De plus sur cette nouvelle machine nous avons openvz qui demande moins de ressources et est plus efficient en terme de perte de performance pure.

            Je finirai avec cette remarque un peut bidon mais tellement vrai: tout dépend de ton utilisation. Si tu aimes travailler et administrer des vmware, utilise ça. Mais si tu dois monter une infra à partir de rien je te recommande tout de même de tester plusieurs solutions (n'oublions pas qu'il n'y a pas que kvm et vmware dans la vie, il y a aussi openvz, xen, Parallels Server Bare Metal, oracles vm, promox et d'autres que je n'ai pas en tête; attention cependant, openvz ne peut pas avoir d'invités windows, c'est un espèce de chroot système, le kernel est partagé entre les invités et le système hôte.), ensuite ça te permettra de faire un choix en fonction des tes besoins mais aussi (et c'est important), de tes affinités.

            En espérant avoir été le plus claire possible, n'hésite pas à me redemander des choses si tu as besoins de plus d'infos.

            Si tu ne sais pas demande, si tu sais partage !

            • [^] # Re: KVM à la mano

              Posté par . Évalué à 0.

              Merci pour toutes ces infos en tous cas!

              J'utilise déjà LXC pour de la para-virtualisation, mais ça manque d'outil sexy pour manager tout ça.

              • [^] # Re: KVM à la mano

                Posté par . Évalué à 2.

                libvirt et virt-manager sont censés pouvoir causer avec LXC.

                j'utilise aussi LXC, et je n'avais pas trouvé comment utiliser virt-manager pour manager les machines lxc.

                alors je fais les 3 ou 4 commandes basiques :
                1°) lxc-create -n NOM_de_la_VM -t NOM_du_template -f NOM_du_fichier_de_config
                2°) edition du fichier /var/lib/lxc/NOM_de_la_VM/config pour adapter l'adresse MAC (hwaddr)
                2°) lxc-start -d -n NOM_de_la_VM
                3°) connexion ssh sur la VM (ou console avec lxc-console -n NOM_de_la_VM)
                4°) lxc-stop -n NOM_de_la_VM
                5°) lxc-destroy -n NOM_de_la_VM

                j'ai un reseau en mode bridge avec br0 monté sur eth0
                et mes machines se connectent simplement au LAN comme le ferait n'importe quel PC.

                c'est le DHCP qui donne les adresses IP et met à jour le DNS pour avoir un petit nom dans le navigateur ou la ligne de commande.

        • [^] # Re: KVM à la mano

          Posté par . Évalué à 3.

          Le fait est que faire de la haute dispo est complexe et demande des connaissences importantes en admin.

          Là je suis d'accord. Quoique je nuancerai en disant que ça dépend du prix que tu y met: un Stratus coûte très cher, mais coté redondance (du hard uniquement), ça marche vraiment très bien tout seul.

          Un parc de 2machines ne doit pas demander 10 admins et donc le temps de mettre une telle infra serait trop important.

          Le nombre de machines ne me parait pas tellement important, d'autant moins que puisque tu virtualise, une machine physique supporte plusieurs machine virtuelle.

          Une bonne infra a peu de chance de tomber en panne, effectivement, mais sur le long terme elle va tomber en panne donc se poser la question dés le départ comment repartir après une panne, comment faire les mise à jour logicielle est important et la haute disponibilité est une option dont le rapport coût d’implémentation/avantages ne me parait pas si négatif..

  • # KVM avec proxmox, oui

    Posté par (page perso) . Évalué à 2.

    On l'utilise dans mon labo, pratique, rapide à mettre en oeuvre. Qu'il n'utilise pas libvirt, a-priori tu t'en fout, c'est de la cuisine interne, il a des libs équivalentes à sa sauce. Il a l'avantage de permettre la gestion de clusters de serveurs, avec la gestion de la migration de machines. Derrière c'est un linux, tu peux faire un ssh dessus et aller éventuellement faire des manips à la ligne de commande.

    Si tu peux avoir un stockage style NAS/SAN, ça peut être intéressant.

    Tiens, ça m'a permis de voir qu'ils ont sorti la 1.9
    http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_1.9

    Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.