Microsoft présente ReFS, le successeur de NTFS pour Windows 8 Server

L'éditeur a annoncé cette semaine que Windows Server 8 arrivera avec le support d'un nouveau système de gestion de fichiers baptisé ReFS. Ce nouveau venu, qui fournit des fonctions avancées de protection de données, a pour ambition de succéder à NTFS, un filesystem apparu pour la première fois en 1993 avec Windows NT 3.1...

Il y a quelques jours Microsoft avait déjà levé le voile sur Storage Spaces, une technologie de stockage censé doter Windows 8 de fonctions simples à utiliser de protection de données (par réplication ou duplication) et d'agrégation de volumes. Des fonctions rappelant étrangement certains concepts introduits il y a déjà plusieurs années dans Windows Home Server et finalement retirées sans explication de la dernière mouture de l'OS, Windows Home Server 8.

Toujours subtil dans sa communication (et parfois trop), Microsoft n'avait toutefois pas tout dit en annonçant Storage Spaces. Car le principal reproche fait à Windows en matière de stockage n'est pas l'absence des mécanismes de Storage Spaces, mais bien la pauvreté fonctionnelle et l'ancienneté du système de gestion de fichiers NTFS, un système vieux de près de 20 ans (lancé en 2003 avec Windows NT 3.1) et qui est bien loin des capacités de systèmes comme ZFS sur Solaris ou BTrfs sous Linux.

En finir avec NTFS

La pauvreté de NTFS est notamment un obstacle dans les déploiements virtualisés, où la couche stockage de Windows est en retard de plusieurs années lumières sur celle de VMware, pour ne citer que lui. Et ce point était particulièrement critiqué par les partenaires de l'écosystème Microsoft pour lesquels les Clustered Shared Volumes d’Hyper-V ne sont qu'un emplâtre sur une jambe de bois. Rappelons que NTFS n'avait jamais été conçu pour durer si longtemps puisqu'il aurait en principe du être remplacé au tournant des années 2000 par WinFS, un filesystem finalement jeté aux orties dans le cadre du fiasco du projet "Longhorn".

Microsoft a finalement entendu ces partenaires et annoncé cette semaine l'arrivée dans Windows Server 8 d'un nouveau système de fichier baptisé ReFS (pour "Resilient File System). Quelques points importants sont à souligner avant de s'intéresser aux spécificités de ce file system : Dans un premier temps, il ne sera disponible que sur la version serveur de l'OS et pas sur les versions clientes. Et si Microsoft indique qu'il sera d'emblée considéré comme prêt pour la production, ReFS ne pourra pas être utilisé sur les volumes de démarrage (ou "boot") et ne supportera pas les supports de stockage amovibles. Autant de capacités qui sont promises pour un futur plus lointain. ReFS devra donc continuer à cohabiter pendant un certain temps avec NTFS sur les systèmes serveurs de Microsoft.

Un filesystem conçu pour renforcer l'intégrité des données

Contrairement à WinFS, ReFS ne semble pas être doté de capacités sémantiques avancées mais semble avoir une approche très classique. Comme NTFS, ReFS s'appuie sur un système d'indexation de type B+Tree, un schéma d'organisation de données et d'index couramment utilisé par d'autres systèmes de gestion de fichiers comme ReiserFS ou XFS. En fait, c'est surtout sur les mécanismes avancés de protection de données de ReFS que Surendra Verma, l'un des ingénieurs de l'équipe File System et stockage de Microsoft, fournit des détails sur le blog "Building Windows 8" de Microsoft. ReFS calcule ainsi des checksums pour l'ensemble des métadonnées stockées sur le disque ( et optionnellement pour les données avec l'option "Integrity streams" activée). L'objectif est de s'assurer de l'intégrité des données et des métadonnées. En conjonction avec Storage Spaces, ReFS pourra aussi vérifier quelle version d'un fichier répliqué sur deux disques est la bonne afin de restaurer un fichier corrompu par une défaillance mécanique du disque.

Plutôt que de s'appuyer sur un mécanisme de journalisation des transactions, ReFS adopte un mécanisme de gestion des transactions sur le disque de type Copy on write afin d'éviter la corruption de métadonnées en cas d'incident comme une panne de courant. Les mécanismes de type Copy on write permettent d'éviter toute modification destructive des données sur le disque. Lorsqu'une donnée est mise à jour sur le disque, cette mise à jour ne se fait pas à l'emplacement originale de la donnée et ce n'est que lorsque l'écriture des données est terminée que les pointeurs sont mis à jour. De cette façon, on évite tout risque de corruption des données existantes en cas d'incident pendant la phase d'écriture de données.

À l’instar de ZFS, ReFS implémente aussi un mécanisme d'inspection régulière de l'état des données sur le disque (mécanisme dit de "scrubbing"), dont l'objectif est de combattre la corruption silencieuse des données liée à des problèmes magnétiques ou mécaniques sur les disques durs.

Des fonctions abandonnées sur l'autel de la modernité

Si ReFS met en œuvre des mécanismes nouveaux d'écriture et de contrôle des données, une large partie des interfaces au file System restent inchangée, ReFS reprenant pour cette partie de large portion du code de NTFS. De même le modèle de sécurité de ReFS reste le même que celui de NTFS. Cette approche "hybride" assure selon Microsoft une compatibilité maximale du nouveau système de fichiers avec les applications existantes et a du aussi singulièrement raccourcir la phase de test et de qualification du code du file system. Il est en effet hors de question pour Microsoft de mettre sur le marché un code qui pourrait mettre en péril les données de ses clients.

Cela ne veut toutefois pas dire que tout est rose. Tout d'abord, dans son effort de modernisation de son système de gestion de fichiers, Microsoft a abandonné certaines des fonctions de NTFS comme les "hard links" qui permettait à un fichier d'être accessible via de multiples chemins et sous différents noms. Les quotas de stockage disparaissent également, de même que certaines fonctions de compatibilité avec le système de nommage 8.3 de MS-DOS. ReFS ne supporte pas non plus les named Streams, ce qui pourrait poser des problèmes de compatibilités avec les clients Mac OS X.

Des fonctions manquantes par rapport aux filesystem concurrents

Par rapport à ces systèmes concurrents comme ZFS, plusieurs fonctions importantes sont manquantes comme les instantanés ("snapshots") en mode copy on write, le support de la compression ou de la déduplication, ainsi que la gestion avancée de la protection de données (une fonction partiellement assumée par Storage Spaces).

De même, aucune information n'est fournie quant à l'éventuelle aptitude de ReFS à utiliser intelligemment des architectures de stockage hybrides (combinant SSD et disques durs). A l'heure, où les architectures à base de mémoire Flash (sous forme de SSD ou de cartes PCI-e) commencent à se banaliser dans les systèmes d'entreprise, un tel "oubli" serait fâcheux.

Enfin Microsoft se garde bien pour l'instant de fournir des indications sur la performance de ReFS. Il faudra donc sans doute attendre encore quelques mois afin d'y voir plus clair et pour voir comment Microsoft entend tirer parti des nouvelles capacités du couple ReFS et Storage Spaces dans ses produits serveurs. par exemple, ReFS supporte les architectures en cluster et devrait donc être un compagnon de choix pour Hyper-V.

Les principales caractéristiques et limites de ReFS

Attribut

Limites liées au filesystem

Taille maximale d'un fichier

2^64-1 octets

Taille maximale d'un volume

2^78 octets avec des clusters de 16Ko. Windows ne permet toutefois d'adresser que 2^64 octets

Nombre maximal de fichiers dans un répertoire

2^64

Nombre maximal de répertoires dans un volume

2^64

Longueur maximal d'un nom de fichier

32 000 caractères unicode

Longueur maximal d'un chemin de fichier

32K

Taille maximal d'un pool de stockage

4 Po

Nombre maximal de pool de stockage dans un système

Pas de limite

Nombre maximal de "Spaces" dans un pool de stockage

Pas de limite

Pour approfondir sur Windows