Loic Tortay a écrit :
Le 4 août 2008 à 10:58:48 +0200, Pascal Hambourg a écrit :
Pas assez fiable. Un bloc accédé récemment peut avoir été libéré depuis,
et inversement un bloc occupé n'ayant pas été accédé depuis peut être
absent du journal qui n'a pas une profondeur infinie. Seul le système de
fichier le sait de façon fiable.
Il n'est pas non plus nécessaire d'avoir un journal très évolué, un
simple « bitmap » peut suffir.
Que signifierait chaque bit ? Si le bloc correspondant a été accédé au moins une fois ou non ? Ça ne règle pas le problème des blocs libérés.
Ceci dit, on pourrait imaginer une espèce d'API standardisée permettant
à un pilote de périphérique de bloc quel qu'il soit (disque, LVM, RAID)
de demander au pilote de système de fichier si un bloc est occupé, non ?
Je présume que l'argument contre ce genre de chose est que cela va à
l'encontre du sacro-saint découpage en couches indépendantes en vigueur
partout ou presque.
Pourtant les deux couches resteraient séparées, ce serait juste un ajout optionnel à leur interface de communication. Y aurait-il un problème à ce que la couche du dessous demande un service à la couche du dessus ?
Ce qui irait vraiment à l'encontre du découpage en couches, ce serait que le pilote de périphérique lise lui-même les méta-données du système de fichiers pour en déduire si un bloc est libre ou occupé.
C'est d'ailleurs l'un des reproches adressés à ZFS.
Tu m'étonnes.