• openSUSE change son « partitionnement » Btrfs

    Depuis sa version 13.2, openSUSE utilise Btrfs par défaut. Une des forces de ce système de fichiers est de pouvoir être divisé en sous-volumes instantanément copiables sous forme de snapshots en lecture-seule. Ces « clichés » peuvent alors être utilisés comme des points de restauration du système, permettant ainsi de revenir en arrière en cas de problème. En ce début d'année 2018, openSUSE change la liste-type de ses sous-volumes Btrfs. C'est beaucoup plus simple maintenant !

    Le partitionnement Btrfs traditionnel

    Afin de proposer sa fonctionnalité de « point de restauration », openSUSE utilise Btrfs pour sa partition racine avec de nombreux sous-volumes :

    Code:
    ~# btrfs subvolume list /
    ID 257 gen 184 top level 5 path @
    ID 258 gen 971 top level 257 path @/.snapshots
    ID 259 gen 985 top level 258 path @/.snapshots/1/snapshot
    ID 260 gen 184 top level 257 path @/boot/grub2/i386-pc
    ID 261 gen 184 top level 257 path @/boot/grub2/x86_64-efi
    ID 262 gen 972 top level 257 path @/home
    ID 263 gen 184 top level 257 path @/opt
    ID 264 gen 925 top level 257 path @/srv
    ID 265 gen 984 top level 257 path @/tmp
    ID 266 gen 925 top level 257 path @/usr/local
    ID 267 gen 927 top level 257 path @/var/cache
    ID 268 gen 184 top level 257 path @/var/crash
    ID 269 gen 184 top level 257 path @/var/lib/libvirt/images
    ID 270 gen 184 top level 257 path @/var/lib/machines
    ID 271 gen 184 top level 257 path @/var/lib/mailman
    ID 272 gen 184 top level 257 path @/var/lib/mariadb
    ID 273 gen 184 top level 257 path @/var/lib/mysql
    ID 274 gen 184 top level 257 path @/var/lib/named
    ID 275 gen 184 top level 257 path @/var/lib/pgsql
    ID 276 gen 986 top level 257 path @/var/log
    ID 277 gen 184 top level 257 path @/var/opt
    ID 278 gen 986 top level 257 path @/var/spool
    ID 279 gen 984 top level 257 path @/var/tmp
    ~#
    Pourquoi tant de sous-volumes ?

    Deux raisons simples :

    1. Un snapshot Btrfs correspond à un et un seul sous-volume. Il n'est pas possible de prendre un cliché de plusieurs sous-volumes en même temps. Conséquence : il faut que tout ce que l'on souhaite restaurer du système soit sur un et un seul sous-volume.
    2. Il n'est pas souhaitable de restaurer tout le contenu d'une machine. Par exemple :
      • Il est préférable que les journaux ne soient pas remis à une version antérieure, afin de pouvoir analyser ce qu'il s'est passé avant restauration.
      • Il est préférable que les données d'une base de données ne soient pas effacées suite à une restauration du système. Données ≠ système.
      • Les fichiers temporaires et les divers caches ne sont pas intéressants et ne font qu'augmenter la taille des snapshots.

      Conséquence : il faut créer des sous-volumes spécifiques pour empêcher le snapshot de ces données.

    D'où le nombre important de sous-volumes à l'installation. L'existence de chacun des sous-volumes est justifiée dans le wiki.

    Beaucoup auront noté que /var semble être l'emplacement qui pose le plus de problèmes. En effet, il mélange des données pertinentes et d'autres non-pertinentes pour un snapshot du système.

    Le problème de /var


    /var contient des données variables, d'où son nom. Typiquement : des bases de données, des caches, des journaux, … L'idée à la base c'était de pouvoir avoir /usr en lecture-seule et /var en lecture-écriture. Enfin je crois.

    Le problème, c'est que ces données variables sont mélangées. Elles peuvent aussi bien concerner disons le cœur du système – typiquement la base de données RPM – que des applications – par exemple une base de données SQL pour un serveur web.

    Cela pose problème quand on réfléchit à ce que l'on souhaite restaurer et cela indépendamment du système de fichiers utilisé. L'objectif d'openSUSE est de :

    • fournir une configuration par défaut qui est capable de restaurer « le système », pas le reste.
    • fournir des outils tels que snapper à l'utilisateur-administrateur pour qu'il puisse facilement configurer SON reste.


    openSUSE a donc entrepris de déplacer dans /usr les données dites variables mais dont le contenu de /usr dépend :

    • le déplacement de la base de données RPM de /var/lib/rpm à /usr/lib/sysimage/rpm ;
    • le déplacement des modèles de configuration de /var/adm/fillup-templates à /usr/share/fillup-templates.


    Ces changements rendent inutiles la séparation en plusieurs sous-volumes de /var : var peut maintenant être un sous-volume à part entière car plus rien n'y est nécessaire pour un snapshot du système.

    Le nouveau partitionnement Btrfs

    Le voici :

    @ Le sous-volume où sont mis tous les autres sous-volumes.
    Attention, ce n'est pas ce sous-volume qui est monté sur / !
    Il ne fait que contenir les autres sous-volumes.
    @/boot/grub2/i386-pc Le chargeur d'amorçage. La restauration du chargeur d'amorçage n'est pas prise en charge.
    @/boot/grub2/x86_64-efi Même chose, mais pour la version EFI de grub.
    @/opt opt, c'est tous les trucs de vendeurs tiers.
    On ne veut pas qu'une restauration du système puisse impacter cet emplacement.
    Cela ne fait pas partie du système à proprement parler.
    @/srv Données pour les serveurs Web et FTP.
    @/tmp Données temporaires.
    @/usr/local C'est un emplacement où on installe des choses manuellement.
    C'est donc au delà du système de base, on ne veut pas qu'une restauration y mette le bazar.
    @/.snapshots C'est là où sont rangés les instantanés.
    C'est l'un d'eux qui est monté sur / (@/.snapshots/1/snapshot par défaut).
    @/var Notre var, contenant des données variables.
    Maintenant débarrassé de ses nombreux sous-volumes !
    @/home Optionnel, ce sous-volume est présent seulement s'il n'y a pas de partition séparée montée sur /home.

    openSUSE Tumbleweed suit cette disposition depuis la version 20180117, du moins pour les nouvelles installations.

    openSUSE Leap 15.0 suivra cette disposition.

    Si vous souhaitez mettre à jour votre openSUSE Tumbleweed vers ce nouveau modèle, rendez-vous à la page suivante !

    Commentaires 6 Commentaires
    1. Avatar de Doctor Who
      Doctor Who -
      Très intéressant ! Merci pour cet article qui a du demander du travail
    1. Avatar de sogal
      sogal -
      Merci pour cet article !
    1. Avatar de Syvolc
      Syvolc -
      Oui, très intéressant et très clair. Merci beaucoup.
    1. Avatar de niuxe
      niuxe -
      Effectivement, très intéressant. merci !
    1. Avatar de marc.collin
      marc.collin -
      mise à part le boot... j'ai pareil.... je l'ai installé il y a moins de 3 mois....
    1. Avatar de Antoine
      Antoine -
      Citation Envoyé par marc.collin Voir le message
      mise à part le boot... j'ai pareil.... je l'ai installé il y a moins de 3 mois....
      Tu peux préciser ce que tu veux dire ?

      L'installateur de Tumbleweed n'a pas pu te proposer un sous-volume @/var si tu as installé Tumbleweed avant le snapshot 20180117.

      Si tu as fait un partitionnement personnalisé au moment de ton installation pour créer un sous-volume @/var, voire une partition séparée, alors c'était une erreur si tu comptais faire des restaurations du système : un rollback n'aurait pas pu te donner quelque chose de consistant tant que la base de données RPM était dans /var/lib/rpm. Celle-ci n'aurait pas été restaurée car elle n'aurait pas été dans le snapshot, étant exclue du sous-volume par défaut.

      Après en vrai ça fait un petit moment qu'elle a été déplacée, en semaine 45 de l'an dernier. Mais il y avait aussi les templates qui étaient sous /var/adm/fillup-templates qui ont fini d'être déplacés que plus récemment.
  • Dons / Adhésion


    Dons
    Si vous aimez notre site web et que vous voulez participer financièrement, vous pouvez nous faire un don grâce à PayPal.


    Choisissez votre somme, et cliquez sur le bouton "donate" ci-dessous.



    Adhésion
    Si vous désirez être membre de notre association, vous pouvez aussi adhérer grâce à PayPal.


    Cliquez sur le bouton "PayPal" ci-dessous.

  • SUSECon 2017

     
    SUSEcon 2017
     
     
  • Derniers commentaires d'articles

    Grenouille

    Boutique Alionet sur EnVenteLibre

    Un live Gnome et pas de live KDE? Tssss... Voir le dernier message

    Grenouille le Hier 21h05
    sogal

    Extension de la durée de vie d'openSUSE Leap 42.3

    Tout à fait! C'est rectifié, merci. Voir le dernier message

    sogal le 10/09/2018 13h34
    Grenouille

    Extension de la durée de vie d'openSUSE Leap 42.3

    Juin, pas janvier! :) Voir le dernier message

    Grenouille le 07/09/2018 19h19