• 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

    Me voilà rassuré héhé! Voir le dernier message

    Grenouille le 07/10/2018 14h49
    sogal

    Boutique Alionet sur EnVenteLibre

    En fait c'est tout bête j'ai préparé les clés moi-même avant les RMLL, salon durant lequel j'ai... Voir le dernier message

    sogal le 07/10/2018 11h35