Google PlusFacebookTwitter

Qinling, let’s the journey begin!

By on Mai 23, 2019 in Linux | 0 comments

Few days ago I started to work on Qinling implementation in our OpenStack platforms and this Medium story (which is my first) is about it. But before going further, let’s have a quick overview of what Qinling is and what it does. Qinling is an OpenStack project to provide “Function as a Service”. This project aims to provide a platform to support serverless functions (like AWS Lambda). Qinling supports different container orchestration platforms (Kubernetes/Swarm, etc…) and different function package storage backends (local/Swift/S3) by nature using plugin mechanism. Basically it allows you to trigger a function only when you need it, this helps you to consume only the CPU and memory time that you really need without to configure any server. Which means at the end the billing should be lighter (everybody loves that). I will not going deeper in what Qinling is, there are many...

systemd-networkd, l’âge de la maturité ?

By on Mar 13, 2018 in Linux | 0 comments

systemd, le « sujet » qui a fait couler beaucoup d’encre… Dès son annonce, systemd à fait parler de lui que se soit en bien ou en mal. Certains étaient enthousiastes à la venue d’un nouveau système d’init, d’autres étaient réfractaire au changement, d’autres étaient partagés sur le fait que systemd faisait beaucoup trop de choses. Pour ma part je n’avais pas spécialement d’opinion sur le sujet, j’attendais simplement de voir comment systemd allait s’intégrer aux distributions et plus particulièrement à Debian GNU/Linux. Depuis Debian GNU/Linux Stretch (9.x), l’intégration de systemd a été amplement améliorée même s’il est dommage que la version embarquée par défaut soit inférieure à 233 (heureusement que les backports sont là pour corriger cela). Comme indiqué quelques lignes plus haut, systemd est capable de gérer...

Hyper-V, Nova, VxLAN et Open vSwitch, enfin une belle histoire !

By on Déc 31, 2017 in OpenStack, Windows | 0 comments

Parce que tout est possible, même Open vSwitch sous Windows ! Cette histoire se déroule durant l’hiver 2017, c’était un hiver sombre, enneigé et froid… dans un petit village nommé OpenStack. Tout ce que vous lirez dans ce billet s’est réellement déroulé. Aux âmes sensibles s’abstenir, d’affreux événements se sont déroulés tout au long de cette histoire comme des réinstallations de système et des bases de registre corrompues. Des mots pouvant vous horrifiez tels que Windows, PowerShell, Hyper-V ont été utilisés lors de la rédaction de ce récit, des journées passées sur Technet à lire des horreurs sur la torture de système d’exploitation de production… Lecteurs, sachez néanmoins que même si au premier abord cette histoire vous semble vile et terrifiante, cette dernière se soldera tout de même par une fin heureuse et certainement féerique...

iPXE et la fameuse erreur 0x040ee119 qui rend fou !

By on Avr 17, 2017 in Devel, Linux, OpenStack | 0 comments

Quand tout fonctionne et que tout à coup… 0x040ee119 ! Durant les derniers mois qui se sont écoulés, j’ai eu à mettre en place un système de provisioning permettant d’automatiser le plus que possible nos déploiements OpenStack. La principale étape dans ce genre de procédé étant bien sûr de déployer un système d’exploitation et pour cela il m’a fallu remettre le nez dans la fameuse pile PXE/DHCP/TFTP et cela même si j’utilise Bifrost. Bifrost consiste à utiliser Ironic (composant de la fondation OpenStack) en mode standalone ce qui signifie qu’il n’est pas nécessaire d’avoir Keystone, Glance, Neutron et Nova d’installés pour utiliser ce dernier. Le titre de cet article relate parfaitement le comportement que j’avais lors des tentatives de déploiement, un coup cela fonctionnait et le coup d’après j’avais le...

Flasher un routeur ZyXel EMG2926-Q10A de chez Vidéotron

By on Mar 25, 2017 in Autres, Embarqué, Linux | 36 comments

Vidéotron, le retour avec ZyXel… Il y a presque 4 années, je rédigeais un billet sur comment Flasher un routeur D-Link DIR-825 de chez Vidéotron. Aujourd’hui, je vais rester sur le même sujet à une petite nuance près, le routeur sera un ZyXel EMG2926-Q10A toujours de chez Vidéotron. Avant d’aller plus loin, une petite mise en garde habituelle au sujet de la procédure qui suit. Comme la plupart des changements bas niveau il existe un risque, c’est pour cela que je ne pourrai en aucun cas être tenu responsable des possibles dommages engendrés suite au remplacement du micrologiciel (firmware) ou à la suite de cette procédure. Pour la petite histoire, le modèle EMG2926-Q10A de chez ZyXel n’est en fait qu’un ZyXel NBG6716. Ce modèle découle peut-être d’un partenariat entre Vidéotron et ZyXel, je ne saurai le confirmer ! ZyXel propose par défaut un...

Paquet pcs disponible pour Debian Jessie

By on Juin 4, 2016 in Linux, OpenStack | 0 comments

Il était une fois, l’histoire de pacemaker, corosync et pcs… Pour ceux qui ne connaissent pas cette histoire, un petit résumé s’impose (je dois mettre le mot pcs ici pour le référencement). En temps normal, cette suite d’outils liée à la haute disponibilité est présente dans les miroirs officiels Debian GNU/Linux. Hélas, pour Debian GNU/Linux Jessie (8.x) ce ne fut pas le cas… Trois problèmes: Un problème avec la librairie libqp qui n’a pas été résolu à temps. [1] Le paquet corosync était plutôt en mauvais état. [2] L’équipe Debian en charge de la haute disponibilité était quasiment inactive. [3] Heureusement, même si cela arrive tard, les trois problèmes cités ci-dessus ont été résolus et ces paquets sont désormais disponibles via les backports officiels Debian. pcs, un oubli malheureux pcs permet de configurer pacemaker et corosync en ligne...

Une zone OpenStack dédiée au nested KVM

By on Oct 2, 2015 in Linux, OpenStack | 2 comments

Qu’est-ce que le nested KVM ? En informatique, le mot nested signifie imbriqué. Ce mot est souvent utilisé dans le développement (nested structure), pour KVM cela signifie simplement que si cette option est activée alors il sera possible de créer une machine virtuelle dans une autre machine virtuelle, d’où l’utilisation du mot imbriqué. Par défaut, cette fonctionnalité n’est pas activée, cela signifie donc que seules des instances de type QEMU peuvent-être créées sur des machines virtuelles. Les instances de type QEMU seront beaucoup moins performantes que des instances de type KVM. Ce billet suppose que le(s) processeur(s) utilisé(s) sur l’hyperviseur/compute est/sont de marque Intel. Activation du nested pour le module KVM Bon pour ceux qui n’étaient pas au courant (et qui n’ont pas lu le lien ci-dessus), kvm est un module du noyau Linux. Comme beaucoup...

Mise à jour du module grub2 pour Puppet

By on Mai 12, 2015 in Devel, Linux | 0 comments

Parce que j’ai fait mon grub ce weekend… Il y a maintenant un peu plus d’une année, je publiais mon premier module Puppet (puppet-grub, sans trop savoir comment cela fonctionnait je l’avoue). Quelques issues furent ouvertes sur Github, dans l’ensemble le module semblait vivre sa vie sans trop de soucis. Ayant eu enfin le courage de me décider à corriger le ticket (Refresh (update-grub) always triggered), de fil en aiguille, j’ai corrigé, modifié le module pour en sortir une nouvelle version. L’objectif était de rendre le module le plus compatible possible avec les standards de la forge Puppet. Pour se faire, j’ai dû: Remplacer le fichier Modulefile par le fichier metadata.json Vérifier l’indentation, la doc, etc… via puppet-lint Vérifier la syntaxe via puppet parser validate Autre amélioration, rendre le module compatible avec...

Swift et l’optimisation système

By on Jan 16, 2015 in Devel, Linux, OpenStack | 0 comments

Optimiser Swift c’est bien, optimiser le système c’est mieux ! Il y a quelques mois, j’ai eu envie de m’essayer à l’optimisation de Swift. Pour ceux qui auraient besoin d’un petit rappel sur ce qu’est Swift, c’est un système distribué de stockage d’objets, extensible et redondant. Swift est aussi connu sous le doux nom d’OpenStack Object Storage. Généralement, l’optimisation de Swift consiste à modifier le nombre de worker et de concurrency, c’est bien mais ce n’est pas suffisant. Swift étant destiné à du stockage de fichiers redondés, il se base donc sur deux principaux composants matériels du serveur (sans compter le processeur et la mémoire): Le disque dur La carte réseau Se sont donc ces deux composants qu’il faudra optimiser sous Linux. Pour se faire, il sera nécessaire de passer par le sysctl...

Un goût de kpatch pour Debian GNU/Linux Wheezy (7.x)

By on Juil 21, 2014 in Devel, Linux | 0 comments

Kpatch et Wheezy, ça fonctionne ! Dans le précédent billet sur kpatch (cf. Kpatch, une alternative libre pour patcher son noyau à chaud !), je contais mes déboires à installer kpatch sur Debian GNU/Linux Wheezy : Dans un premier temps, j’ai essayé de faire fonctionner kpatch sur une Debian 7.5 (alias Wheezy) mais ce fut laborieux. Par laborieux je veux dire que Wheezy est trop ancienne pour que kpatch puisse fonctionner out of the box. Hélas, Jessie n’est que la version testing du projet du Debian. Cela signifie que cette version ne peut pas être installée sur un serveur de production. Comme dit dans le précédent billet, Wheezy embarque une version 4.7.2 de gcc et un noyau Linux 3.2 alors que les pré-requis de kpatch sont minimums gcc 4.8.0 et un noyaux Linux 3.7. Après quelques heures passées à essayer de faire fonctionner kpatch sur Wheezy, j’ai enfin réussi à les faire...

Kpatch, une alternative libre pour patcher son noyau à chaud !

By on Juil 2, 2014 in Devel, Linux | 3 comments

I had a dream… Kpatch ! Bon, c’est vrai, je le reconnais, je m’emballe légèrement.  🙄 Enfin une solution prometteuse permettant d’appliquer les mises à jour de sécurité (et autres) du noyau à chaud, ce qui veut dire sans redémarrage du serveur. Avant, il existait Ksplice, une solution propriètaire détenue par la société Oracle mais ça c’était avant ! Depuis quelques mois, RedHat et Suse se sont lancés dans la bataille pour chacun fournir leur solution alternative. Pour RedHat : kpatch Pour Suse : kgraft Pour ma part, je n’ai pas eu l’occasion de « jouer » avec kgraft, si vous avez déjà côtoyé la bête, n’hésitez pas à partager votre retour d’expérience. Comment ça fonctionne ? Je vais faire très simple et très rapide : kpatch permet de remplacer une fonction par une autre à l’aide d’un module noyau. Pour la version longue...

Mise en place de Kdump à l’aide de Puppet

By on Avr 14, 2014 in Linux | 0 comments

Kdump un standard en devenir (si si si) Il va de soit que c’est un avis personnel mais à mon sens, avoir un serveur sans Kdump c’est comme rouler en voiture sans feux de croisement (superbe analogie, non ?). Pour une petite piqûre de rappel sur ce qu’est Kdump et à quoi il sert, je vous invite à parcourir les liens suivants : kdump-tools et kdump-install, par l’exemple… L’utilisation de Kdump sur Debian Wheezy http://wiki.incloudus.com/display/DOC/Debian+-+Kdump Les liens ci-dessus traitent de l’installation manuelle de Kdump sur une distribution Debian GNU/Linux, c’est bien, c’est fonctionnel mais quid de l’industrialisation du déploiement de Kdump sur l’ensemble d’un parc informatique ? Et pourquoi pas avec Puppet ? Il existe plusieurs outils d’industrialisation, dont voici la liste des plus utilisés...

Utilisation du SDK php-opencloud avec OpenStack

By on Avr 7, 2014 in Devel, OpenStack | 0 comments

SDQuoi ? Nan SDK… Mais non, restez, c’est plus fort que moi, s’il y a un jeu de mots tout pourri à faire alors il est pour moi… Aller, restez  D’après Wikipédia, un SDK c’est : Un kit de développement ou trousse de développement logiciel est un ensemble d’outils permettant aux développeurs de créer des applications de type défini. Les kits de développement logiciels sont souvent désignés par le sigle anglais SDK (Software Development Kit) ou devkit. Concrètement, c’est un ensemble de librairies pouvant être utilisées dans une application. Dans le cas présent, php-opencloud permet de gérer une plate-forme OpenStack via les API de ce dernier. Ce SDK est maintenu par la société Rackspace, il est compatible avec OpenStack et donc avec la quasi totalité de ses composants (excepté Ceilometer). Pour résumer, ce SDK vous permettra...

Lister les conteneurs (buckets) Swift de tous les tenants

By on Fév 13, 2014 in OpenStack | 0 comments

DevOps, watching you ! Et oui, il faut bien les surveiller vos clients, non ? Ah non, pardon, je voulais dire : « les accompagner » ! Le sysadmin que vous êtes, se doit d’être en mesure de récupérer le plus rapidement possible la consommation (quelle qu’elle soit) d’un utilisateur. Depuis quelques semaines, je joue avec Swift (OpenStack Object Storage). Dans l’ensemble j’arrive à faire ce que je veux mais (car il y a toujours un « mais ») récupérer de l’information sur d’autres utilisateurs que le sien n’est pas une mince affaire. En effet, utiliser le client python-swiftclient pour lister ses propres conteneurs (buckets chez Amazon), ses propres fichiers, etc… c’est simple. $ swift –os-auth-url http://identity.enocloud.com:5000/v2.0/ –os-tenant-name goldyfruit-bidouilles –os-username goldyfruit...

Kexec et l’appel système (syscall) shutdown(8)

By on Jan 21, 2014 in Linux | 0 comments

Dans le doute tu rebootes, pas si facile avec kexec ! Ça vous est forcement arrivé, ce moment de solitude, mais si, vous savez, celui qui vous rend perplexe lorsque vous exécutez un simple init 6 ou reboot. Celui où vous vous attendez à voir le BIOS (qui met quinze plombes à charger) de votre serveur apparaître à l’écran alors qu’en fait ce n’est qu’une séquence de démarrage de votre noyau. C’est bon, ça vous revient à l’esprit ? Vous vous souvenez donc ce que vous avez fait par la suite, un reboot -f bien moche qui passe outre l’init (d’ici, j’arrive à voir la honte sur votre visage). Vous n’êtes quand même pas allés jusqu’au reset matériel ? J’avoue, je l’ai fait… Ne me regardez pas comme ça ! 😯 L’explication du pourquoi du comment Pourquoi les commandes init 6, reboot et shutdown -r now ne...

%d