Kent Overstreet a publié samedi soir un ensemble de 21 correctifs pour réviser le code de comptabilité du disque pour le système de fichiers Bcachefs. Ce changement rompt la compatibilité avec le format de comptabilité de disque existant et nécessitera donc une mise à niveau lors du passage à la nouvelle version, qui pourrait atterrir pour Linux v6.9.
Overstreet travaille depuis un certain temps sur cette réécriture de la comptabilité des disques Bcachefs et a publié ce week-end la première série de correctifs. Il a expliqué cette réécriture :
L’ancien système de comptabilité des disques était rapide, mais présentait certaines limites :
– manque d’évolutivité : il était basé sur des compteurs percpu fragmentés en outre par un tampon de journal exceptionnel, puis juste avant l’écriture du journal, nous regroupions les compteurs et les ajoutions à l’entrée de journal. Mais cela signifiait que tous les compteurs étaient ajoutés à chaque écriture de journal, ce qui signifiait qu’il ne serait jamais en mesure de prendre en charge les compteurs par instantané.
– c’était pénible à étendre, c’est pourquoi, jusqu’à présent, nous n’avions pas de comptabilité compressée appropriée, et obtenir le taux de compression nécessitait une analyse complète du btree
Dans le nouveau schéma :
– chaque ensemble de compteurs est une bkey, une clé dans un btree (BTREE_ID_accounting). cela signifie qu’ils ne sont pas épinglés dans le journal
– la clé a une structure et est extensible disk_accounting_key est une union étiquetée, et elle est simplement unionée via bpos
– les compteurs sont des deltas, jusqu’à ce qu’ils soient vidés vers le btree sous-jacent, cela signifie que les mises à jour des compteurs sont des mises à jour normales du btree ; le tampon d’écriture btree rend les mises à jour des compteurs efficaces.
Puisque la lecture des compteurs depuis le btree serait coûteuse – cela nécessiterait un vidage du tampon d’écriture pour obtenir des compteurs à jour – nous maintenons également un ensemble parallèle de comptabilité en mémoire, un peu comme l’ancien schéma mais sans le journal -partage de tampon. Les comptes en mémoire indexés dans un arbre Eytzinger par disk_accounting_key/bpos, les compteurs eux-mêmes étant des percpu u64s.
Cela rompt le format sur disque du système de fichiers et nécessite donc de régénérer la comptabilité lors de la mise à niveau (ou de la rétrogradation) au-delà de cette nouvelle version. Cela devrait se produire de manière transparente via fsck du noyau, mais il existe actuellement certaines limitations connues pour les utilisateurs de Linux 6.7. L’espoir est de pouvoir potentiellement préparer cette réécriture de la comptabilité du disque pour Bcachefs sous Linux v6.9.
Plus de détails sur ce nouveau code via la série de patchs.
2024-02-25 14:26:00
1708862220
#Bcachefs #publie #des #correctifs #pour #réécriture #comptabilité #des #disques