<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XenServer on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/xenserver/</link><description>Recent content in XenServer on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Mon, 10 Oct 2022 06:00:00 +0200</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/xenserver/index.xml" rel="self" type="application/rss+xml"/><item><title>Premiers pas avec XCP NG</title><link>https://blog.zwindler.fr/2022/07/24/premiers-pas-xcp-ng/</link><pubDate>Mon, 10 Oct 2022 06:00:00 +0200</pubDate><guid>https://blog.zwindler.fr/2022/07/24/premiers-pas-xcp-ng/</guid><description>&lt;img src="https://blog.zwindler.fr/2022/07/pve-to-xcpng.webp" alt="Featured image of post Premiers pas avec XCP NG" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Si vous suivez ce blog, vous savez peut-être qu&amp;rsquo;après des années de Proxmox VE, j&amp;rsquo;ai commencé à regarder pour voir ce qui se faisait d&amp;rsquo;autre sur le marché des hyperviseurs open source.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai rencontré les équipes de &lt;a class="link" href="https://vates.fr/" target="_blank" rel="noopener"
&gt;Vates&lt;/a&gt; et ils m&amp;rsquo;ont donné l&amp;rsquo;envie de tester le couple XCP-NG / Xen Orchestra. Ca et aussi le fait que Cécile et Nidouille en ont dit beaucoup de bien.&lt;/p&gt;
&lt;p&gt;En particulier, &lt;a class="link" href="https://github.com/Nidouille/benchmarks" target="_blank" rel="noopener"
&gt;Nidouille a fait plusieurs séries de benchs&lt;/a&gt; que je vous conseille et qui montreny de très belles perfs de XCP-ng.&lt;/p&gt;
&lt;p&gt;Vous pouvez retrouver les deux articles que j&amp;rsquo;avais écrits à ce sujet :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2022/07/24/migrer-une-vm-de-proxmoxve-vers-xcp-ng/" target="_blank" rel="noopener"
&gt;Migrer une VM de Proxmox VE vers XCP NG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2022/08/08/migrer-une-vm-de-proxmoxve-vers-xcp-ng/" target="_blank" rel="noopener"
&gt;Mieux migrer ses VM de Proxmox VE vers XCP NG (part 2)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans cet article, je vais vraiment me limiter aux tout premiers pas. On ira plus loin dans un article ultérieur, notamment pour passer outre les quelques limitations qu&amp;rsquo;on va rencontrer.&lt;/p&gt;
&lt;h2 id="cest-quoi-xcp-ng--xen-orchestra-"&gt;C&amp;rsquo;est quoi XCP-NG / Xen Orchestra ?
&lt;/h2&gt;&lt;p&gt;XCP-NG est une distribution clé en main de virtualisation &lt;a class="link" href="https://github.com/xcp-ng/xcp" target="_blank" rel="noopener"
&gt;open source&lt;/a&gt;, basée sur XenServer (lui-même basé sur Xen). Historiquement Xen était surtout connu en tant que paravirtualiseur (un Dom0 qui partage le même kernel avec les DomU) mais depuis bien longtemps, Xen a fait un gros virage et fourni de la virtualisation complète comme les autres.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;XCP-ng is a virtualization platform based on Xen Source and Citrix® Hypervisor (formerly XenServer). XCP-ng stands for Xen Cloud Platform - New Generation and is a tribute to the old Open Source project XCP, which was abandoned when XenServer was open-sourced in 2013.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Xen Orchestra est une webUI &lt;a class="link" href="https://github.com/vatesfr/xen-orchestra" target="_blank" rel="noopener"
&gt;open source&lt;/a&gt;, permettant d&amp;rsquo;ajouter des fonctionnalités supplémentaires au-dessus de clusters XenServer et/ou XCP-NG, telles que la gestion de flottes de serveurs, les statistiques, la sauvegarde /restauration de machines&amp;hellip;&lt;/p&gt;
&lt;p&gt;Si je voulais donner une comparaison simple avec l&amp;rsquo;écosystème VMware, je dirais que XCP-ng est l&amp;rsquo;ESXi et que Xen Orchestra est le vCenter.&lt;/p&gt;
&lt;h2 id="choix-du-lab"&gt;Choix du lab
&lt;/h2&gt;&lt;p&gt;A la base, je voulais installer XCP-ng sur des machines peu chères que j&amp;rsquo;aurais pu louer un mois ou deux. Cependant, contrairement à Proxmox VE qu&amp;rsquo;il est possible d&amp;rsquo;installer au-dessus d&amp;rsquo;un Debian 11, il n&amp;rsquo;est pas simple d&amp;rsquo;installer l&amp;rsquo;hyperviseur d&amp;rsquo;XCP-ng au-dessus d&amp;rsquo;une machine existante.&lt;/p&gt;
&lt;p&gt;De plus, peu de providers de machines baremetal disposent de templates pour XCP-ng à l&amp;rsquo;heure actuelle (à priori Ikoula). Rien chez OVH, Scaleway, oneProvider&amp;hellip;&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai donc changé mon fusil d&amp;rsquo;épaule et investi pour mon lab dans deux petits Dell micro d&amp;rsquo;occasion, un 7040 (merci Bosco) et un 3050.&lt;/p&gt;
&lt;p&gt;Ce sont deux machines très compactes, qui ne consomment rien (~10w chaque) et qui sont quand même suffisamment puissantes pour pouvoir tester des trucs (i5-6500T + 8 Go de DDR4, extensible).&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;envisage d&amp;rsquo;ailleurs de me séparer &lt;a class="link" href="https://blog.zwindler.fr/2017/04/04/installation-dun-serveur-compact-a-la-maison/" target="_blank" rel="noopener"
&gt;de mon &amp;ldquo;gros&amp;rdquo; serveur E3-1220v5 et de son imposant node 304 de Fractal design à terme&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="installation-du-lab"&gt;Installation du lab
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;installation est relativement sans surprise. Sur le site de XCP-ng, on a un &lt;a class="link" href="https://mirrors.xcp-ng.org/isos/8.2/xcp-ng-8.2.1.iso?https=1" target="_blank" rel="noopener"
&gt;ISO&lt;/a&gt; et on le copie sur une clé USB&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://mirrors.xcp-ng.org/isos/8.2/xcp-ng-8.2.1.iso?https&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xcp-ng-8.2.1.iso &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/sdX &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8M &lt;span class="nv"&gt;oflag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;direct
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On branche la clé sur le serveur à installer et on boot. Le processus d&amp;rsquo;installation est un processus classique avec une TUI bleue comme vous en avez surement vu des milliers dans votre vie de vieux sysadmins. C&amp;rsquo;est un peu oldschool mais ça fonctionne.&lt;/p&gt;
&lt;p&gt;Note: il est également possible d&amp;rsquo;automatiser l&amp;rsquo;install en PXE/iPXE sur des providers comme Equinix Metal (mais c&amp;rsquo;est hors budget pour moi).&lt;/p&gt;
&lt;p&gt;Une fois l&amp;rsquo;installation terminée, on reboot et on se retrouve avec une interface que j&amp;rsquo;ai là aussi vu des dizaines de fois : le menu de XenServer :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/pve-to-xcpng.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="dans-le-ventre"&gt;Dans le ventre
&lt;/h2&gt;&lt;p&gt;De la bouche des devs de XCP-ng, on ne devrait pas avoir à se connecter sur les hyperviseurs. J&amp;rsquo;ai quand même été voir ce qu&amp;rsquo;ils avaient dans le ventre :-p.&lt;/p&gt;
&lt;p&gt;Une fois connecté, on se rend vite compte qu&amp;rsquo;il s&amp;rsquo;agit d&amp;rsquo;une base RHEL, Centos pour être plus précis. Ca n&amp;rsquo;est pas vraiment une grande surprise, sachant que c&amp;rsquo;est la même base que XenServer que j&amp;rsquo;avais testé il y a 12 ans (&lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=xenserver" target="_blank" rel="noopener"
&gt;j&amp;rsquo;en avais parlé ici&lt;/a&gt;)&amp;hellip;&lt;/p&gt;
&lt;p&gt;Première surprise, l&amp;rsquo;OS basé sur CentOS&amp;hellip; en version 7&amp;hellip; 😬&lt;/p&gt;
&lt;p&gt;Ca commence à dater un peu, la sortie du premier CentOS 7 date de 2014, et la toute dernière version mineure (7.9) est sortie en 2020.&lt;/p&gt;
&lt;p&gt;Surtout quand on connaît les dramas qui ont eu lieu autour de centOS / RHEL, j&amp;rsquo;aurais pas choisi cette OS.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On 8 December 2020, the CentOS Project announced that the distribution would be discontinued at the end of 2021 in order to focus on CentOS Stream. The community&amp;rsquo;s response to this announcement was overwhelmingly negative.
&lt;a class="link" href="https://en.wikipedia.org/wiki/CentOS" target="_blank" rel="noopener"
&gt;https://en.wikipedia.org/wiki/CentOS&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="link" href="https://xcp-ng.org/blog/2020/12/17/centos-and-xcpng-future/" target="_blank" rel="noopener"
&gt;Vates justifie ce choix technique dans ce billet de blog&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nous n&amp;rsquo;utilisons CentOS que pour les paquets &amp;ldquo;user land&amp;rdquo;. Xen et le noyau Linux sont des builds custom avec certains patches. Concernant le drama CentOS nous sommes peu/pas affecté justement pour ces raisons&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Niveau kernel, c&amp;rsquo;est pas fou non plus.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Linux xxx.zwindler.fr 4.19.0+1 &lt;span class="c1"&gt;#1 SMP Thu Jan 13 12:55:45 CET 2022 x86_64 x86_64 x86_64 GNU/Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le 4.19 est le dernier LTS de la branche 4, avec certes un support jusqu&amp;rsquo;en 2024 mais on se prive quand même de pas mal d&amp;rsquo;améliorations de perfs de la branche 5, notamment pour le matoss récent&amp;hellip; Dommage.&lt;/p&gt;
&lt;p&gt;Enfin bon c&amp;rsquo;est toujours mieux que le kernel shippé avec CentOS 7 (3.10, LOL), mais à côté de ça, Proxmox VE 7.2 tourne en Bullseye avec un kernel custom en 5.15.&lt;/p&gt;
&lt;h2 id="xen-orchestra"&gt;Xen Orchestra
&lt;/h2&gt;&lt;p&gt;C&amp;rsquo;est là où ça devient un peu moins naturel. Si vous allez sur le site pour installer Xen Orchestra &lt;a class="link" href="https://xen-orchestra.com/#!/xoa" target="_blank" rel="noopener"
&gt;xen-orchestra.com/#!/xoa&lt;/a&gt; (que je vais abrévier XOA), on va vous demander de rentrer une IP, un login (root) et un mot de passe.&lt;/p&gt;
&lt;p&gt;Eeeeeuh, what?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xo_install.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Heureusement, la petite mention juste en dessous nous explique que tout sera fait en local et qu&amp;rsquo;il n&amp;rsquo;y a rien qui partira chez Vates 😏. En réalité, la page se connecte directement à votre host et déploie une VM appliance contenant Xen Orchestra prêt à l&amp;rsquo;emploi.&lt;/p&gt;
&lt;p&gt;Bon&amp;hellip; j&amp;rsquo;ai vérifié les trames envoyées sans rentrer mon vrai mot de passe et ça a l&amp;rsquo;air safe&amp;hellip; Mais j&amp;rsquo;ai quand même préféré &lt;a class="link" href="https://xen-orchestra.com/docs/xoa.html#alternative-install" target="_blank" rel="noopener"
&gt;déployer la VM XOA via un script ou l&amp;rsquo;import d&amp;rsquo;un XVA 😏&lt;/a&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xoa_script.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Note: 8.8.8.8 en DNS par défaut&amp;hellip; bof bof.&lt;/p&gt;
&lt;p&gt;A l&amp;rsquo;issue de l&amp;rsquo;opération, vous avez donc déployé sur un de vos hosts XCP-ng une appliance XOA qui va vous permettre de piloter votre cluster.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;Note: XOA est une appliance Debian 9 😬😬😬&lt;/del&gt; Après vérification, je ne sais pas pourquoi j&amp;rsquo;avais écris ça dans mes notes. C&amp;rsquo;est du Debian 11 donc RAS.&lt;/p&gt;
&lt;h2 id="premiers-pas-dans-xoa"&gt;Premiers pas dans XOA
&lt;/h2&gt;&lt;p&gt;Voilà à quoi ressemble le menu principal une fois loggué. On arrive sur une page avec la liste de nos VMs :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xoa_home.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Un peu perturbant, par défaut un filtre est appliqué et n&amp;rsquo;affiche QUE les VMs allumées. Personnellement j&amp;rsquo;aurais préféré voir aussi celles qui ne le sont pas et je le désactive tout le temps.&lt;/p&gt;
&lt;p&gt;Niveau UI, le style tranche avec celui de Proxmox VE. Certains reprochent à XOA d&amp;rsquo;avoir un style &amp;ldquo;UI playskool&amp;rdquo; et je comprends un peu où ils veulent en venir&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xoa_ui.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Les tailles des polices sont différentes d&amp;rsquo;un menu à l&amp;rsquo;autre, sans réelle cohérence, les boutons sont colorés, ya des tableaux jamais pareil d&amp;rsquo;un menu à l&amp;rsquo;autre &amp;hellip; C&amp;rsquo;est très déstabilisant de premier abord et donne une impression pas très &amp;ldquo;pro&amp;rdquo;, à l&amp;rsquo;opposé des capacités de l&amp;rsquo;outil.&lt;/p&gt;
&lt;p&gt;Heureusement, une version plus léchée devrait faire son arrivée dans les mois qui viennent (cf &lt;a class="link" href="https://xen-orchestra.com/blog/ux-ui-design-for-xo-and-xolite/" target="_blank" rel="noopener"
&gt;le blog de XOA&lt;/a&gt;). J&amp;rsquo;ai vraiment hâte de voir ce que ça donne car ça fait beaucoup plus sérieux sur les captures.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/XO-Blog---UX-UI-Design-for-XO-and-XOLite.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="version-gratuite-limitée-"&gt;Version gratuite limitée ?
&lt;/h2&gt;&lt;p&gt;Un autre point déstabilisant de Xen Orchestra est que quand on navigue dans les menus, une petite moitié des menus et des fonctionnalités sont réservés à la version payante de l&amp;rsquo;outil. Certains menus ne manquent pas forcément pour un démarrage. Mais d&amp;rsquo;autres, c&amp;rsquo;est carrément problématique.&lt;/p&gt;
&lt;p&gt;Typiquement, l&amp;rsquo;UI pour mettre à jour les serveurs n&amp;rsquo;est pas accessible sans licence. On a un panneau rouge pour nous informer qu&amp;rsquo;un serveur doit être MAJ, mais on ne peut pas le faire&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xcpng_upgrade.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai failli arrêter mon test, la première fois que j&amp;rsquo;ai vu ça&amp;hellip; Un hyperviseur que je ne peux pas mettre à jour via l&amp;rsquo;UI, c&amp;rsquo;est no-go.&lt;/p&gt;
&lt;p&gt;Je trouve ce point hyper frustrant, car en réalité on peut contourner cette limitation, puisque l&amp;rsquo;outil est entièrement open source. C&amp;rsquo;est même volontaire et assumé de la part des devs de XOA/XCP-ng (lien cassé, Nicolas n&amp;rsquo;est plus sur Twitter) : il faut &amp;ldquo;juste&amp;rdquo; le builder soit même.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/10/xoa_limitations.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Sauf qu&amp;rsquo;en attendant, beaucoup d&amp;rsquo;admins qui auront rapidement testé l&amp;rsquo;outil auront eu l&amp;rsquo;impression d&amp;rsquo;un freeware hyper bridé alors que ce n&amp;rsquo;est pas vraiment le cas. Je trouve qu&amp;rsquo;il y a un vrai manque au niveau communication et de clarté de ce côté.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Voilà pour ces premières impressions avec XCP-NG. Je m&amp;rsquo;arrête ici alors que je n&amp;rsquo;ai fait une présentation rapide de mon lab et des premiers menus, car on dépasse déjà les 11000 signes.&lt;/p&gt;
&lt;p&gt;Globalement, l&amp;rsquo;UI/UX a vraiment besoin d&amp;rsquo;être retravaillée et ça tombe bien que Vates soit en train de travailler là-dessus car l&amp;rsquo;impression que donne l&amp;rsquo;outil n&amp;rsquo;est pas en phase avec ses capacités.&lt;/p&gt;
&lt;p&gt;Au-delà de l&amp;rsquo;aspect visuel, les fonctionnalités semblent présentes, mais sont cachées par la mise en avant du support pro. Pour des gens comme moi qui cherchent une solution de lab perso ou de gens qui ne chercheraient pas à comprendre quelles sont les alternatives à la version payante, ça peut être repoussant.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;Dernier point, certains choix techniques me paraissent très bizarres (CentOS 7, Debian 9) et il faudra que j&amp;rsquo;en reparle avec l&amp;rsquo;équipe de Vates&amp;hellip;&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;Dans les prochains articles, je m&amp;rsquo;attaquerai à la partie utilisation (par exemple les sauvegardes ou la réplication, une création de VM puis migration à chaud) et probablement aussi au test de XOA non bridé.&lt;/p&gt;
&lt;p&gt;Dites-moi ce qui vous intéresse en premier, histoire que je mette l&amp;rsquo;accent là-dessus tout de suite&lt;/p&gt;
&lt;p&gt;En attendant, have fun !&lt;/p&gt;
&lt;h2 id="bonus"&gt;Bonus
&lt;/h2&gt;&lt;p&gt;Pour automatiser les mises à jour, en attendant d&amp;rsquo;avoir débridé XOA, j&amp;rsquo;ai ajouté l&amp;rsquo;utilitaire &lt;code&gt;yum-cron&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum -y install yum-cron
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl start yum-cron systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; yum-cron
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /etc/yum/ vim yum-cron.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /var/log/ cat cron &lt;span class="p"&gt;|&lt;/span&gt; grep yum-daily
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="sources"&gt;Sources
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://xcp-ng.org/" target="_blank" rel="noopener"
&gt;Site de XCP-ng&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://xen-orchestra.com" target="_blank" rel="noopener"
&gt;Site de Xen Orchestra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Nidouille/benchmarks" target="_blank" rel="noopener"
&gt;Benchs de Nidouille&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Mieux migrer ses VM de Proxmox VE vers XCP NG (part 2)</title><link>https://blog.zwindler.fr/2022/08/08/migrer-une-vm-de-proxmoxve-vers-xcp-ng/</link><pubDate>Mon, 08 Aug 2022 06:00:00 +0200</pubDate><guid>https://blog.zwindler.fr/2022/08/08/migrer-une-vm-de-proxmoxve-vers-xcp-ng/</guid><description>&lt;img src="https://blog.zwindler.fr/2022/07/pve-to-xcpng.webp" alt="Featured image of post Mieux migrer ses VM de Proxmox VE vers XCP NG (part 2)" /&gt;&lt;h2 id="résumé-des-épisodes-précédents"&gt;Résumé des épisodes précédents
&lt;/h2&gt;&lt;p&gt;Dans l&amp;rsquo;article d&amp;rsquo;il y a 2 semaines (&lt;a class="link" href="https://blog.zwindler.fr/2022/07/24/migrer-une-vm-de-proxmoxve-vers-xcp-ng" &gt;Migrer une VM de Proxmox VE vers XCP NG&lt;/a&gt;), j&amp;rsquo;ai introduit très brièvement de XCP-NG (un OS clé en main pour faire de la virtualisation, sur une base de Xen / XenServer) et déroulé un tuto pour récupérer une VM sur Proxmox VE et l&amp;rsquo;importer dans XCP-NG.&lt;/p&gt;
&lt;p&gt;Pour faire court, les étapes étaient les suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Récupération du disque virtuel sur Proxmox VE&lt;/li&gt;
&lt;li&gt;Transformer le disque virtuel en VHD&lt;/li&gt;
&lt;li&gt;Le transférer sur le serveur XCP-NG&lt;/li&gt;
&lt;li&gt;Créer un disque dans XenOrchestra (l&amp;rsquo;UI de XCP-NG, pour faire simple)&lt;/li&gt;
&lt;li&gt;Importer le contenu du VHD dans le disque vide qu&amp;rsquo;on a créé dans l&amp;rsquo;UI&lt;/li&gt;
&lt;li&gt;Créer une VM dans l&amp;rsquo;UI et lui affecter le disque&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="faire-mieux"&gt;Faire mieux
&lt;/h2&gt;&lt;p&gt;Dans le cadre d&amp;rsquo;un PoC avec une poignée de VMs, ça me parait totalement acceptable comme méthodologie (même si c&amp;rsquo;est un peu fastidieux) mais dans le cadre d&amp;rsquo;une migration, c&amp;rsquo;est difficilement scalable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; Vates (l&amp;rsquo;entreprise qui édite XCP-NG) accompagne ses clients pro dans cette étape. A ma connaissance, ils travaillent également sur de l&amp;rsquo;outillage pour faciliter les transferts, mais Proxmox VE ne sera probablement pas la première &amp;ldquo;plateforme source&amp;rdquo; qui sera supportés par ce genre d&amp;rsquo;outils.&lt;/p&gt;
&lt;p&gt;Dans cet article, je vais donc vous parler d&amp;rsquo;une méthode alternative qui m&amp;rsquo;a été conseillée par les gens de chez Vates pour faciliter cette migration, et plus particulièrement les étapes suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le transférer sur le serveur XCP-NG&lt;/li&gt;
&lt;li&gt;Créer un disque dans XenOrchestra (l&amp;rsquo;UI de XCP-NG, pour faire simple)&lt;/li&gt;
&lt;li&gt;Importer le contenu du VHD dans le disque vide qu&amp;rsquo;on a créé dans l&amp;rsquo;UI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="because-im-api-"&gt;Because I&amp;rsquo;m API 🎶
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Clap along if you feel like that&amp;rsquo;s what you wanna do&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous l&amp;rsquo;avez deviné, on va passer par l&amp;rsquo;API de Xen Orchestra pour se faciliter la tâche. En effet, on va pouvoir rassembler les 3 actions ci dessus en seul appel via cURL !&lt;/p&gt;
&lt;p&gt;Même s&amp;rsquo;il y a un petit prérequis (à faire une fois), ça sera quand même beaucoup plus scalable pour bouger plusieurs VMs.&lt;/p&gt;
&lt;h2 id="you-token-to-me"&gt;You token to me?
&lt;/h2&gt;&lt;p&gt;[EDIT] Depuis la version 5.72 de Xen Orchestra, il est possible de récupérer un token directement dans la Web UI (cf &lt;a class="link" href="https://xen-orchestra.com/blog/xen-orchestra-5-72/#%F0%9F%93%A1-rest-api-token-generation" target="_blank" rel="noopener"
&gt;ce post&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;En lisant &lt;a class="link" href="https://xen-orchestra.com/docs/restapi.html#authentication" target="_blank" rel="noopener"
&gt;la documentation de la REST API (paragraphe authentication)&lt;/a&gt;, on apprend, sans surprise, que la première chose à faire est de récupérer un token permettant d&amp;rsquo;authentifier nos futures requêtes.&lt;/p&gt;
&lt;p&gt;On comprend ensuite que pour faire ça, on va avoir besoin d&amp;rsquo;un tool qui s&amp;rsquo;appelle &lt;a class="link" href="https://xen-orchestra.com/blog/xen-orchestra-from-the-cli/" target="_blank" rel="noopener"
&gt;xo-cli&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si on suit la doc, il &amp;ldquo;suffit&amp;rdquo; d&amp;rsquo;installer ce module via &lt;code&gt;npm&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;npm install xo-cli
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bon&amp;hellip; moi j&amp;rsquo;ai pas envie d&amp;rsquo;installer &lt;code&gt;npm&lt;/code&gt; sur mon poste donc j&amp;rsquo;ai fais une image Docker cracra pour ça ;-).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Dockerfile" data-lang="Dockerfile"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;node&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;/app&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;RUN&lt;/span&gt; npm install --global xo-cli&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ENTRYPOINT&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;xo-cli&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le &lt;a class="link" href="https://github.com/zwindler/docker-xo-cli" target="_blank" rel="noopener"
&gt;Dockerfile est disponible ici&lt;/a&gt; et l&amp;rsquo;&lt;a class="link" href="https://hub.docker.com/repository/docker/zwindler/xo-cli" target="_blank" rel="noopener"
&gt;image docker buildée est disponible là&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Depuis son poste (en remplaçant évidemment @IP.Xen.Orchestra par l&amp;rsquo;IP de votre serveur XenOrchestra, &lt;a class="link" href="mailto:admin@admin.net" &gt;admin@admin.net&lt;/a&gt; par votre login)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;docker run -it xo-cli --createToken --allowUnauthorized @IP.Xen.Orchestra admin@admin.net Password: ************
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Successfully logged with admin@admin.net
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Authentication token created xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si tout s&amp;rsquo;est bien passé, on récupère un token qu&amp;rsquo;on garde précieusement pour nos futures requêtes.&lt;/p&gt;
&lt;h2 id="champion-de-curling"&gt;champion de cURLing
&lt;/h2&gt;&lt;p&gt;De retour sur &lt;a class="link" href="https://xen-orchestra.com/docs/restapi.html#vdi-import" target="_blank" rel="noopener"
&gt;la documentation de l&amp;rsquo;API REST (paragraphe VDI import)&lt;/a&gt;, on trouve tout ce qu&amp;rsquo;il nous faut pour &amp;ldquo;crafter&amp;rdquo; notre requête cURL.&lt;/p&gt;
&lt;p&gt;A minima, on va avoir besoin de UUID de notre storage. Pour rappel, vous pouvez trouver ça dans l&amp;rsquo;UI.&lt;/p&gt;
&lt;p&gt;Si vous avez la flemme, vous pouvez aussi utilisez l&amp;rsquo;API REST pour récupérer les IDs des storages avec la requête suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;curl \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; -k -b authenticationToken=xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxx \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; https://@IP.Xen.Orchestra/rest/v0/srs\?fields=name_label
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; &amp;#34;name_label&amp;#34;: &amp;#34;Local storage&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; &amp;#34;href&amp;#34;: &amp;#34;/rest/v0/srs/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Depuis votre machine Proxmox VE (ou tout autre machine ayant directement accès au disque à exporter/importer), vous pouvez donc maintenant directement lancer la commande suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;~# curl -X POST -k -b authenticationToken=xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -T toto.vhd &amp;#39;https://@IP.Xen.Orchestra/rest/v0/srs/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/vdis?name_label=testexport.vhd&amp;#39; | cat
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A l&amp;rsquo;issue de l&amp;rsquo;opération, vous allez récupérer l&amp;rsquo;UUID du disque sur XCP-NG, déjà disponible pour la construction de la VM côté Xen Orchestra.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Avec cette méthode, une fois qu&amp;rsquo;on a un token, l&amp;rsquo;opération d&amp;rsquo;export/import Proxmox VE =&amp;gt; XCP-NG devient donc suivante :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Récupération du disque virtuel sur Proxmox VE (en gros retrouver le disque)&lt;/li&gt;
&lt;li&gt;Transformer le disque virtuel en VHD&lt;/li&gt;
&lt;li&gt;Importer et créer le disque dans XCP-NG via un cURL&lt;/li&gt;
&lt;li&gt;Créer une VM dans l&amp;rsquo;UI et lui affecter le disque&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C&amp;rsquo;est déjà beaucoup plus sympa si vous avez plusieurs VMs à bouger. L&amp;rsquo;axe d&amp;rsquo;amélioration suivant est, à mon avis, de créer directement la VM avec le bon disque.&lt;/p&gt;
&lt;p&gt;A date, ce n&amp;rsquo;est pas possible avec l&amp;rsquo;API REST (vu avec Vates), mais ça serait possible avec l&amp;rsquo;API JSON-RPC (sur laquelle se base l&amp;rsquo;UI de XenOrchestra et xo-cli). Ca sera donc mes prochaines investigations ;).&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;ici là, have fun :)&lt;/p&gt;
&lt;h2 id="bonus---importer-des-raw-directement"&gt;Bonus - Importer des RAW directement
&lt;/h2&gt;&lt;p&gt;Depuis la toute dernière version de Xen Orchestra, il est aussi possible d&amp;rsquo;importer directement des disques au format RAW (en rajouter le paramètre &amp;ldquo;raw&amp;rdquo; dans l&amp;rsquo;appel à l&amp;rsquo;API).&lt;/p&gt;
&lt;p&gt;Dans mon cas, c&amp;rsquo;est mon format de disques puisque tout est stocké en RAW sur mon storage ZFS Proxmox VE, donc en théorie on peut sauter une étape de plus, à savoir :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transformer le disque virtuel en VHD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avec la requête suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;curl -X POST -k -b authenticationToken=xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -T toto.img &amp;#39;https://@IP.Xen.Orchestra/rest/v0/srs/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/vdis?raw&amp;amp;name_label=testexport.raw&amp;#39; | cat
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Attention aux limitations, cependant :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Après le soucis du raw c&amp;rsquo;est que tu vas pas pouvoir profiter du copy on write, donc exit les snapshots (en l&amp;rsquo;état actuelle de la stack de storage, smapiv1)&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Migrer une VM de Proxmox VE vers XCP NG</title><link>https://blog.zwindler.fr/2022/07/24/migrer-une-vm-de-proxmoxve-vers-xcp-ng/</link><pubDate>Sun, 24 Jul 2022 12:00:00 +0000</pubDate><guid>https://blog.zwindler.fr/2022/07/24/migrer-une-vm-de-proxmoxve-vers-xcp-ng/</guid><description>&lt;img src="https://blog.zwindler.fr/2022/07/pve-to-xcpng.webp" alt="Featured image of post Migrer une VM de Proxmox VE vers XCP NG" /&gt;&lt;h2 id="retour-de-la-virtualisation"&gt;Retour de la virtualisation
&lt;/h2&gt;&lt;p&gt;Ca fait quelques mois que je n&amp;rsquo;ai pas parlé de virtualisation donc forcément, ça me démange un peu ;).&lt;/p&gt;
&lt;p&gt;Si vous suivez ce blog depuis quelque temps, vous savez &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=proxmox" target="_blank" rel="noopener"
&gt;pourtant que j&amp;rsquo;ai pas mal roulé ma bosse avec Proxmox VE&lt;/a&gt;, un OS clé en main de virtualisation KVM (mais aussi de containerisation LXC, on en parle tellement peu). Sans aller jusqu&amp;rsquo;à dire que j&amp;rsquo;en ai fait le tour (a-t-on jamais fait le tour d&amp;rsquo;une techno ?), je commence à manquer de choses à tester avec mon lab perso.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;an dernier, j&amp;rsquo;ai discuté avec les équipes de &lt;a class="link" href="https://vates.fr/" target="_blank" rel="noopener"
&gt;Vates SAS&lt;/a&gt; à &lt;a class="link" href="https://blog.zwindler.fr/2021/11/10/open-source-experience-2021-recap/" &gt;OSXP 2021&lt;/a&gt;, une boite qui publie une autre distribution open source dédiée à la virtualisation : &lt;a class="link" href="https://xcp-ng.org/" target="_blank" rel="noopener"
&gt;XCP-NG&lt;/a&gt; (mais basée sur XenServer).&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;en avais déjà entendu parler sur Twitter (coucou Cécile) donc j&amp;rsquo;étais un peu curieux. Mais j&amp;rsquo;étais aussi un peu sceptique, &lt;a class="link" href="https://blog.zwindler.fr/2011/02/15/creation-dun-template-centos-5-5-pour-xenserver-5-6/" &gt;ma dernière expérience de XenServer datant de 2011&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/ataxya_xcp-ng.avif"
loading="lazy"
alt="Cécile (Ataxya Network) tweetant en 2021 qu’elle testait XCP NG"
&gt;&lt;/p&gt;
&lt;p&gt;Dans cet article, je ne vais pas rentrer dans une comparaison des fonctionnalités ni des avantages et inconvénients de XCP-NG par rapport à Proxmox VE. Je n&amp;rsquo;ai pas encore assez testé pour me faire une idée pertinente (ça viendra).&lt;/p&gt;
&lt;p&gt;En revanche, je peux vous donner un premier avant goût de la solution via un petit tuto pour vous aider à migrer des VMs de l&amp;rsquo;un à l&amp;rsquo;autre, si jamais l&amp;rsquo;envie vous prend de tester.&lt;/p&gt;
&lt;h2 id="prérequis"&gt;Prérequis
&lt;/h2&gt;&lt;p&gt;Dans ce tutoriel, je pars du principe que vous avez :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;d&amp;rsquo;un côté, une machine virtuelle QEMU, hébergée par un Proxmox VE, à copier/migrer&lt;/li&gt;
&lt;li&gt;de l&amp;rsquo;autre, un serveur sous XCP-NG, dans le même LAN, gérée par &lt;a class="link" href="https://xen-orchestra.com/?gclid=Cj0KCQjwuO6WBhDLARIsAIdeyDJ5Bd1q445B3W7jxWuy_culllyw-WqnU5yu7BhAD9KgOeXoykv_o4gaArRqEALw_wcB#!/xo-home" target="_blank" rel="noopener"
&gt;XenOrchestra&lt;/a&gt; (l&amp;rsquo;équivalent du &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=vcenter" target="_blank" rel="noopener"
&gt;vCenter&lt;/a&gt; de VMware, pour ceux à qui ça parle)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: sauf erreur de ma part, on a pas de solution clé en main pour migrer un container LXC vers XCP-NG (même si XenServer gère les containers Xen, aussi appelé virtualisation PV). Trouver comment migrer ces workloads LXC sera peut-être l&amp;rsquo;objet d&amp;rsquo;un prochain article.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/lxc-to-xcpng.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Pour le reste du tutoriel, on va grosso modo suivre &lt;a class="link" href="https://xcp-ng.org/docs/migratetoxcpng.html#from-kvm-libvirt" target="_blank" rel="noopener"
&gt;la documentation officielle disponible ici&lt;/a&gt;, mais avec quelques modifs et surtout un peu plus de détails.&lt;/p&gt;
&lt;h2 id="option-zfs"&gt;Option ZFS
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; J&amp;rsquo;installe mes serveurs Proxmox VE avec ZFS comme stockage. Ca a plein d&amp;rsquo;avantages, notamment celui de me donner la possibilité de faire, à peu de frais, un PRA avec une réplication asynchrone des machines virtuelles de mon cluster. Cela induit par contre une petite difficulté complémentaire (vous allez voir c&amp;rsquo;est léger). &lt;strong&gt;Vous pouvez sauter cette étape si vous n&amp;rsquo;utilisez pas ZFS.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pour rappel (je ferai aussi un article dédié à ça), avec ZFS j&amp;rsquo;ai 2 types de disques.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; zfs list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;NAME USED AVAIL REFER MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool 213G 15.9G 112K /rpool
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/ROOT 6.32G 15.9G 96K /rpool/ROOT
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/ROOT/pve-1 6.32G 15.9G 6.32G /
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/data 2.84G 15.9G 2.84G /rpool/data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/subvol-201-disk-0 3.43G 4.57G 3.43G /rpool/subvol-201-disk-0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/subvol-301-disk-0 604M 15.9G 604M /rpool/subvol-301-disk-0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/vm-100-disk-0 3.79G 15.9G 3.79G -
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/vm-213-disk-0 184G 148G 38.2G -
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Des disques de type &amp;ldquo;Filesystem&amp;rdquo; qui sont directement montés à la racine de mon espace de stockage ZFS (chez moi /rpool, mais on a aussi &lt;code&gt;/tank&lt;/code&gt; comme convention chez les aficionados de ZFS) pour les containers LXC.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; zfs get &lt;span class="nb"&gt;type&lt;/span&gt; rpool/subvol-301-disk-0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;NAME PROPERTY VALUE SOURCE
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/subvol-301-disk-0 type filesystem -
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; zfs get mountpoint rpool/subvol-301-disk-0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;NAME PROPERTY VALUE SOURCE
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;rpool/subvol-301-disk-0 mountpoint /rpool/subvol-301-disk-0 default
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour les VMs KVM/QEMU en revanche, je ne peux pas directement trouver un fichier toto.raw ou toto.qcow2 dans l&amp;rsquo;arborescence &lt;code&gt;/rpool&lt;/code&gt;. Côté ZFS, ces volumes sont des volumes de type &amp;ldquo;volume&amp;rdquo; (lol).&lt;/p&gt;
&lt;p&gt;Mais c&amp;rsquo;est un détail, car c&amp;rsquo;est presque encore plus facile puisqu&amp;rsquo;on peut aller directement dans &lt;code&gt;/dev/zvol/rpool&lt;/code&gt; et les retrouver en tant que &amp;ldquo;special file&amp;rdquo; dans /dev.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;ls -l /dev/zvol/rpool/vm-100*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;lrwxrwxrwx 1 root root 10 Jul 23 02:00 /dev/zvol/rpool/vm-100-disk-0 -&amp;gt; ../../zd16
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;lrwxrwxrwx 1 root root 12 Jul 23 02:00 /dev/zvol/rpool/vm-100-disk-0-part1 -&amp;gt; ../../zd16p1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;lrwxrwxrwx 1 root root 12 Jul 23 02:00 /dev/zvol/rpool/vm-100-disk-0-part2 -&amp;gt; ../../zd16p2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;lrwxrwxrwx 1 root root 12 Jul 23 02:00 /dev/zvol/rpool/vm-100-disk-0-part5 -&amp;gt; ../../zd16p5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dans l&amp;rsquo;étape suivante, &lt;code&gt;/dev/zvol/rpool/vm-100-disk-0&lt;/code&gt; remplacera donc notre image disque &amp;ldquo;input&amp;rdquo; (&lt;em&gt;toto.img&lt;/em&gt;).&lt;/p&gt;
&lt;h2 id="générer-un-vhd"&gt;Générer un VHD
&lt;/h2&gt;&lt;p&gt;Souvent sous Proxmox, vous allez avoir des disques au format RAW ou au format QCOW2.&lt;/p&gt;
&lt;p&gt;Dans les deux cas, XCP-NG n&amp;rsquo;accepte pas ces formats. Heureusement, l&amp;rsquo;utilitaire &lt;code&gt;qemu-img&lt;/code&gt;, inclus dans notre distribution de Proxmox VE sait faire les conversions.&lt;/p&gt;
&lt;p&gt;Dans le cas d&amp;rsquo;un disque RAW :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;qemu-img convert -f raw toto.img -O vpc toto.vhd
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dans le cas d&amp;rsquo;un disque QCOW2 :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;qemu-img convert -f qcow2 toto.qcow2 -O vpc toto.vhd
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="avant-dimporter-le-vhd-dans-xcp-ng"&gt;Avant d&amp;rsquo;importer le VHD dans XCP-NG
&lt;/h2&gt;&lt;p&gt;La partie un peu moins &amp;ldquo;fun&amp;rdquo; de la procédure est qu&amp;rsquo;on doit faire une partie des actions en GUI (si on suit la doc, mais je &lt;em&gt;teaserai&lt;/em&gt; qu&amp;rsquo;on peut faire mieux en fin d&amp;rsquo;article).&lt;/p&gt;
&lt;p&gt;La première chose qu&amp;rsquo;on va devoir faire, c&amp;rsquo;est aller dans la WebUI Xen Orchestra pour retrouver notre espace de stockage et créer manuellement un disque.&lt;/p&gt;
&lt;p&gt;Il faut aller retrouver la liste de nos espaces de stockages (le plus simple, c&amp;rsquo;est de passer par &amp;ldquo;home&amp;rdquo;), puis, dans cet espace, créer un nouveau disque. Prenez garde à le créer de la bonne taille, en faisant attention à la différence Go/Gio. La documentation officielle conseille d&amp;rsquo;ajouter 1 Go de marge pour éviter ce genre de problématiques, mais je n&amp;rsquo;en ai pas eu besoin lors de mes tests.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/xo_storage.avif"
loading="lazy"
&gt;
&lt;img src="https://blog.zwindler.fr/2022/07/xoa_create_disk.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Note: chaque disque et chaque &amp;ldquo;datastore&amp;rdquo; a son propre UUID. Ici, j&amp;rsquo;ai souligné en rouge celui du datastore &amp;ldquo;Local&amp;rdquo;, il nous servira plus tard (quand on passe la souris dessus, XOA nous propose de le copier dans le presse-papier).&lt;/p&gt;
&lt;p&gt;Une fois le disque créé à la bonne taille, on récupère son UUID aussi.&lt;/p&gt;
&lt;h2 id="vhd-vers-xcp-ng"&gt;VHD vers XCP-NG
&lt;/h2&gt;&lt;p&gt;Maintenant qu&amp;rsquo;on a d&amp;rsquo;un côté un VHD valide, et de l&amp;rsquo;autre un disque dur virtuel vide prêt à accueillir les données, on peut se lancer !&lt;/p&gt;
&lt;p&gt;On envoie le VHD sur le serveur XCP-NG (via &lt;code&gt;scp&lt;/code&gt; ou un montage NFS, par exemple) et on se connecte dessus en SSH.&lt;/p&gt;
&lt;p&gt;Si on est pas confiant, on peut tester que le VHD est valide sur XCP-NG grâce à l&amp;rsquo;utilitaire suivant :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; vhd-util check -n /nfs/toto.vhd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; /nfs/toto.vhd is valid
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ensuite, on utilise le binaire &lt;code&gt;xe&lt;/code&gt; qui permet d&amp;rsquo;interagir en CLI avec XCP-NG pour lancer l&amp;rsquo;import :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; xe vdi-import &lt;span class="nv"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/nfs/toto.vhd &lt;span class="nv"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;vhd --progress &lt;span class="nv"&gt;uuid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; [|] ######################################################&amp;gt; (100% ETA 00:00:00)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On aura évidemment remplacé le paramètre &lt;em&gt;uuid=aaaa&lt;/em&gt; par l&amp;rsquo;UUID du disque virtuel, que je vous ai demandé de récupérer plus tôt !&lt;/p&gt;
&lt;h2 id="créer-la-vm"&gt;Créer la VM
&lt;/h2&gt;&lt;p&gt;Normalement, à l&amp;rsquo;issue de l&amp;rsquo;opération, on a un disque tout beau tout propre. La dernière étape est de créer une VM et à lui attacher ce disque.&lt;/p&gt;
&lt;p&gt;Là encore, on peut repartir de &amp;ldquo;Home&amp;rdquo; puis aller dans le menu VM.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/xoa_create_vm1.avif"
loading="lazy"
&gt;
&lt;img src="https://blog.zwindler.fr/2022/07/xoa_create_vm2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Note: pour passer le menu de création de VM, il faut impérativement choisir soit ISO/DVD ou PXE dans &lt;strong&gt;Install settings&lt;/strong&gt;, sinon CREATE est grisé. J&amp;rsquo;ai également supprimé le disque par défaut proposé par le wizard (puisqu&amp;rsquo;on va lui en attacher un) et dans &lt;strong&gt;Advanced&lt;/strong&gt;, j&amp;rsquo;ai décoché &lt;strong&gt;Boot VM after creation&lt;/strong&gt; puisque de toute façon je dois lui attacher le disque avant de booter.&lt;/p&gt;
&lt;p&gt;Une fois créé, on clique sur la VM pour lui attacher le disque qu&amp;rsquo;on a importé.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2022/07/xoa_attach_disk.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;On peut maintenant booter la VM !&lt;/p&gt;
&lt;p&gt;Lors du redémarrage, la seule chose que j&amp;rsquo;ai eu à changer était la configuration réseau, un peu différente entre mon cluster Proxmox VE et mon lab XCP-NG, ainsi que le nom d&amp;rsquo;interface qui était différent suite au passage à Xen (ens18 =&amp;gt; eth0).&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai également ajouté le &amp;ldquo;Management agent&amp;rdquo; pour bénéficier d&amp;rsquo;infos dans l&amp;rsquo;UI (et probablement d&amp;rsquo;autres trucs chouettes que je n&amp;rsquo;ai pas encore exploré).&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Voilà pour ces premiers pas avec XCP-NG. Comme vous avez pu le constater, l&amp;rsquo;opération nécessite plusieurs étapes, dont certaines peuvent être améliorées (notamment l&amp;rsquo;automatisation de certaines tâches côté XCP-NG grâce à l&amp;rsquo;API, on en reparlera, car j&amp;rsquo;ai déjà quelques résultats).&lt;/p&gt;
&lt;p&gt;Cependant, ça permet déjà de se faire une première impression et de se familiariser avec les menus.&lt;/p&gt;
&lt;p&gt;Dans les semaines qui viennent, je vais continuer de jouer avec, histoire de me faire une opinion un peu plus construite de XCP-NG (notamment par rapport à ce que je fais avec Proxmox). S&amp;rsquo;il y a des points que vous voulez que je creuse en particulier, n&amp;rsquo;hésitez pas à me &amp;ldquo;ping&amp;rdquo; sur les divers réseaux sociaux pour m&amp;rsquo;en parler.&lt;/p&gt;
&lt;p&gt;D&amp;rsquo;ici là, have fun :)&lt;/p&gt;</description></item><item><title>Création d’un template CentOS 5.5 pour XenServer 5.6</title><link>https://blog.zwindler.fr/2011/02/15/creation-dun-template-centos-5-5-pour-xenserver-5-6/</link><pubDate>Tue, 15 Feb 2011 21:46:29 +0000</pubDate><guid>https://blog.zwindler.fr/2011/02/15/creation-dun-template-centos-5-5-pour-xenserver-5-6/</guid><description>&lt;img src="https://blog.zwindler.fr/2011/02/citirx-xenserver11.webp" alt="Featured image of post Création d’un template CentOS 5.5 pour XenServer 5.6" /&gt;&lt;p&gt;Depuis quelques temps, ma solution de virtualisation est en place, mes VMs ronronnent, et je me suis lancé un peu plus profondément dans la supervision et tout ce qui s’en approche. Ceux qui lisent mes lignes de temps à autres sauront que j’avais déjà travaillé sur EyesOfNetwork et Nagios, mais j’ai voulu m’attaquer à quelque chose de nouveau et (à mon avis) mieux pensé.&lt;/p&gt;
&lt;p&gt;Je parle bien évidemment de l’épopée Shinken, démarrée par un gars de la région, qui a aussi fait mon école, et dont je suis la progression depuis maintenant un moment (pratiquement le début en fait, même si ca à souvent été d’un œil distrait). Seulement voilà, pour pouvoir tester Shinken au maximum de ses capacitées, j’ai besoin de plusieurs VM vierges.&lt;/p&gt;
&lt;p&gt;Fini l’époque bénie des VMs construites sur l’envie du moment : j’en ai marre! Il à donc bien fallut s’y résoudre : Créer des templates pour déployer rapidement (et proprement) un réseau complet.&lt;/p&gt;
&lt;p&gt;Donc rien de bien « techniquement agressif » (comme dirait l’autre) aujourd’hui, je vous propose un petit tuto pour créer de bout en bout un template CentOS 5.5 sur un XenServer 5.6 (qui ne supporte théoriquement que CentOS jusqu’à 5.4 même si nous verrons que ce n’est vraiment pas un problème).&lt;/p&gt;
&lt;p&gt;La première chose à faire pour créer un template c’est de commencer par créer la VM qui nous servira de modèle. Ceux qui auront toujours la même version 5.6 de XenServer que moi s’apercevront qu’il n’y a pas de template prédéfini pour CentOS 5.5. Nous prenons donc un 5.4, ça ne pose pas de problèmes dans le cas d’une installation par le Net (ce que je présenterai ici). Dans le cas d’une installation par l’iso, je crois que c’est plus problématique, et qu’il n’y a pas vraiment de solution à par installer via un DVD 5.4 puis changer de version par la suite (à vérifier).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/02/new_vm.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Comme je l’ai sous-entendu plus haut, je vais profité du fait qu’il est possible d’installer CentOS via HTTP pour pouvoir disposer directement d’une version CentOS 5.5 dans ma VM.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/02/install_url.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Dans le cas où vous passez par un DVD, il est possible de réaliser cette installation par le net de la même façon, en sélectionnant le média FTP ou HTTP lors de l’installation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL : mirrors.centos.org&lt;/li&gt;
&lt;li&gt;Directory : centos/5.5/os/x86_64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CentOS se met donc à s’installer sur la VM, une fois que vous avez répondu à toutes les questions. Pour tous les paramètres réseaux, comme il s’agit d’un template, il vaut mieux se contenter de garder des paramètre simple : Si possible, laisser le DHCP, on pourra reconfigurer l’IP de la VM au cas par cas sans risquer de provoquer de conflit d’IP lors de gros déploiement.&lt;/p&gt;
&lt;p&gt;Si tout se passe bien, il fini par rebooter au bout d’un moment. La première chose à faire une fois que la VM est fonctionnelle, c’est d’installer les XenServer-Tools. En effet, ce sont eux qui permettent à la VM d’être complètement « consciente » de son état de VM et donc d’atteindre &lt;del&gt;l’ataraxie&lt;/del&gt; la paravirtualisation (gain de performance et gain en contrôle sur la VM). Par défaut, ces XenServer Tools sont situées dans un iso que l’on monte donc sur la VM.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/02/xs-tools.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Et on lance les commandes suivantes pour monter et exécuter le programme d’installation :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir /mnt/cdrom
mount /dev/xvdd /mnt/cdrom
/mnt/cdrom/Linux/install.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Une fois le programme installé, un reboot s’impose! Selon les gouts « shutdown -r now » ou « init 6 ». Une fois que c’est fait, il faut mettre son système à jour avec « yum upgrade », et pourquoi pas installer tous les produits et logiciels indispensable à tout votre parc? Pourquoi pas non plus ajouter des repos additionnels tant qu’on y est (cf cette page du &lt;a class="link" href="https://web.archive.org/web/20150811012515/http://wiki.centos.org/AdditionalResources/Repositories" target="_blank" rel="noopener"
&gt;wiki.centos.org (lien mort, remplacé par Internet Archive)&lt;/a&gt;)?&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;et&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum list htop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;pour vérifier que l’importation à bien fonctionné (d’ailleur il y a la base des rpms dispo qui devrait se reconstruire dans la foulée)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/02/rpmforge.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Voilà, on a maintenant le parfait candidat pour un template! Pour pouvoir le créer, on doit éteindre la VM. Pour créer ce template, on a plusieurs possibilités. D’abord, on peut créer une Appliance, qui est en fait un template destiné à être exporté sur le web dans un format standardisé (.ovf). Typiquement, ce mécanisme est utilisée par des personnes qui fournissent une VM fournissant un service préinstallé, ou, dans le cas de la virtualisation VMware, par les utilisateurs de ESXi sans vCenter pour contourner l’absence de cette fonctionnalité :-p (je ferai un article là dessus bientôt).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/02/appliance.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Sinon on peut aussi convertir la VM en un template (opération « définitive ») et elle n’apparaitra plus dans la liste comme une VM mais bien comme un template. C’est ce que je vais faire ici.&lt;/p&gt;
&lt;p&gt;Il est désormais possible de créer très rapidement des VMs à partir de ce template. Les seules choses à modifier une fois le déploiement terminés sont donc&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le hostname (bah oui, c’est quelque chose d’unique!)&lt;/li&gt;
&lt;li&gt;supprimer l’interface eth0.bak créée par XenServer lors du déploiement&lt;/li&gt;
&lt;li&gt;et éventuellement modifier les infos IP de la machine&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;rm /etc/sysconfig/networking/devices/ifcfg-eth0.bak
rm /etc/sysconfig/network-scripts/ifcfg-eth0.bak
system-config-network
service network restart
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>[Test] XenServer 5.6, du solide mais de petites déceptions</title><link>https://blog.zwindler.fr/2010/12/10/xenserver-5-6-du-solide-mais-de-petites-deceptions/</link><pubDate>Fri, 10 Dec 2010 17:05:42 +0000</pubDate><guid>https://blog.zwindler.fr/2010/12/10/xenserver-5-6-du-solide-mais-de-petites-deceptions/</guid><description>&lt;img src="https://blog.zwindler.fr/2011/02/citirx-xenserver11.webp" alt="Featured image of post [Test] XenServer 5.6, du solide mais de petites déceptions" /&gt;&lt;p&gt;Dans l’article précédent relatant &lt;a class="link" href="https://blog.zwindler.fr/2010/10/06/premiers-pas-sous-xenserver-5-6-la-theorie-et-ce-que-jen-attendais/" &gt;la théorie et l’installation de XenServer&lt;/a&gt;, j’avais fais deux constats :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;XenServer ce n’est pas Xen (on est pas loin d’un ESXi pour toute la couche de présentation, l’OS qui sert d’hyperviseur, et l’architecture de type Serveurs d’un côté, console de gestion unifiée de l’autre)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;XenServer ça s’installe TRES vite et TRES simplement.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;N’allez pas croire que je sous-entend que c’est vraiment un avantage par rapport aux concurrents. On s’en sort très bien pour installer un ESX(i) ou un Hyper-V sans aucune difficulté (il faut avoir une culture « Systèmes », quand même!) et en peu de temps, mais bon, j’ai quand même été bluffé.&lt;/p&gt;
&lt;p&gt;Contrairement à d’autre blogs spécialisés de gens qui peuvent se permettre de présenter en détails toutes les fonctionnalités des licences payantes, je me contenterai de présenter ce que je peux voir, avec ma pauvre petite licence Express.&lt;/p&gt;
&lt;p&gt;A partir de maintenant, on entre dans le vif du sujet, l’utilisation jour après jour des serveurs, piloté par l’intermédiaire du XenCenter.&lt;/p&gt;
&lt;p&gt;Première chose à faire une fois le XenServer installé sur le serveur, et XenCenter sur la machine d’administration, c’est de lier le serveur au XenCenter. Ceci se fait de manière assez triviale en cliquant sur les boutons qui vont bien (Add New Server »).&lt;/p&gt;
&lt;p&gt;De la même manière, la gestion des fermes de serveurs (on appèle ça des Pools chez Citrix) peut se faire assez facilement, en créant une ferme et en y affectant des serveurs. Attention cependant, j’ai cru comprendre qu’il fallait des serveurs identiques au sein d’une même ferme pour que cela fonctionne bien (même versions, ça c’est sûr, même hardware, je n’en suis plus certain mais ça me parait prudent).&lt;/p&gt;
&lt;p&gt;Pour chaque serveur ou Pool, il vous est donc possible en très peu de clics de créer des VMs, mais aussi des Storages. Ce qui est plutôt chouette selon moi c’est qu’au dela des divers moyens de stocker des disques virtuels sur le réseaux (NFS, iSCSI, HBA, Advanced StorageLink), il est possible de monter des partages contenant vos isos en NFS et en CIFS (contre juste NFS pour VMware, aux dernières nouvelles). Même s’il n’est pas bien compliqué de monter un partage NFS pour un admin système, il peut être pratique d’avoir juste à créer un partage Windows depuis la machine d’administration (pour les archi de type maquette par exemple) et soyons honnête, ça ne coute pas cher à ajouter comme fonctionnalité!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/01/xenserver-home.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;L’affichage des VMs présentent sur le serveur se fait d’une manière assez classique : Un bandeau menu avec toutes les fonctionnalités disponibles, un volet de gauche qui liste les serveurs et leurs VM et un volet central qui se découpe enonglets permettant de gérer de façon plus spécifique l’élément sélectionné.&lt;/p&gt;
&lt;p&gt;Par exemple quand on sélectionne une serveur ou un pool, on dispose d’une liste des VMs hébergées que l’on peut trier par nom, usage CPU, usage mémoire, moyenne d’accès disque ou réseau, adresse IP, uptime&amp;hellip; Simple mais efficace. Chaque élément dispose d’un onglet Performance, qui retrace l’évolution de la métrologie dans le temps (temps relativement court dans la version Express). Un onglet Users permet de joindre un domaine AD pour accorder des droits sur les VMs, et un onglet Log permet de tracer les opérations du serveur.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/01/xenserver-perf1.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Dans l’ensemble, tout ce qui est nécessaire au bon fonctionnement d’un serveur bien dimensionné et dans des conditions normale d’utilisation me semble vraiment bien ficelé. Pour tout vous dire, ma machine ainsi que ses VMs tournent depuis plusieurs mois sans problèmes, et je l’ai mise à jour, j’ai supprimé des VMs, j’en ai créé d’autre, &amp;hellip; (oui, je n’écris l’article que maintenant)&lt;/p&gt;
&lt;p&gt;Mais comme je l’ai dis dans le titre, tout n’est malheureusement pas rose. XenServer est clairement un produit très aboutis et qui propose gratuitement certaines fonctionnalités bien utiles (voire vitales? La gestion de serveurs en ferme et le LiveMotion gratuit, c’est vrai que ça fait envie) que VMware ne propose qu’avec un vCenter (et la licence qui va bien), et des caractéristiques techniques de même niveau sur de nombreux points (pour un avis un peu moins partial que les sites des éditeurs, voir la comparaison de &lt;a class="link" href="https://web.archive.org/web/20120106002430/https://www.vmguru.nl/wordpress/wp-content/uploads/2010/08/Hypervisor-comparison.pdf" target="_blank" rel="noopener"
&gt;VMGuru (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;). En grattant un peu, on voit bien que certains points sont plus aboutis chez VMware.&lt;/p&gt;
&lt;p&gt;La liste des systèmes d’exploitation invités supportés, par exemple. Là où j’ai eu très peu de difficultés à créer des VMs avec des OS peu courants sous ESXi, on sent bien que XenServer est plus réticent. La liste des OS supportés et vraiment faible actuellement (v5.6), proposant Windows, du Debian et du RedHat (et autres dérivés artificiels pratiquement identiques).Et encore, certaines versions uniquement (il arrive que les noyaux &amp;lsquo;de base&amp;rsquo; de certaines versions récentes supportent mal XenServer)!&lt;/p&gt;
&lt;p&gt;Autre déconvenue, quand on clique sur l’onglet Memory d’un serveur, on se retrouve malheureusement face à un message du type « Upgrade XenServer to enable Dynamic Memory Control ». Oui, la mémoire n’est pas attribuée dynamiquement. Il est donc très important de bien gérer sa RAM. J’ai très vite atteint mes 8 Go sur ma machine de test!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2011/01/xenserver-memory.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;De la même façon, le Thin Provisionning pour l’espace disque semble ne pas être aisé à mettre en place avec la version 5.6 (et pas possible sur la 5.5 sauf tour de passe passe de sioux), qui devra être attribué avec parcimonie et justesse (la taille des disques peut être modifiée une fois les VMs éteintes, mais attention à ce que les OS le supportent!). Cependant il semblerait que le FP1 de la 5.6 corrigera bientôt ce problème (A l’installation&amp;hellip; je pense que c’est trop tard une fois installé).&lt;/p&gt;
&lt;p&gt;Et enfin, peut être un problème mineur la plupart du temps, mais l’utilitaire de customisation de la machine virtuelle est beaucoup plus complet sous ESX(i). Sous XenServer, c’est même minimaliste. On peut modifier les composants vitaux (CPU, HDD, RAM, cartes réseaux), mais guère plus. C’est rare, mais pourtant des fois c’est utile de pouvoir définir rapidement le nombre de ports COM de la machine virtuelle&amp;hellip;&lt;/p&gt;
&lt;p&gt;Voilà donc un petit tour d’horizon de mon ressenti&amp;hellip;&lt;/p&gt;</description></item><item><title>[Test] Premiers pas sous XenServer &amp; co : la théorie et ce que j’en attendais</title><link>https://blog.zwindler.fr/2010/10/06/premiers-pas-sous-xenserver-5-6-la-theorie-et-ce-que-jen-attendais/</link><pubDate>Wed, 06 Oct 2010 17:32:33 +0000</pubDate><guid>https://blog.zwindler.fr/2010/10/06/premiers-pas-sous-xenserver-5-6-la-theorie-et-ce-que-jen-attendais/</guid><description>&lt;img src="https://blog.zwindler.fr/2011/02/citirx-xenserver11.webp" alt="Featured image of post [Test] Premiers pas sous XenServer &amp; co : la théorie et ce que j’en attendais" /&gt;&lt;p&gt;Et oui, je fais des infidélités à VMware. Je ne vous l’avais pas dis, mais ça fait un moment déjà que j’ai arrêté de jouer sous ESXi. Je me suis lassé de devoir bidouiller pour pouvoir faire fonctionner ESXi sur du matériel non supporté, de devoir bidouiller pour trouver des workaround pour éviter les limitations de la version gratuite.&lt;/p&gt;
&lt;p&gt;Pour être parfaitement honnête, la goûte d’eau a été le fait que ma carte réseau fonctionnait très mal (à cause du fait que j’utilisais un pilote équivalent à première vue, mais pas adapté en réalité). Sous Windows, certaines cartes virtuelles (E1000 et Flexible) ne fonctionnaient pas, et sous FreeNAS, c’était carrément impossible de faire fonctionner le réseau. Après avoir tenté d’autres OEM modifiés avec d’autres pilotes réseau, j’ai fini par abandonner (temporairement? le temps d’acheter du matériel plus pro, peut être?).&lt;/p&gt;
&lt;p&gt;Après avoir passé pas mal de temps à étudier les concurrents, je me suis mis en tête d’installer XenServer, en espérant que mon matériel soit mieux supporté. Et je n’ai pas été déçu&amp;hellip;&lt;/p&gt;
&lt;p&gt;Commençons par le commencement, un peu de théorie. J’ai connu XenServer en faisant des recherches sur Xen, le &lt;strong&gt;paravirtualiseur&lt;/strong&gt; libre. Depuis quelques temps, XenSource a été vendu à Citrix, qui est parti de cette base pour faire sa propre solution de virtualisation.&lt;/p&gt;
&lt;p&gt;Les architectures de ce type fonctionnent de la façon suivante : Les diverses machines virtuelles fonctionnent au DIRECTEMENT au dessus du matériel (domU dans la terminologie Xen). Cependant, comme un seul OS peut avoir le droit d’utiliser le matériel, les ressources disponibles sont distribués à l’essemble de VMs par un OS un peu spécial, à mis chemin entre une machine virtuelle et un OS hôte (le dom0). Il s’agit souvent un noyau linux modifié, installé sur l’OS hôte initial de la machine.&lt;/p&gt;
&lt;p&gt;La GROSSE différence entre les hyperviseurs qui font de la « virtualisation complète » (VMware) et la paravirtualisation tient du fait que dans ces derniers, les machines virtuelle non privilégiées sont « conscientes » d’être des machines virtuelles, et font donc appel au chef d’orchestre dès qu’elles ont besoin d’une ressource.&lt;/p&gt;
&lt;p&gt;Pour éclaircir un peu mes propos, je vous propose un graphique de wikipedia, tiré de l’article parlant de Xen (&lt;a class="link" href="http://fr.wikipedia.org/wiki/Xen" target="_blank" rel="noopener"
&gt;ici&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2010/10/xen1.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Mais ce fonctionnement n’est pas aussi idéal qu’on pourrait le penser. Les noyaux de ces VMs doit être modifiés pour permettre cette « conscience ». Du coup, avec Xen, c’est surtout les noyaux linux qui fonctionnaient le plus souvent avec Xen, les sources de Windows (ou autres) étant beaucoup moins accessibles (Même si des versions récentes de Xen n’ont plus ces limitations, mais pour ne pas vous embrouiller, je n’en parlerai pas).&lt;/p&gt;
&lt;p&gt;A l’opposé, VMware est (historiquement) plutôt partisan d’une autre approche de la virtualisation : la &lt;strong&gt;virtualisation complète&lt;/strong&gt;, et plus récemment avec un &lt;strong&gt;hyperviseur&lt;/strong&gt;. Contrairement à la paravirtualisation, les machines virtuelles ne sont pas directement au-dessus du matériel, elles sont séparées de celui-ci par une fine couche logicielle (l’hyperviseur) qui se charge de distribuer les ressources. L’avantage de cette technique est que les machines virtuelles n’ont alors pas besoin d’être consciente de leur virtualisation, et donc n’ont pas besoin d’un noyau modifié. L’inconvénient est que théoriquement, les performances sont un peu moindres, à cause de « l&amp;rsquo;empilage ». De ce que j’en ai compris, ce choix technique est surtout poussé par les premières versions des serveurs VMware, qui ressemblait pas mal à des émulateurs, à installer au-dessus d’un serveur Windows (VMware GSX &amp;amp; VMware Server 2).&lt;/p&gt;
&lt;p&gt;Mais assez de théorie, passons à du tangible!&lt;/p&gt;
&lt;p&gt;Pour découvrir XenServer, j’ai bêtement cliqué sur un lien nous vantant les mérites de XenDesktop (lien mort). Parce que OUI, pour tenter de prendre des parts de marché à VMware, Citrix est prêt à vous donner gratuitement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le serveur lui-même (XenServer, en version 5.5, même si j’utilise la 5.6, après l’avoir mis à jour)&lt;/li&gt;
&lt;li&gt;Le poste de pilotage (XenCenter)&lt;/li&gt;
&lt;li&gt;Les ISOs contenant les programmes nécessaires pour monter un VDI (XenDesktop), c&amp;rsquo;est-à-dire la distribution de postes de travail comme un service (jusqu’à 10 utilisateurs, avec la plupart des fonctionnalités, dont les plus utiles).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La première chose qu’on peut dire, c’est qu’on n&amp;rsquo;est pas vraiment perdu. Citrix propose une infrastructure proche de celle de VMware, avec des serveurs pilotés conjointement par un vCenter, contrairement à Xen qui se pilotait directement depuis le serveur, sans passer par l’intermédiaire d’un poste de pilotage. Vous aurez peut-être remarqué que les noms sont également très proches, par pure coïncidence certainement ;-).&lt;/p&gt;
&lt;p&gt;Après avoir rempli quelques informations sur moi-même sur le site de Citrix, j’ai pu télécharger l’archive contenant le tout, puis commencer l’installation. Pour rappel, je dispose d’un PC de bureau qui fonctionne avec un I7 et 8Go de RAM pour la partie serveur, et un portable qui me sert de XenCenter.&lt;/p&gt;
&lt;p&gt;Pour ce qui a été de l’installation du serveur en elle-même j’ai trouvé tout ça très intuitif. A force d’installer des distrib Linux, on finit par être habitué au beau menu texte tout bleu! Pour ceux qui voudraient plus de précision, voici un walkthrough des plus complets &lt;a class="link" href="http://vpourchet.wordpress.com/2010/06/18/installation-de-xenserver-5-6-0/" target="_blank" rel="noopener"
&gt;ici&lt;/a&gt;. En quelques minutes, XenServer était installé, configuré, prêt à l&amp;rsquo;emploi.&lt;/p&gt;
&lt;p&gt;Mais ce qui choque le plus, une fois que notre XenServer a passé le boot, c’est la console de configuration&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2010/10/xenserver1.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Remplacez le bleu par du jaune, et le noir par du gris&amp;hellip; Ça ne vous rappelle rien? Et oui, vous aurez bien sûr reconnu l’interface de configuration de VMware ESXi&amp;hellip; Enfin bon, du coup ce n’est pas dur de s’y retrouver. D’autant plus qu’il n’y a pas vraiment de différences d’utilisation entre cette console et celle de ESXi (un peu plus fournie pour XenServer), car elle ne vous servira qu’à configurer le strict minimum, puisque le gros de l’utilisation se fera depuis le XenCenter.&lt;/p&gt;
&lt;p&gt;Léger avantage, peut être, XenServer propose un accès à la console direct, et non pas camouflé comme VMware. J’ose donc en déduire que l’accès à la console est « autorisé », même si probablement pas supporté, au même titre que la Technical Console de VMware (l’ex « hidden console »). Vous pouvez aussi avoir un aperçu de la charge utilisée par vos VMs, mais bon, tout ça est un peu superflux une fois qu’on a ajouté l’hôte au sein du poste de commande, je trouve.&lt;/p&gt;
&lt;p&gt;Ce qui est intéressant, ce n’est pas l’interface graphique, mais bien ce qu’il y a dessous. Et bien justement, en dessous, on est très proche d’un ESX ou d’un ESXi&amp;hellip; Quand on explore la console, on se rend compte qu’on a affaire à un Redhat modifié pour être le plus léger possible. Alors « OUI », il s’agit ici d’un dom0, au sens OS privilégié du terme chez XenSource, mais bon, au final, on se rend compte que ce que notre XenServer fait, c’est surtout de la virtualisation complète, comme ESX(i), le Redhat ultra léger de XenServer servant d’hyperviseur « bare metal » au dessous des VMs&amp;hellip;&lt;/p&gt;
&lt;p&gt;Au final, en cherchant à trouver les différences techniques entre XenServer et ESXi, j’ai surtout trouvé des similitudes. Le gros point fort pour moi, c’est que ça marche parfaitement sur ma machine de test. Cependant, ce n’est pas vraiment un critère utile pour la plupart des gens qui peuvent se permettre (dans un contexte plus professionnel) d’acquérir du matériel supporté par VMware. Comme ça commence à faire un peu long comme article, j’aborderai mes impressions sur XenServer dans sa réelle utilisation (via une administration XenCenter) dans un prochain article.&lt;/p&gt;</description></item></channel></rss>