Les petites infos – Spécial NVMe

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 :

  • Je vous invite à lire cette issue : Pas de commit depuis 2 ans, en gros on fournit à la communauté une implémentation de référence et on communique dessus ensuite démerdez-vous. Quelques devs ont proposé des évolutions/corrections, à titre personnel mon ressenti est que ça part dans tous les sens et que ça n’a pas été assez « incubé »
  • Exemple le site https://sedutil.com/ on pourrait se dire que ça vient de l’implémentation de référence mais non, un des devs (https://github.com/ChubbyAnt/sedutil) a pris le nom de domaine et propose son implémentation/outil
  • On parle de chiffrer la totalité de son disque avec une solution basique / peu maintenue, mon radar à bullshit me dit on va attendre de voir comment ça évolue et les premiers retours « en prod »
  • Encrypting Your Ubuntu Operating System Using a SED Hard Drive chez Dell, le genre d’indices montrant que les industriels commencent à soutenir ces outils
  • SSD : des failles permettent de contourner le chiffrement du disque (11/2018)
  • Pour résumer je surveille cela de près car entre chiffrement matériel et logiciel, je signe de suite pour le matériel avec un minimum de garanties : Fiabilité, projet maintenu avec une bonne visibilité, sécurité…

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 !

Vus : 347
Publié par blog-libre : 133