Espace réservé pour root sur un système de fichiers - pourquoi?

105

Je comprends que par défaut, les systèmes de fichiers nouvellement créés seront créés avec 5% de l’espace alloué pour root. Je sais aussi que vous pouvez changer l'espace défini avec:

tune2fs -m 1 /dev/sdXY

Ce qui m'intéresse cependant, c'est quel est le but réel de cet espace réservé. At-il une utilité pratique qui mériterait plus de 5% d’espace dans certaines circonstances?

La raison pour laquelle je suis tombé sur cette question est que nous avons récemment construit un magasin de fichiers de 1 To et que nous ne pouvions pas vraiment comprendre pourquoi un df -h nous avait laissé manquer de 5% de notre capacité.

adaptéupgeek
la source
1
Ok, maintenant c'est un gaspillage massif d'espace "indisponible". Peut-être que les 5% devraient être limités aux tailles de lecteur inférieures à X (par exemple 5% d’espace disque pour un maximum de 100 Mo).
Tshepang
3
Sur mon système de fichiers 8 To, 400 Go vient de disparaître - c'est le véritable gaspillage d'espace !! :)
Ilia Rostovtsev

Réponses:

102

L'économie d'espace pour les processus racine importants (et les éventuelles actions de secours) en est une des raisons.

Mais il y en a un autre. Ext3 est assez efficace pour éviter la fragmentation du système de fichiers, mais une fois que vous avez dépassé les 95%, ce comportement disparaît, et les performances du système de fichiers deviennent soudainement désastreuses. Donc, laisser 5% réservé vous donne un tampon contre cela.

Ext4 devrait être meilleur à ce niveau, comme l' explique le développeur / gourou du système de fichiers Linux Theodore Ts'o :

Si vous définissez le nombre de blocs réservés sur zéro, cela n'affectera pas beaucoup les performances, sauf si vous exécutez de longues périodes (avec beaucoup de fichiers créés et supprimés) tant que le système de fichiers est presque plein (c'est-à-dire supérieur à 95%), à quel point vous serez soumis à des problèmes de fragmentation. L'allocateur multi-blocs d'Ext4 est beaucoup plus résistant à la fragmentation, car il s'efforce beaucoup plus de trouver des blocs contigus. Ainsi, même si vous n'activez pas les autres fonctionnalités ext4, vous obtiendrez de meilleurs résultats simplement en montant un système de fichiers ext3 avec ext4 avant le système de fichiers. devient complètement plein.

Si vous utilisez uniquement le système de fichiers pour l'archivage à long terme, où les fichiers ne changent pas très souvent (par exemple, un énorme magasin de mp3 ou de vidéos), cela n'aura évidemment aucune importance.

mattdm
la source
3
Comme indiqué sur le site superuser.com/a/1257550/38062 , ces chiffres "90%" et "95%" ont pour origine des mesures effectuées dans les années 1980 par rapport aux FFS de Berkeley. Dans les décennies qui ont suivi, d’autres personnes ont contesté cette sagesse reçue maintes fois répétée.
JdeBP
1
Il n'y a pas d'atténuation des performances pour les utilisateurs normaux avec cet espace réservé. Ils n'auront tout simplement pas d'espace sur l'appareil plus tôt que prévu. La racine aura cependant assez de place pour résoudre le problème de remplissage du disque.
crististm
44

Si vous autorisez d'autres personnes à se connecter à votre système, via ssh, par exemple, le fait de réserver ces 5% de blocs garantit que les utilisateurs externes ne peuvent pas remplir le disque. Même si vous n'autorisez pas les autres utilisateurs à se connecter à votre système, les blocs réservés empêchent les programmes ne s'exécutant pas en tant que root de remplir votre disque.

LawrenceC
la source
Merci pour cela, vraiment lutté avec quelle réponse pour marquer comme correct - réponse upvoted comme c'était le premier et juste à côté, mattdm est marqué comme correct en raison de l'arrière-plan et des détails supplémentaires qui m'ont aidé à comprendre davantage le "Pourquoi".
Suitupgeek
22

Avec les blocs réservés à vos utilisateurs, et aux services qui s'exécutent en tant qu'utilisateurs spécifiques plutôt qu'en tant que root, vous ne pouvez pas remplir un système de fichiers et potentiellement casser d'autres choses qui doivent écrire sur ledit système de fichiers - bien que les services exécutés en tant que root puissent toujours le rendre complètement. plein de cours.

Cela vous donne également un peu d'espace pour travailler lorsque les utilisateurs se plaignent que le disque est plein ou que les services commencent à échouer parce que le système de fichiers est plein. Par exemple, vous pouvez archiver certains fichiers dans des archives zip / gz / 7zip avant de les supprimer (cependant, si le système de fichiers était complètement plein, il est possible que vous disposiez d'un autre système de fichiers dans lequel vous pourriez créer le fichier archive).

5% est la valeur par défaut depuis longtemps , depuis l'époque où les disques étaient beaucoup plus petits (des dizaines de mégaoctets plutôt que des centaines de giga-octets), de sorte que 5% n'était pas si grave. Heureusement, vous pouvez facilement réduire ce pourcentage, ou définir un nombre spécifique de blocs si vous utilisez tune2fsl' -roption de au lieu de -m. Dans les deux cas , vous pouvez donner un paramètre de 0 pour désactiver la réservation complètement - je ne ferais pas cela pour /, /tmp, /varet ainsi de suite, mais vous voudrez peut - être un système de fichiers qui agit uniquement en tant que stockage utilisateur ( par exemple un Fichier- global share) ou un fichier qui ne contient que des fichiers de taille fixe (tels que des machines virtuelles de taille fixe) qui ne grossissent que lorsque vous en créez un.

David Spillett
la source
22

La valeur par défaut de 5% est destinée aux partitions système. Par exemple, si votre espace disque est saturé, les journaux système ( /var/log) et la boîte aux lettres de root ( /var/mail/root) peuvent toujours recevoir des informations importantes. Pour une /homepartition de stockage de données générale, il n’est pas nécessaire de laisser de la place pour root. Pour des besoins spéciaux, vous pouvez changer l'utilisateur qui obtient l'espace d'urgence ( tune2fs -u 1234).

Il existe une autre raison de ne pas autoriser un système de fichiers ext [234] à se saturer, à savoir la fragmentation .

Gilles
la source