
Bonjour Ă tous. Cet article s'adresse Ă ceux qui hĂ©sitent encore entre les choix de plateformes de virtualisation et aprĂšs avoir lu un article de la sĂ©rie « Nous avons installĂ© proxmox et tout fonctionne parfaitement, 6 ans de disponibilitĂ© sans aucune interruption ». Cependant, aprĂšs avoir installĂ© une solution prĂȘte Ă l'emploi, une question se pose : comment ajuster ici et lĂ pour que la surveillance soit plus claire, et lĂ pour contrĂŽler les sauvegardes... Puis vient le moment oĂč vous rĂ©alisez que vous souhaitez quelque chose de plus fonctionnel, ou il vous faut que votre systĂšme soit totalement comprĂ©hensible, et non cet abaque noir, ou vous voulez utiliser autre chose qu'un hyperviseur et une multitude de machines virtuelles. Cet article prĂ©sentera quelques rĂ©flexions et de la pratique basĂ©e sur la plateforme Opennebula â j'ai choisi cela car elle n'est pas gourmande en ressources et son architecture n'est pas trop complexe.
Ainsi, comme nous le voyons, de nombreux fournisseurs de cloud opĂšrent sur KVM et construisent une interface externe pour gĂ©rer les machines. Il est Ă©vident que les grands hĂ©bergeurs dĂ©veloppent leurs propres interfaces pour l'infrastructure cloud, YANDEX par exemple. Certains utilisent OpenStack et construisent une interface sur cette base â SELECTEL, MAIL.RU. Mais si vous avez votre propre matĂ©riel et une petite Ă©quipe de spĂ©cialistes, vous choisissez gĂ©nĂ©ralement quelque chose de prĂȘt Ă l'emploi â VMWARE, HYPER-V, avec des licences gratuites et payantes, mais ce n'est pas de cela dont nous allons parler maintenant. Parlons des passionnĂ©s â ce sont ceux qui n'ont pas peur de proposer et d'essayer de nouvelles choses, mĂȘme si dans l'entreprise, on a clairement fait comprendre : « Qui va s'en occuper aprĂšs vous ? », « Est-ce que nous allons vraiment le mettre en production plus tard ? Ăa fait peur. » Mais on peut commencer par appliquer ces solutions dans un environnement de test et si tout le monde est satisfait, on peut alors discuter d'un dĂ©veloppement ultĂ©rieur et de leur utilisation dans des environnements plus sĂ©rieux.
Voici également un lien vers la présentation. d'un participant actif au développement de cette plateforme.
Il est possible que cet article contienne des Ă©lĂ©ments superflus et Ă©vidents pour un spĂ©cialiste expĂ©rimentĂ©, et dans certains cas, je ne dĂ©crirai pas tout, car des commandes similaires et des descriptions se trouvent sur le Web. Ici, je partage uniquement mon expĂ©rience avec cette plateforme. J'espĂšre que les participants actifs complĂ©teront dans les commentaires ce qui peut ĂȘtre amĂ©liorĂ© et quelles erreurs j'ai pu commettre. Toutes les actions se sont dĂ©roulĂ©es dans un environnement domestique composĂ© de 3 PC avec diffĂ©rentes caractĂ©ristiques. De plus, j'ai dĂ©libĂ©rĂ©ment Ă©vitĂ© de prĂ©ciser comment fonctionne ce logiciel et comment l'installer. Non, il s'agit uniquement de mon expĂ©rience d'administration et des problĂšmes auxquels j'ai Ă©tĂ© confrontĂ©. Peut-ĂȘtre que cela sera utile Ă quelqu'un dans son choix.
Alors, commençons. Pour moi, en tant qu'administrateur systÚme, les points suivants sont importants, sans lesquels je ne vais probablement pas utiliser cette solution.
1. Répétabilité de l'installation
Il existe une multitude de guides d'installation pour opennebula, cela ne devrait pas poser de problÚme. D'une version à l'autre, de nouvelles fonctionnalités apparaissent et ne fonctionneront pas toujours lors de la mise à niveau.
2. Surveillance
Nous allons surveiller le nĆud lui-mĂȘme, kvm et opennebula. Heureusement, il y a dĂ©jĂ des solutions toutes faites. Pour la surveillance des hĂŽtes Linux, il existe de nombreuses options, comme Zabbix ou Node Exporter â Ă chacun ses prĂ©fĂ©rences â je considĂšre actuellement que la surveillance des mĂ©triques systĂšme (tempĂ©rature oĂč cela peut ĂȘtre mesurĂ©, cohĂ©rence du tableau de disques) se fait via Zabbix, tandis que ce qui concerne les applications est traitĂ© par un exporter vers Prometheus. Pour la surveillance de kvm, par exemple, on peut utiliser le projet et le lancer avec systemd, cela fonctionne plutĂŽt bien et montre les mĂ©triques de kvm, il existe Ă©galement un tableau de bord prĂȘt Ă l'emploi. .
Par exemple, voici mon fichier :
/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter
[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"
[Install]
WantedBy=multi-user.targetEt donc, nous avons un exporter, il nous faut un second pour surveiller opennebula lui-mĂȘme, j'ai utilisĂ© celui-ci
On peut l'ajouter au normal pour la surveillance du systĂšme ci-aprĂšs.
Dans le fichier de node_exporter, nous modifions le démarrage comme suit :
ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collectorCréons le répertoire mkdir -p /var/lib/opennebula_exporter
Le script bash prĂ©sentĂ© ci-dessus doit d'abord ĂȘtre testĂ© via la console, s'il affiche ce qu'il faut (s'il donne une erreur, nous installons xmlstarlet), nous le copions dans /usr/local/bin/opennebula_exporter.sh.
Ajoutons une tĂąche cron pour chaque minute :
*\/1 * * * * (\/usr\/local\/bin\/opennebula_exporter.sh > \/var\/lib\/opennebula_exporter\/textfile_collector\/opennebula.prom)Les métriques commencent à apparaßtre, on peut les récupérer avec Prometheus, construire des graphiques et créer des alertes. Dans Grafana, par exemple, on peut dessiner un tableau de bord simple.

(on voit que j'ai ici fait un overcommit CPU, RAM)
Pour ceux qui aiment et utilisent Zabbix, il y a
Pour la surveillance, c'est tout, l'essentiel est qu'elle existe. Bien sûr, on peut en complément utiliser les outils de surveillance intégrés des machines virtuelles et exporter les données vers la facturation, chacun a sa propre vision, je n'y ai pas encore beaucoup réfléchi.
Concernant la journalisation, je n'ai pas encore vraiment commencĂ©. La solution la plus simple est d'ajouter td-agent pour parser le rĂ©pertoire \/var\/lib\/one avec des expressions rĂ©guliĂšres. Par exemple, le fichier sunstone.log correspond Ă la regexp de nginx et d'autres fichiers qui montrent l'historique des interactions avec la plateforme â quel est l'avantage ? Eh bien, par exemple, on peut clairement suivre le nombre d'« Erreur, erreur » et repĂ©rer plus rapidement oĂč et Ă quel niveau se trouve le problĂšme.
3. Sauvegardes
Il existe aussi des projets payants Ă©voluĂ©s â par exemple sep :OpenNebula_Backup. Ici, nous devons comprendre qu'il ne suffit pas de sauvegarder l'image de la machine, car nos machines virtuelles doivent fonctionner avec une intĂ©gration complĂšte (le mĂȘme fichier de contexte, dans lequel sont dĂ©crites les paramĂštres rĂ©seau, le nom de la VM et les paramĂštres personnalisĂ©s pour vos applications). Donc ici, nous dĂ©terminons quoi et comment nous allons sauvegarder. Dans certains cas, il est prĂ©fĂ©rable de faire des copies de ce qui se trouve dans la VM elle-mĂȘme. Et peut-ĂȘtre que nous devons sauvegarder seulement un disque de cette machine.
Par exemple, nous avons décidé que toutes les machines démarrent avec des images persistantes, donc en lisant
cela signifie qu'on peut d'abord exporter l'image de notre VM :
onevm disk-saveas 74 3 prom.qcow2
Image ID: 77
Voyons sous quel nom elle a été enregistrée
oneimage show 77
\/var\/lib\/one\/\/datastores\/100\/f9503161fe180658125a9b32433bf6e8
Et ensuite, nous copions oĂč nous en avons besoin. Bien sĂ»r, c'est une mĂ©thode peu pratique. Je voulais juste montrer qu'en utilisant des outils OpenNebula, on peut construire de telles solutions.J'ai Ă©galement trouvĂ© et il y a encore , mais celui-ci ne supporte que le stockage qcow2.
Mais comme nous le savons tous, tĂŽt ou tard vient le moment oĂč l'on souhaite des sauvegardes incrĂ©mentielles. C'est ici que cela devient plus compliquĂ©, et il se peut que la direction dĂ©bloque des fonds pour une solution payante, ou qu'on opte pour une autre voie, en comprenant que nous utilisons uniquement des ressources, et que la sauvegarde doit se faire au niveau des applications en ajoutant un nombre croissant de nouveaux nĆuds et de machines virtuelles. Oui, ici, je parle de l'utilisation du cloud uniquement pour le lancement de clusters d'applications, tandis que les bases de donnĂ©es doivent ĂȘtre lancĂ©es sur une autre plateforme ou il faudrait adopter une solution prĂȘte Ă l'emploi de fournisseur, si cela est possible.
4. Facilité d'utilisation
Dans ce point, je vais dĂ©crire les problĂšmes auxquels j'ai Ă©tĂ© confrontĂ©. Par exemple, pour les images, comme nous le savons, il y a persistent : lors du montage de cette image Ă une VM, toutes les donnĂ©es sont enregistrĂ©es dans cette image. Et si c'est non-persistent, alors l'image est copiĂ©e sur le stockage et les donnĂ©es sont Ă©crites dans ce qui a Ă©tĂ© copiĂ© de l'image source. C'est ainsi que fonctionnent les modĂšles de prĂ©paration. Je me suis souvent créé des problĂšmes en oubliant de spĂ©cifier persistent, et les 200 Go de l'image Ă©taient copiĂ©s. Le problĂšme est qu'il est certainement impossible d'annuler cette procĂ©dure, il faut aller sur le nĆud et arrĂȘter le processus actuel « cp ».
Un des inconvénients majeurs est qu'on ne peut pas annuler les actions simplement en utilisant l'interface graphique. En fait, vous les allez annuler, et vous verrez que rien ne se passe, et vous recommencerez. Vous annulez, et en réalité, il y aura déjà deux processus cp qui copient l'image.
Et lĂ vient la comprĂ©hension, pourquoi OpenNebula numĂ©rote chaque nouvelle instance avec un nouvel ID. Par exemple, dans Proxmox, vous crĂ©ez une VM avec l'ID 101, vous la supprimez, puis vous la recrĂ©ez et elle obtient l'ID 101. Dans OpenNebula, cela ne se produira pas, chaque nouvelle instance sera créée avec un nouvel ID, et cela a sa propre logique â par exemple, pour nettoyer les anciennes donnĂ©es ou les installations ratĂ©es.
Il en va de mĂȘme pour le stockage, cette plateforme est principalement axĂ©e sur le stockage centralisĂ©. Il existe des addons pour l'utilisation de stockage local, mais ce n'est pas de cela dont il s'agit ici. Je pense qu'Ă l'avenir, quelqu'un Ă©crira un article sur la façon dont il a rĂ©ussi Ă utiliser le stockage local sur les nĆuds et Ă l'utiliser avec succĂšs en production.
5. Simplicité maximale
Bien sûr, plus vous avancez, moins vous trouvez de personnes qui vous comprendront.
Dans le cadre de mon environnement â 3 nĆuds avec un stockage NFS â tout fonctionne bien. Mais si nous effectuons des expĂ©riences de coupure d'Ă©nergie, par exemple lors du lancement d'un instantanĂ© et d'une coupure d'alimentation du nĆud, nous conservons les paramĂštres dans la base de donnĂ©es, indiquant qu'il existe un instantanĂ©, alors qu'en rĂ©alitĂ©, il n'existe pas (nous comprenons tous que l'action a Ă©tĂ© initialement enregistrĂ©e dans la base de donnĂ©es SQL, mais l'opĂ©ration n'a pas Ă©tĂ© rĂ©ussie). En revanche, lors de la crĂ©ation d'un instantanĂ©, un fichier distinct est gĂ©nĂ©rĂ© avec un « parent », donc en cas de problĂšme, mĂȘme si l'interface graphique ne fonctionne pas, nous pouvons rĂ©cupĂ©rer le fichier qcow2 et restaurer sĂ©parĂ©ment.
Concernant les rĂ©seaux, malheureusement, ce n'est pas si simple. Enfin, c'est tout de mĂȘme plus simple qu'avec OpenStack, j'ai utilisĂ© uniquement VLAN (802.1Q) â cela fonctionne plutĂŽt bien, mais si vous faites des modifications dans les paramĂštres du template rĂ©seau, ces paramĂštres ne s'appliqueront pas aux machines dĂ©jĂ fonctionnelles, c'est-Ă -dire qu'il faut supprimer et rĂ©ajouter la carte rĂ©seau pour appliquer les nouveaux paramĂštres.
Si nous voulons comparer avec OpenStack, on peut dire qu'OpenNebula n'a pas de dĂ©finition claire des technologies Ă utiliser pour le stockage des donnĂ©es, la gestion du rĂ©seau et des ressources â chaque administrateur dĂ©cide lui-mĂȘme de la maniĂšre qui lui convient le mieux.
6. Plugins et installations supplémentaires
En effet, comme nous le savons, la plateforme cloud peut gérer non seulement KVM, mais aussi VMware ESXi. Malheureusement, je n'avais pas de pool avec VCenter, si quelqu'un a essayé, faites-le savoir.
Il a été annoncé dans le support d'autres fournisseurs de cloud
AWS, AZURE.
J'ai Ă©galement essayĂ© de connecter VMware Cloud de Selectel, mais cela n'a pas fonctionnĂ© â en rĂ©sumĂ©, j'ai abandonnĂ© car il y a trop de facteurs, et il n'est pas utile d'Ă©crire au support technique de l'hĂ©bergeur.
De plus, dans la nouvelle version, il y a Firecracker â il s'agit de lancer des microVM, un type de wrapper KVM sur Docker, ce qui offre encore plus de polyvalence, de sĂ©curitĂ© et d'augmentation des performances car il n'est pas nĂ©cessaire de gaspiller des ressources pour Ă©muler le matĂ©riel. Je ne vois que des avantages par rapport Ă Docker dans le sens oĂč cela ne consomme pas de processus supplĂ©mentaires et qu'il n'y a pas de sockets occupĂ©s lors de l'utilisation de cette Ă©mulation, donc cela peut tout Ă fait ĂȘtre utilisĂ© comme Ă©quilibreur de charge (mais cela mĂ©rite probablement un article sĂ©parĂ©, car je n'ai pas encore rĂ©alisĂ© tous les tests pleinement).
7. Expérience positive d'utilisation et débogage des erreurs
Je voulais partager mes observations sur le fonctionnement, j'ai dĂ©crit une partie ci-dessus, mais je souhaite en Ă©crire davantage. En rĂ©alitĂ©, je ne suis probablement pas le seul Ă penser au dĂ©part que ce n'est pas le bon systĂšme et que tout est bricolĂ© ici â comment cela fonctionne-t-il vraiment ? Mais ensuite, on arrive Ă comprendre que tout cela a du sens. Bien sĂ»r, il est impossible de plaire Ă tout le monde et certains aspects nĂ©cessitent des ajustements.
Par exemple, une opĂ©ration simple de copie d'image de disque d'un datastore Ă un autre. Dans mon cas, il y a 2 nĆuds avec NFS, j'envoie l'image â la copie se fait via le frontend OpenNebula, alors que nous avons tous l'habitude de copier les donnĂ©es directement entre les hĂŽtes â dans VMware ou Hyper-V, c'est exactement cela, mais ici c'est diffĂ©rent. Ici, la dĂ©marche et l'idĂ©ologie sont autres, et dans la version 5.12, le bouton « migrer vers le datastore » a Ă©tĂ© supprimĂ© â seule la machine elle-mĂȘme est dĂ©placĂ©e, mais pas le stockage, car un stockage centralisĂ© est supposĂ©.
Ensuite, une erreur fréquente avec différentes raisons « Erreur lors du déploiement de la machine virtuelle : Impossible de créer un domaine depuis /var/lib/one//datastores/103/10/deployment.5 » Ci-dessous, il y aura un top, il faut regarder.
- Les autorisations sur l'image pour l'utilisateur oneadmin;
- Les autorisations pour l'utilisateur oneadmin pour démarrer libvirtd;
- Le datastore est-il montĂ© correctement ? Allez vĂ©rifier le chemin sur le nĆud lui-mĂȘme, il est possible que quelque chose ait Ă©tĂ© dĂ©connectĂ© ;
- RĂ©seau mal configurĂ©, en effet sur le frontend les paramĂštres rĂ©seau indiquent que le br0 est comme interface principale pour le VLAN, alors que sur le nĆud il est indiquĂ© â bridge0 â il faut que ce soit identique.
Le datastore systĂšme stocke les mĂ©tadonnĂ©es de votre VM, si vous lancez une VM avec une image persistante, il est nĂ©cessaire que la VM ait accĂšs Ă la configuration initialement créée sur le stockage oĂč vous avez créé la VM â c'est trĂšs important. Donc, lors du transfert de la VM vers un autre datastore, tout doit ĂȘtre vĂ©rifiĂ© Ă nouveau.
8. Documentation, communauté. Développement futur
Et d'autres aspects, une bonne documentation, une communauté et surtout que le projet continue à vivre.
Dans l'ensemble, tout est plutĂŽt bien documentĂ© et mĂȘme selon la source officielle, il ne sera pas difficile de l'installer et de trouver des rĂ©ponses aux questions.
CommunautĂ© active. Publie de nombreuses solutions prĂȘtes Ă l'emploi que vous pouvez utiliser dans vos installations.
Actuellement, avec la version 5.12, certaines politiques dans l'entreprise ont changé. Il sera intéressant de voir comment le projet va évoluer. Au début, j'ai spécifiquement mentionné certains fournisseurs qui utilisent leurs propres solutions et ce que propose l'industrie. Bien sûr, il n'y a pas de réponse claire à ce que vous devriez utiliser. Mais pour les petites organisations, le maintien de leur propre petit cloud privé peut s'avérer moins coûteux que cela ne paraßt. L'essentiel est de savoir exactement ce dont vous avez besoin.
En fin de compte, peu importe ce que vous choisissez comme systĂšme cloud, il ne faut pas s'en tenir Ă un seul produit. Si vous avez le temps, il vaut la peine de se pencher sur d'autres solutions plus ouvertes.
Il y a un bon petit chat ils aident activement et ne vous envoient pas chercher une solution sur Google. Rejoignez-nous.
Source : habr.com
