Pourquoi la fragmentation de l’espace libre ralentit-elle un NAS domestique avant qu’il ne soit plein ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Un NAS domestique peut ralentir avant d’être plein, car l’espace libre restant peut être abondant en total, mais difficile à allouer en plages contiguës utiles.

Les suppressions laissent des trous de différentes tailles dans le pool. Les nouveaux fichiers, les mises à jour copy-on-write, les bandes de parité et les instantanés ne peuvent pas toujours réutiliser ces trous efficacement. L’allocateur passe plus de temps à chercher, les écritures volumineuses sont divisées en plus d’étendues, et l’indicateur de capacité semble toujours confortable car il compte les octets libres plutôt que leur forme.

Le pool manque d’étendues utiles avant de manquer d’octets libres

La fragmentation de l’espace libre décrit comment la capacité disponible est répartie. Dix gigaoctets dans une région ne sont pas équivalents à dix gigaoctets divisés en milliers de petits espaces lorsque la charge de travail nécessite de longues étendues séquentielles. L’allocateur peut satisfaire les deux demandes, mais la version fragmentée crée plus de mappages et une localité physique moins prévisible.

C’est pourquoi le pourcentage utilisé et la fragmentation sont des signaux distincts. Les propriétés de capacité et de fragmentation du pool rapportent différents aspects du même état de stockage ; aucun des deux chiffres ne prédit seul la latence des applications.

Les suppressions créent des trous que les nouvelles écritures ne peuvent pas toujours réutiliser

Un fichier supprimé libère ses étendues seulement lorsqu’aucun instantané, clone ou référence ouverte ne les possède encore. Même dans ce cas, la nouvelle écriture peut nécessiter un alignement différent ou une étendue plus grande. Les petites régions libérées peuvent convenir aux métadonnées tout en restant inadaptées pour une grande archive ou une étendue de base de données.

À mesure que les choix se réduisent, un allocateur peut passer d’une sélection rapide à une recherche plus coûteuse. OpenZFS décrit comment les conditions de faible espace libre modifient le comportement d’allocation dans ses recommandations sur l’espace libre et l’allocation. Le seuil exact dépend de l’implémentation, donc un pourcentage fixe doit être considéré comme une marge d’exploitation, pas comme une limite universelle d’échec.

Le copy-on-write fait vieillir différemment la carte de l’espace libre

Le copy-on-write ne réécrit pas un bloc existant. Il alloue un nouvel emplacement, écrit le contenu modifié, met à jour les métadonnées, et libère l’ancien emplacement seulement lorsqu’il n’est plus référencé. Cela préserve les instantanés et la cohérence en cas de panne, mais les modifications répétées peuvent disperser les nouvelles versions dans tout le pool.

Une explication claire du copy-on-write relie les anciens blocs immuables à la nouvelle allocation, tandis qu’une note de conception de système de fichiers sur la fragmentation à long terme du copy-on-write montre pourquoi la disposition peut devenir moins séquentielle à mesure que les mises à jour s’accumulent. Les instantanés peuvent prolonger cette période en maintenant les anciennes étendues indisponibles pour réutilisation.

Support de stockage ou disposition Coût de fragmentation visible Symptôme typique d’un NAS domestique
Disque dur unique Plus de mouvements de tête entre étendues Vitesse séquentielle plus faible et recherche audible
Pool de parité HDD Écritures fractionnées plus travail de parité Vitesse de transfert inégale lors des mises à jour
Pool SSD Plus de mappages, métadonnées et travail de collecte des déchets Latence élevée en queue sous écritures soutenues
Pool CoW avec beaucoup d’instantanés Anciennes étendues toujours référencées L’espace libre revient plus tard que prévu

Les HDD et SSD exposent différentes facettes du problème

Sur un HDD, les étendues fragmentées augmentent directement les recherches mécaniques, donc un gros fichier peut se lire bien en dessous de son débit séquentiel initial. Les SSD éliminent le mouvement de tête mais pas les recherches de l’allocateur, les changements de mappage, le trafic des métadonnées ou le nettoyage interne du flash. La fragmentation peut donc rester un problème de latence même lorsque l’appareil offre des lectures aléatoires rapides.

La parité et la compression ajoutent d’autres contraintes car le stockage peut s’allouer autour des limites de bandes ou des enregistrements compressés variables. Une recherche sur la fragmentation dans le stockage d’objets volumineux montre que la taille des objets et le modèle de mise à jour comptent ensemble. Un benchmark basé uniquement sur un pool vide ne peut pas représenter cet état d’allocation vieilli.

La marge de capacité est une ressource d’allocation

L’espace libre offre des choix à l’allocateur. Plus il y a de choix, plus il est facile de placer un fichier en croissance dans de longues étendues, de répartir les mises à jour copy-on-write, et d’absorber la maintenance sans réutiliser immédiatement des trous étroits. C’est la raison technique de laisser une marge ; ce n’est pas seulement un avertissement sur le dernier octet.

Ne transformez pas la recommandation courante de 80 % en loi. Une analyse destinée aux utilisateurs sur la marge de pool et le comportement de l’allocateur est un contexte utile, mais un NAS domestique doit être jugé selon sa métrique réelle de fragmentation, la rétention des instantanés, la charge de travail, la disposition des appareils et la tendance de latence. L’augmentation du temps d’allocation avant la pleine capacité est l’avertissement observable.

FAQ

La suppression d’un gros fichier peut-elle défragmenter un pool NAS ?

Elle peut créer une grande étendue libre utile si aucun instantané ne conserve les blocs, mais elle ne réorganise pas les fichiers existants ni ne garantit que les allocations futures resteront contiguës.

La fragmentation de l’espace libre est-elle la même chose que la fragmentation des fichiers ?

Non. La fragmentation des fichiers décrit un fichier divisé en plusieurs étendues. La fragmentation de l’espace libre décrit la forme des régions non allouées. Les deux s’influencent mutuellement mais peuvent évoluer indépendamment.

Un SSD éliminera-t-il le ralentissement ?

Il supprime le coût des recherches mécaniques, pas celui de l’allocation du système de fichiers, des métadonnées, du copy-on-write, de la parité ou de la collecte des déchets flash. Le symptôme peut diminuer ou se déplacer vers la latence en queue plutôt que disparaître.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.