PROJET AUTOBLOG


Blog-Libre

Site original : Blog-Libre

⇐ retour index

Après Mint, Debian bullseye/sid

samedi 14 mars 2020 à 10:00

J’ai terminé ma migration de Mint vers Debian bullseye/sid. Je suis sur ce dernier depuis 2 mois et demi sur mon pc portable (dual-boot : Mint et Debian), 1 mois et demi sur mon fixe. L’heure de vous faire un petit retour d’expérience et vous expliquer pourquoi j’ai changé de crèmerie.

Après Mint

J’étais extrêmement satisfait de Mint, pour moi elle surclasse Ubuntu, a un développement actif et sain, amène de nouvelles idées. J’ai réellement utilisé 3 distributions desktop dans ma vie : Xubuntu, Mint Xfce, Debian Xfce. Je recommande lourdement et sans aucune hésitation Mint. Lorsque j’ai décidé de remplacer ma distribution, ma shortlist contenait encore Mint ^^

Mais alors pourquoi ce changement ? La réponse est simple : Moi.

Lorsque je suis passé à Mint, j’ai commis une grosse erreur. Je savais qu’elle était basée sur Ubuntu, je la voyais faire de meilleurs choix, en réalité elle est basée sur Ubuntu **LTS**. Énorme différence pour moi, j’aime la nouveauté, les versions récentes des outils que j’utilise. Je suis arrivé sur Mint (basée sur Ubuntu 18.04 LTS) en septembre 2018, je n’ai rien vu… courant 2019 alors que je réinstallais des serveurs Debian en Buster au boulot, ça a commencé à sentir la naphtaline. J’avais des paquets moins récents que sur Debian Buster. Intenable pour moi, il fallait trouver une solution.

Une seconde raison a été ma volonté de retourner aux sources : Debian. J’ai fait quelques articles où je critiquais Ubuntu, j’étais sur Mint mais avec des vieux paquets, je bosse sur Debian au boulot. Quel intérêt de rester sur les filles ? Pourquoi ne pas retourner sur la distribution mère ? Une envie de tester, de voir si il me manquait des choses sur Debian.

Enfin la dernière raison est que Debian est ma distribution de cœur. La plus en accord avec « moi ». Je suis à la maison, chez moi. Je n’ai pas besoin d’accepter les idées de merde de Canonical/Ubuntu, Debian ne propose pas vraiment sa « vision » du desktop Linux. On construit réellement, on modèle son foyer chez Debian (relire Architecte). Avec Ubuntu/Mint on me tenait encore la main, les plans étaient déjà largement dessinés, la cohérence (réussie souvent) de l’ensemble restait malgré tout imposée. Sur Debian j’ai refait toute la déco, j’ai chiffré manuellement mon /home, j’ai choisi mes fondations récentes voire trop (bullseye/sid). Cette construction est définitivement la plus proche de moi et mes goûts.

Debian bullseye/sid

Lorsqu’on fait cat /etc/debian_version sur un serveur Debian « Buster » 10 alors on obtient « 10.3 » actuellement. Sur mon pc on obtient « bullseye/sid », je trouve ça amusant, je ne savais pas que Debian était capable de gérer/afficher cette particularité.

Les « bonnes » surprises sont peu nombreuses car je considère beaucoup de « qualités » comme implicites :

Peu de choses à en dire finalement, j’ai fait que des distribs en .deb, je reste en territoire connu/voulu. En insatisfait éternel, je regrette une stabilité totale (que j’avais sur Mint) mais ça ne se conjugue évidemment pas avec des paquets frais. Niveau maintenance je n’ai pas plus de travail à effectuer que sur Mint, je conserve ma gestion des mises à jour.

L’ultime qualité d’un outil est de se faire oublier. Hormis quelques instabilités, j’oublie Debian.

Entraide et partage

Avec le temps j’ai appris de mes erreurs, j’avais préparé ma migration notamment le pinning et mon sources.list mais j’ai tenu à vérifier mes infos chez des gens qui pratiquent. J’ai sollicité antistress qui m’a fait une longue réponse très précise pour le pinning et le sources.list, j’ai échangé avec Seb sur Debian et enfin j’ai piqué l’excellent conseil de Olivyeahh choix p (pinning) lorsque apt-listbugs remonte un paquet bugué. On s’évite ainsi la version foireuse du paquet et la version suivante (probablement corrigée du bug pénible) sera proposée.

L’entraide et le partage sont toujours bien présents dans les communautés du Libre, merci à eux.

Quelques réflexions autour des disques

vendredi 13 mars 2020 à 13:00

Il y a actuellement 3 grandes catégories de disques : HDD (Hard Disk Drive), SSD (Solid State Drive), SSD NVMe. Ce dernier étant le format le plus récent, je vous renvoie vers Tout savoir sur le NVMe pour comprendre les différences.

3,5 pouces avant et 2,5 pouces maintenant

Je vois un réel changement sur les serveurs dans l’univers professionnel. On a un certain nombre de slots sur un serveur. Depuis que j’ai débuté dans l’informatique, la majorité des serveurs que j’ai croisé avaient des slots 3,5 pouces, on peut y mettre des HDD en 7200 RPM, des HDD en SAS 10K/15K. À l’heure actuelle on assiste à un basculement lié à la performance des SSD. On a des slots 3,5 pouces sur les « vieux » serveurs avec des racks 3,5 pouces vers 2,5 pouces, en gros on met du SSD 2,5 pouces dans un rack 3,5 pouces.

Les nouvelles gammes de serveurs sont surtout centrées sur des slots de 2,5 pouces pour SSD classiques/NVMe, l’industrie et le client veulent de la rapidité/performance. De facto ça exclut les disques durs de 3,5 pouces. Aujourd’hui Intel propose du SSD NVMe 2,5 pouces en 15 To à la vente, le HDD devrait voir arriver du 18 et 20 To en 2020 (50 To prévu pour 2026). Je ne m’avance pas trop en disant que la capacité disque des SSD va dépasser rapidement celle des HDD.

Performance, RAID et coût

J’ai un client qui a des SSD de 3,8 To en disques principaux et des HDD de 10 To en stockage. Évidemment il y a toujours des contraintes (prix au Go) mais dans un contexte professionnel, les disques sont nécessairement en RAID. Un disque défectueux sur du HDD de cette capacité implique plusieurs heures de reconstruction au RAID : Les disques sont plus sollicités (par la synchronisation) donc moins performants (pour la lecture/écriture des données continuant sur le serveur), durant ce délai la grappe RAID est plus susceptible de se casser la gueule (puisqu’il manque un disque).

Nous avons reçu nos premiers SSD NVMe de 1 To, il faut 12 mn pour la construction/reconstruction d’un RAID 1 càd pour les personnes moins techniques, que l’intégralité des disques soit synchronisé. 12 mn.

Un HDD n’est plus seulement limitant, il devient pénalisant dans un contexte professionnel. À quel moment l’espace disque et son coût devient plus important/essentiel que la rapidité et viabilité d’accès à la donnée ?

Peut-on se permettre de perdre 6-8-10 To de données simplement parce que la capacité disque suit alors que le temps de reconstruction du RAID explose ? Où se situe le point de bascule ?

Usages

Pour moi dans un contexte professionnel les HDD ne doivent plus servir qu’à deux usages : Stockage (vidéos, images, nombreux fichiers peu/pas utilisés, etc.) et sauvegarde (des données). En revanche un HDD en production (« vraiment » utilisé) est à bannir.

Prenons l’exemple des données d’un Nextcloud sur du HDD, évidemment le coût de stockage est bien moins cher et on peut monter haut « facilement » avec du HDD de 6 To :

Tout ceci est peut-être bien abstrait pour toi lecteur mais attendre plus de 6h (HDD de 6 To), 1h30 (SSD de 3,8 To) ou 12 mn (SSD NVMe de 1 To) à côté d’un serveur pour la reconstruction d’un RAID 1, fais réfléchir à la valeur qu’un professionnel porte aux données de ses clients, les vôtres.

J’ai vu Kingdom

jeudi 5 mars 2020 à 17:39

En ce moment, je vois tout un tas de trucs, films, séries… En fait, je vois tout un tas de trucs depuis un bout de temps. Et aujourd’hui, j’aimerais partager un peu avec vous, quelques petites pépites — ou quelques déceptions — que je peux voir. Et on commence avec Kingdom, une série fantastique-médiévale-western-samouraï avec des zombies qui nous vient tout droit de Corée ! Ouep ! Rien que ça !

Ok, pour certaines personnes, je vais probablement arriver un peu à la bourre puisque la série a maintenant plus d’un an et la saison 2 est à quelques jours de sortir sur les internets. Mais quand-même : ça pourrait intéresser 2-3 personnes qui n’ont pas l’œil rivé presque heure par heure sur le tableau des sorties Netflix. En fait, je me situe un peu à la frontière entre Le fossyeur de films et Dédé, le pilier du PMU du coin qui — chance du hasard de la conjoncture — est aussi docteur en philosophie et en neurosociologie.

Alors je sais pas vous mais moi, ma rencontre avec le cinéma coréen, c’est assez récent. Ça date de Train to Busan, film de science-fiction avec un scène de tension tendue comme le slip de Gérard Larcher qui, déjà… Mettait en scène des zombies. Mais je ne tirerais aucune conclusion sur l’appétence éventuelle des coréens pour la chair fraîche et la chair en putréfaction. Deux œuvres ne sont définitivement pas une cohorte statistiquement significative.

Mais revenons donc à nos zombies de Kingdom. La diégèse se situe donc en Corée, à la toute fin du XVIe siècle. Le prince héritier de la couronne coréenne se retrouve au cœur d’une machination politique menée par un clan rival au moment même où une étrange maladie (zombie !) se répend au sud du pays. Bien évidemment, vous vous doutez que les deux événements sont liés !

Et donc ? Comment qu’c’est, Kingdom ? Hé ben c’est vachement bien ! La direction photo est magnifique, la direction cascade bénéficie de gros moyens pour une série — avec notamment une scène de poursuite en chariot assez dantesque qui se finit dans littéralement dans la caméra — et y’a Bae Doonaet ça, ça me met en joie ! Bae Doona, moi, je l’ai connue dans Cloud Atlas puis Sense8, des sœurs Watchowki — je vous ai dis que j’aimais bien le travail des sœurs Watchoski ? — mais elle a aussi sa petite carrière dans le cinéma coréen puisqu’elle a tourné dans le très acclamé The host de Bong Joon-ho.

Bong Joon-ho, c’est un monsieur de cinéma coréen. Il a réalisé, notamment, The host, donc, mais aussi Memories of a murder, Parasite ou Snowpiercer. Ceci dit, je vous dit ça, mais le seul film de lui que je connaissais et que j’avais vu, c’est Snowpiercer... Et je savais même pas que c’était de lui[1]. Mais je digresse.

Gresse

Pardon…

Ceci dit, la série aussi possède ses ressors comiques un peu nuls mais toujours aussi drôles. Notamment le cliché du maire/prefet/chef/responsable politique un peu empoté et carrément pleutre, qui n’arrive pas à prendre des décisions, et s’approprie maladroitement celles des autres. Une ou deux blagues caca, aussi, parce que c’est pas parce qu’on réalise une série de zombies qu’on peut pas avoir une âme d’enfant <3. Et, entre les scènes d’humour grotesque, quelques scènes de tension, quelques scènes de bravoure, quelques plans qui ne dénatureraient pas dans un western spaghetti et quelques chorégraphies directement sorties des films de kung-fu hong-kongais. Le mélange passe très bien, d’autant que les ingrédients sont dosés avec une grande parcimonie et je sais même pas pourquoi je suis parti sur le champ lexical de la cuisine puisque la moitié des scènes de bouffe de la série vous donneront plutôt envie de gerber.

Bref, j’ai passé un excellent moment, emitoufflé dans ma couverture pilou, affalé contre ma chérie. La première saison se finit vite avec un compte de 6 épisode et la saison 2 ne semble pas vouloir en compter plus. Une série toute indiquée, donc, pour se regarder pendant un week-end de temps de chiottes comme ça l’était chez moi dimanche dernier.

Notes de bas de page :
  1. Ma chérie m’a tout appris <3

Démarrer un service selon une condition avec systemd

dimanche 1 mars 2020 à 11:00

Aujourd’hui présentation de quelques commandes puis mise en place d’un drop-in avec condition.

Une petite entrée en matière avec les documentations claires et de qualité d’Adrien de Linuxtricks.fr dont je ne dis pas assez de bien :
systemd : les commandes essentielles
systemd : Créer des services, timers (unités)

Contexte

Dans mon job je dois régulièrement migrer des clients d’un serveur VPS (Virtual Private Server, une machine virtuelle ou VM) vers un dédié (serveur physique). Cette semaine pour la première fois, j’ai migré un client d’un dédié vers un VPS.

Notre manière de procéder est de rsync la totalité du serveur du client vers la nouvelle machine (physique ou virtuelle) bootée en rescue. À la fin de la migration le client a vraiment la même configuration que précédemment. Cependant des services peuvent devenir inutiles et restent en erreur, par exemple le service smartd pour monitorer la santé des disques n’a plus d’intérêt si on est sur une machine virtuelle.

systemd-detect-virt

systemd fournit un outil peu connu permettant de détecter le contexte d’exécution du système dans un environnement virtuel. Sur un serveur physique il retournera none, sur une VM au boulot kvm, dans un conteneur Docker docker simplement avec la commande systemd-detect-virt. Pour lister les différentes technos de virtualisations reconnues systemd-detect-virt --list : none kvm qemu bochs xen uml vmware oracle microsoft zvm parallels bhyve qnx acrn vm-other systemd-nspawn lxc-libvirt lxc openvz docker podman rkt wsl container-other. Le man de cet outil et un court article pour aller plus loin (attention de 2013).

Cet outil permet donc aisément de modifier/scripter une action en fonction du contexte d’exécution mais on veut aller plus loin, faire en sorte que le service smartd ne démarre tout simplement pas si on est dans une machine virtuelle.

Drop-in et conditions

Un drop-in est le moyen employé sur systemd pour « surcharger » la configuration d’un service. Je donne toujours le même article en Français pour expliquer et s’initier aux drop-ins systemd, la documentation nécessitant une recherche sur le mot drop-in.

On va influencer le démarrage du service avec une condition, on en retrouve plus d’une vingtaine ici dont : ConditionArchitecture=, ConditionVirtualization=, ConditionKernelVersion=, ConditionFirstBoot=, ConditionPathExists=, ConditionUser=…

On retient ConditionVirtualization= pour savoir si on est dans un contexte d’exécution virtualisé/conteneurisé/physique/alien/mutant/inconnu/horrible. Avec systemd-analyze condition 'ConditionVirtualization=false' on peut tester notre condition (disponible à partir de systemd 243, Debian « Buster » 10 propose la 241).

systemd-analyze condition 'ConditionVirtualization=false' # Sur mon pc fixe
test.service: ConditionVirtualization=false succeeded.
Conditions succeeded.

Drop-in smartd

Rentrons maintenant dans le vif du sujet, nous allons modifier le fonctionnement du service smartd avec notre condition.

[Unit]
ConditionVirtualization=false

Voici les commandes à lancer. Seules les trois premières sont nécessaires, les deux dernières permettent juste de vérifier que la condition est fonctionnelle.

mkdir -p /etc/systemd/system/smartd.service.d/ # On crée le dossier pour notre drop-in systemd
nano /etc/systemd/system/smartd.service.d/smartd.conf # On renseigne notre drop-in systemd avec notre condition
systemctl daemon-reload # On recharge la configuration systemd
systemctl restart smartd # On redémarre le service smartd
systemctl status smartd # On vérifie si notre condition a été prise en compte et si le service a démarré ou pas

systemctl cat smartd a pour grande qualité de vous montrer la configuration par défaut du système (/lib/systemd/system/smartd.service), le drop-in configuré (/etc/systemd/system/smartd.service.d/smartd.conf) et leurs emplacements.

systemctl cat smartd
# /lib/systemd/system/smartd.service
[Unit]
Description=Self Monitoring and Reporting Technology (SMART) Daemon
Documentation=man:smartd(8) man:smartd.conf(5)

[Service]
EnvironmentFile=-/etc/default/smartmontools
ExecStart=/usr/sbin/smartd -n $smartd_opts
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=syslog

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/smartd.service.d/smartd.conf
[Unit]
ConditionVirtualization=false

Voici la sortie de la commande systemctl status smartd sur une machine virtuelle (donc smartd ne doit pas se lancer).

systemctl status smartd
● smartd.service - Self Monitoring and Reporting Technology (SMART) Daemon
   Loaded: loaded (/lib/systemd/system/smartd.service; disabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/smartd.service.d
           └─smartd.conf
   Active: failed (Result: exit-code) since Sat 2020-02-28 07:03:36 CET; 24s ago
Condition: start condition failed at Sat 2020-02-28 07:03:58 CET; 2s ago
           └─ ConditionVirtualization=false was not met
     Docs: man:smartd(8)
           man:smartd.conf(5)

Conclusion

On aurait pu utiliser systemctl edit smartd (à la place du mkdir -p /etc/systemd/system/smartd.service.d/ et nano /etc/systemd/system/smartd.service.d/smartd.conf) qui crée automatiquement le dossier /etc/systemd/system/smartd.service.d/ et le fichier override.conf qu’il ouvre en édition mais je suis pas fan, il est notamment pas foutu d’ouvrir un fichier nommé autrement que override.conf.

Les drop-ins systemd sont délicieux, je vous les recommande, je vous souhaite un bon dimanche et reste disponible dans les commentaires.

Les petites infos – Spécial NVMe

samedi 15 février 2020 à 13:00

Suivre les avancées technologiques est particulièrement difficile, je suis sysadmin et pourtant souvent largué. Ce n’est pas qu’il est difficile de comprendre une nouvelle techno, de prendre en main du nouveau matos. Avant tout la difficulté se situe autour de cette nouveauté : Nouveau paradigme, fonctionnement différent, nouveaux outils pour l’utiliser.

On va partir du NVMe. Techno matérielle récente et bas niveau (disque), certains en ont déjà sur leur pc, les hébergeurs web y passent massivement quand ce n’est pas déjà fait. Mon but étant qu’à la fin de cet article, vous ayez appris quelque chose même si vous pensiez tout savoir dessus.

Je vais donner beaucoup de liens sinon l’article serait infiniment trop long, il s’agit aussi du concept des petites infos (faire passer l’info sans aller trop loin). Libre à vous de creuser, d’apprendre. Sans suivre et lire ces liens, il est illusoire de prétendre connaître le sujet.

Bases et bas niveau

On commence simple : Tout savoir sur le NVMe.

Première difficulté il vous faudra un BIOS UEFI. L’info ne ressort pas de manière « importante » je trouve, il faut le savoir. Un BIOS classique ne prend pas en charge NVMe. Enfin… on peut bidouiller : Utiliser un SSD NVMe avec Linux, même sur un vieux serveur.

Sur les serveurs que j’utilise au boulot le BIOS est en mode Legacy, il faudra le passer en mode UEFI pour « booter » les disques NVMe. Vous avez là mon problème du moment, pour installer un serveur je dois aller modifier une option du BIOS systématiquement. Aucune autre solution, nous sommes en 2020. Il existe des outils fournis par le constructeur pour récupérer la configuration du BIOS et injecter la conf (modifiée) qu’on désire. Option soumise à une licence payante (pour chaque node/serveur)… LOL.

Une chose que vous ne savez probablement pas, on peut se passer de GRUB avec l’UEFI. L’avantage principal est que le démarrage (boot) va plus vite, le désavantage est que vous n’avez pas toutes les options et raffinements que vous amène GRUB. Déjà rappelons la différence entre Boot loaders et Boot managers (en Anglais). L’EFISTUB (ou EFI Boot Stub) est un boot loader intégré au noyau depuis la version 3.3.0. Je vous conseille la lecture chez Arch et celle chez Debian en Anglais (la famille ha ha ha). Enfin voici un article en Français sur Void Linux qui vous en apprendra davantage sur comment s’y prendre avec efibootmgr ainsi que Full disk encryption, dualboot et LVM.

Le lecteur pourrait se demander comment on part du NVMe et on en arrive à causer UEFI. Voilà ce que j’appelle autour. Naturellement en faisant le point sur une nouvelle techno, on fait le point sur beaucoup d’autres choses qui ont évolué ou qui sont arrivées avec. En tant que sysadmin je vais notamment m’interroger : Dois-je continuer à utiliser GRUB ou passer directement par EFISTUB ? Mais du coup pourquoi les distribs continuent à utiliser/proposer GRUB quand l’EFISTUB fait le job de boot (un début de réponse en Anglais) ?

nvme-cli

On vient de boucler la partie bas niveau, comment je récupère des infos dessus ? nvme-cli. Un petit sudo apt install nvme-cli plus tard, on liste les disques NVMe avec sudo nvme list et on récupère des infos intéressantes (genre température, warning, power cycles/hours…) avec sudo nvme smart-log /dev/nvme0. Pour connaître modèle, numéro de série et d’autres trucs très pointus : sudo nvme id-ctrl -H /dev/nvme0.

Vous avez toujours rien appris ? Bon attendez je sors mon joker.

Chiffrement

Le chiffrement est un sujet qui deviendra de plus en plus important pour protéger les données, la confidentialité et vie privée. En tant qu’utilisateur de Debian/Linux/NVMe je me demande : Au fait le chiffrement matériel avec les disques NVMe ?

Aujourd’hui on chiffre nos disques avec cryptsetup ou /home avec ecryptfs, du chiffrement logiciel. Le chiffrement matériel n’est pas encore grand public mais va tendre à le devenir avec les disques NVMe. Cette technologie de disques grand public étant la plus récente, elle amène de nouvelles spécifications/options dont TCG Opal, vous en apprendrez davantage avec What are Opal 2.0-Compliant SEDs ? et TCG OPAL et disques SED.

SED signifie Self-Encrypting Drives, il vous faut absolument lire l’article en Anglais sur ArchWiki pour comprendre les bases, les avantages et inconvénients de ces self-encrypting drives.

L’outillage s’appelle sedutil et vous trouverez ici comment chiffrer votre disque. Préalablement il vous faudra vérifier si votre SSD NVMe est pris en charge, deux moyens disponibles : Préparer un média bootable ou compiler sedutil. J’ai testé les 2, je vous donne le second.

sudo apt -y install autoconf build-essential g++
wget https://github.com/Drive-Trust-Alliance/sedutil/archive/master.zip
unzip master.zip && cd sedutil-master/
autoreconf -i
./configure
make
sudo nano /etc/default/grub # Ajouter libata.allow_tpm=1 ce qui donnera en gros GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.allow_tpm=1"
sudo update-grub
sudo reboot
cd sedutil-master/
sudo ./sedutil-cli --scan

Voici le retour sur mon pc fixe (Verify that your drive has a 2 in the second column indicating OPAL 2 support).

sudo ./sedutil-cli --scan
Scanning for Opal compliant disks
/dev/nvme0  2  Samsung SSD 960 EVO 250GB                3B7EDFV7
/dev/sda   12  Samsung SSD 850 PRO 256GB                EXM4JLPQ
/dev/sdb   No  ST2000DM006-2DM164                       CD45    
No more disks present ending scan

À l’heure actuelle je me suis arrêté là et je vais vous dire le fond de ma pensée sur sedutil et le chiffrement matériel des SSD :

On a fait un bon tour, j’ai testé une autre façon d’écrire, j’espère que vous avez apprécié mais surtout appris des choses. Je réponds aux questions dans les commentaires.

Tcho !