Systèmes de fichiers : NTFS et ReFS, pensés d’abord pour l’entreprise

Systèmes de fichiers : NTFS et ReFS, pensés d’abord pour l’entreprise

Newer is not always better

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

06/07/2023 12 minutes
23

Systèmes de fichiers : NTFS et ReFS, pensés d’abord pour l’entreprise

Le NTFS a d’abord été pensé pour le monde professionnel et a permis de repartir d’une page blanche. Aujourd’hui, il est presque partout. ReFS est, quant à lui, arrivé beaucoup plus tard. Conçu pour les serveurs, il est maintenant utilisable sur les ordinateurs classiques, bien qu’il ait une orientation spécifique.

Lire notre dossier sur les systèmes de fichiers :

Le NTFS, 30 ans déjà

NTFS est apparu en 1993 avec la première version de Windows NT, estampillée 3.1, en écho au Windows 3.1 classique déjà présent. NT signifiait « New Technology » et représentait les efforts développés par Microsoft pour proposer une base logicielle plus fiable et taillée pour le monde professionnel. NTFS signifie donc « New Technology File System ». Sa première version est ainsi apparue trois ans avant la FAT32.

Avec NTFS, l’organisation et la gestion des données sont complètement différentes. Dans les systèmes FAT, l’organisation se faisait ainsi via des tableaux hiérarchiques, tandis que l’allocation se faisait via une liste chainée de blocs. Une vision essentiellement séquentielle de l’information.

En NTFS, tout se fait en arbres B, une structure initialement créée chez Boeing pour faire face aux problèmes causés par la taille croissante des index de données. Depuis sa première version, NTFS se sert de tels arbres pour indexer les données au fur et à mesure. Un formatage en NTFS implique également un secteur d’amorçage (PBS), une Master File Table gardant une trace de l’intégralité des données, ainsi que des métafichiers servant à de multiples besoins, comme des informations sur le volume en cours.

Aujourd’hui, avec une taille de bloc par défaut de 4 ko, NTFS peut formater des volumes ou partitions d’un maximum de 16 To, correspondant aussi à la limite de taille d’un fichier. Ensuite, en doublant la taille de bloc, on double ces limites. On peut même définir des tailles de 256, 512, 1 024 ou 2 048 ko. Avec des blocs de 2 Mo, la limite de volume/partition et de fichier est de 8 Po, soit 8 000 To.

Il s’agit cependant d’une limite théorique. En effet, selon les fonctions que l’on souhaite utiliser, des volumes aussi gros ne sont pas recommandés, voire pas disponibles. Par exemple, si vous voulez continuer à vous servir de la fonction « Versions précédentes », la taille du volume ne pourra pas dépasser 64 To. Même chose pour les applications ayant besoin du service Volume Shadow Copy. De manière générale, Microsoft recommande d’adapter la taille de la partition selon la charge des usages et les performances que l’on veut obtenir.

Fonctionnalités : loin, très loin devant la FAT32

En matière de fonctions, le NTFS ne joue absolument pas dans la même cour que la FAT32. Leur orientation et leur conception sont très différentes, et le système de fichiers s’est largement enrichi avec les années et les versions. La plupart des fonctions que l’on connait sont apparues cependant avec Windows 2000 (NT5).

NTFS est ainsi un système journalisé, tenant compte de tous les changements intervenant sur le disque ou le volume. Cette journalisation est préemptive, signifiant que les nouvelles entrées sont inscrites dans le journal avant que les opérations sur les fichiers aient lieu. En conséquence, ces dernières peuvent être retentées ou annulées en cas de problème, sans pertes de données. Dans le cas d’un plantage par exemple, le système lit les journaux à la recherche d’opérations débutées et non terminées, pour corriger le tir.

Le service Volume Shadow Copy (VSS) est l’une des fonctions les plus importantes de NTFS. Elle permet la sauvegarde automatique ou manuelle de fichiers, de dossiers ou de volumes, même quand ils sont en cours d’utilisation, via la création d’instantanés. Initialement temporaires dans Windows XP, ces instantanés (snapshots) sont devenus persistants à partir de Windows Server 2003. Lorsque VSS travaille sur un lot de données, les entrées/sorties sont brièvement figées, le temps que les informations nécessaires à une reconstitution soient stockées ailleurs, sur le même disque ou un autre.

Les Access Control Lists (ACL) sont une autre fonction importante de NTFS. Ce sont elles qui définissent les autorisations d’accès, que ce soit pour un fichier ou un dossier. Elles peuvent être appliquées localement (par exemple en cas de comptes multiples sur un même ordinateur) ou pour le partage en réseau. On peut trouver facilement les ACL : dans l’onglet Sécurité de la fenêtre Propriétés d’un fichier ou dossier. On y verra alors la liste des utilisateurs ou groupes d’utilisateurs avec, pour chacun, les droits afférents. Exemple classique : les droits d’écriture pour la personne propriétaire d’un fichier, et de lecture uniquement pour les autres.

Chaque ACL se compose de plusieurs champs, dont le SID de l’utilisateur ou du groupe, le type Access définissant l’action (lire, écrire, exécuter, etc.) et le type ACE, qui autorise ou interdit cette action. En ligne de commande, CACLS (apparue avec Vista) permet aussi de modifier les autorisations d’un fichier ou dossier.

Quotas, chiffrement et compression

Les quotas sont une fonction classique des systèmes de fichiers « modernes ». Comme leur nom l’indique, ils permettent d’affecter une certaine quantité d’espace disque à chaque utilisateur d’une machine. Le système est souple et permet par exemple de mettre en place des alertes automatiques pour l’administrateur, d’augmenter les plafonds, de générer des rapports sur l’utilisation, etc.

Encrypting File System est une autre capacité apparue avec Windows 2000. Elle ajoute des capacités de chiffrement dans NTFS, pour les fichiers et dossiers. Il fonctionne main dans la main avec les ACL, mais permet d’aller plus loin en bloquant l’accès aux informations si une personne non autorisée utilise la machine. Il s’agit d’un chiffrement symétrique, dont la clé générale est elle-même chiffrée par une clé publique associée au propriétaire des données.

Le déchiffrement se produit quand cette clé publique et la clé privée de l’utilisateur sont associées. Pour chiffrer un fichier ou un dossier, faites un clic droit sur l’élément puis Propriétés. Dans l’onglet Général, cliquez sur Avancé et cochez la case « Chiffrer le contenu pour sécuriser les données ».

NTFS

Notez qu’EFS est ancien et a été complété depuis plusieurs versions de Windows par un mécanisme supplémentaire, BitLocker. Arrivé avec Vista, il est dédié au chiffrement de partition ou intégral du disque et nécessite la présence d’une puce TPM 1.2 minimum dans l’ordinateur. Windows 10 et 11 Professionnel (ou Entreprise) le proposent systématiquement en fin d’installation, lors du premier démarrage. L’authentification de l’utilisateur (éventuellement via des facteurs multiples) est obligatoire pour déchiffrer les données. Bien que BitLocker s’appuie sur NTFS, il ne s’agit pas à proprement parler d’une de ses capacités.

NTFS contient aussi depuis longtemps un mécanisme de compression, qui n’est cependant plus guère utilisé aujourd’hui, depuis que l’espace de stockage est devenu beaucoup plus abordable. Cette compression (basée sur l’algorithme LZNT1, variante de Lempel-Ziv) est transparente et sans perte. Microsoft avait publié en 2016 certaines explications sur cette compression, notamment pourquoi le gain n’était en moyenne que de 25 %

Le mot-clé est « transparente », car les données présentées à l’utilisateur sont toujours sous leur forme décompressée, expliquant par exemple que l’empreinte (hash) d’un fichier compressé ne change pas. Les opérations sont en effet réalisées par le pilote à la volée. En conséquence, copier par exemple un fichier compressé vers une clé USB enverra la version décompressée. Pour compresser un fichier ou un dossier, il faut accéder au même panneau que précédemment et cocher la case « Compresser le contenu pour libérer de l’espace disque ».

NTFS supporte également d’autres fonctions plus spécifiques, comme des points de montage permettent de lier des volumes à des dossiers, ou encore un mode transactionnel que les applications peuvent exploiter pour renforcer l’intégrité des données pendant des manipulations particulières.

La défragmentation, c'est dépassé

Enfin, un mot sur la fragmentation. Le problème est moins important sur la NTFS que la FAT32, des mécaniques préservant plus longtemps la contiguïté des données. À partir de Windows 7 en outre, la défragmentation est devenue automatisée, le système profitant des périodes sans activité pour s’en occuper. Depuis les SSD et surtout le support de la fonction Trim, cette problématique n’en est plus vraiment une. Windows (toutes versions confondues) ne lance jamais de défragmentation sur les SSD. Le bénéfice serait mineur au détriment de la durée de vie du disque (à cause des nombreuses opérations d’écriture supplémentaires).

De manière générale, il n’y a plus depuis longtemps de débat entre FAT32 et NTFS, tant la fiabilité et les fonctions de ce dernier sont supérieures à l’ancien système. La question pouvait encore se poser quand Windows XP est arrivé, car les mécanismes de NTFS ont un léger impact sur les performances. Avec l’envolée des disques durs et de la taille des fichiers, la question ne se pose plus aujourd’hui. Depuis Vista d’ailleurs, le processus d’installation de Windows formate en NTFS, sans laisser de choix.

Contrairement à la FAT32, le NTFS est entouré de nombreux brevets et n’a rien d’une technologie libre. macOS peut uniquement lire les partitions NTFS, mais les distributions Linux peuvent également y écrire depuis le noyau 5.15 sorti en octobre 2021, grâce à un pilote fourni par Parangon. Il aura donc fallu de nombreuses années pour que cette capacité soit enfin disponible. Notons également l'existence de ntfs-3g, qui fournit des capacités de lecture et écriture à de nombreux systèmes, dont macOS et Linux.

ReFS, le dernier arrivé

ReFS, pour Resilient File System, annonce la couleur dès son nom. C’est le dernier arrivé des systèmes de fichiers chez Microsoft, dans Windows Server 2012. Il a également fait son entrée dans Windows 8.1 et est pris en charge par tous les Windows depuis. Il n’était cependant géré que pour des volumes secondaires (non-système), internes ou externes. Une future mise à jour de Windows 11 ajoutera le support de ReFS pour les disques système (mais sans doute uniquement sur les éditions Pro, Entreprise et Éducation). Nous allons voir d’ailleurs pourquoi il ne s’agissait pas d’une priorité pour l’éditeur.

ReFS a une orientation très spécifique. Il a avant tout été conçu pour les très grands espaces de stockage, chaque volume ou fichier pouvant grimper à un maximum de 35 Po, à comparer aux 256 To du NTFS (avec les outils standards). La plupart des fonctions structurelles de NTFS sont reprises, comme les liens physiques et virtuels), les ACL, les points de montage, les instantanés de volume, les allocations dynamique et partielle, la journalisation, etc.

En revanche, de nombreuses autres ne le sont pas, telles que la compression, le chiffrement, les transactions, les noms courts, les quotas, le support des médias amovibles et même… le boot (démarrage du système).

Pourquoi de tels écarts ? Car ReFS a été pensé pour les entreprises ayant leurs propres solutions de résilience et de disponibilité, qui peuvent dès lors venir se greffer sur un système de fichiers pensé pour ce type d’utilisation. ReFS propose en effet des fonctions qu’il est seul à posséder parmi les systèmes de Microsoft.

ReFS fournit par exemple une parité par mise en miroir et un cache dans les espaces de stockage direct (dans Azure). Il se veut également très adapté aux fichiers VHDX (machines virtuelles) en permettant le clonage de bloc et le VDL fragmenté (Sparse VDL, création plus rapide des disques virtuels par fragments). Pensé pour la mise à l’échelle (scaling), ReFS permet en outre des flux d’intégrité, des opérations de réparation en ligne ainsi que des instantanés au niveau du fichier. Il autorise ainsi la détection et la réparation conjointes des dégâts, à la fois dans les données et métadonnées.

Toutes ces fonctions sont apparues avec le temps, ReFS faisant régulièrement l’objet de mises à jour. La version 3.7 par exemple est apparue avec Windows 11 et Server 2022. Elle a ajouté, dans ce dernier, la gestion des instantanés au niveau du fichier.

ReFS n’est donc pas un système de fichiers pensé pour le grand public. Il est tourné vers le stockage de très grandes quantités de données et l’intégrité des informations. C’est d’ailleurs ce deuxième point qui a fait choisir ReFS à Microsoft pour les Dev Drives récemment annoncés à la Build.

Enfin, notez qu’à la différence de la FAT32, de l’exFAT et en partie du NTFS, Microsoft ne publie aucune spécification technique pour ReFS. Ce système de fichiers est, pour l’instant en tout cas, sa chasse gardée, même si Parangon Software propose un pilote propriétaire (et payant) pour Windows et Linux.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Le NTFS, 30 ans déjà

Fonctionnalités : loin, très loin devant la FAT32

Quotas, chiffrement et compression

La défragmentation, c'est dépassé

ReFS, le dernier arrivé

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (23)


Bonjour Vincent,
Vous n’avez pas évoqué NTFS-3g pour lire et écrire des partition NTFS depuis les OS suivant : Linux, Mac OS X, FreeBSD, NetBSD, BeOS, Haiku et MorphOS.
Il est sous licence GPL.
Bonne journée



(reply:2141550:Rodney McKay)




Ni le pilote NTFS3 dans le noyau linux depuis octobre 2021.



NT signifiait « New Technology » et représentait les efforts développés par Microsoft pour proposer une base logicielle plus fiable et taillée pour le monde professionnel.




Tout de même : des efforts largement inspirés de VMS, et d’une partie du travail sur OS/2. Dans le cas de NTFS, l’inspiration de Files-11 de VMS est flagrante, avec des ajouts issus du HPFS d’OS/2.


Ahhhh VAX/VMS ! J’ai eu l’occasion de toucher 1 ou 2 fois à ce système il y a 6-7 ans. Il m’a beaucoup marqué (en vrai).



L’ergonomie est son point fort si je m’en souviens bien (non :mdr: ).



Mais par contre d’une fiabilité a priori sans égale à l’époque.


J’ai même pas fait gaffe au type de FS utilisés sur les volumes que j’ai créé sur des WS2022… Est-ce que le ReFS a un intérêt quand c’est dans du VMFS6 ?



La ou il serait temps qu’ils changent, c’est la nomenclature des lecteur en C:, D:, … J’essaie d’abolir ces trucs sur les partages réseaux. Quand t’as un client qui te dit qu’il a perdu son “J” ou son “O”, on passe plus de temps a chercher sur quoi ça pointe. Mais c’est une autre histoire…


Je pense que ReFS sert aussi a démocratiser la virtualisation de l’espace de stockage, permettant ainsi de poursuivre la trajectoire voulue par Microsoft: du “traditionnel local/réseau” (windows 10) vers le “hybride PC/Cloud” (windows 11) et enfin le “cloud-only” (Windows 12).



Ca expliquerait que les specs de ReFS restent secrètes….


Prochain chapitre Ext4 et Brtfs??


HFS(+) et APFS :chinois:



(quote:2141550:Rodney McKay)
Bonjour Vincent, Vous n’avez pas évoqué NTFS-3g pour lire et écrire des partition NTFS depuis les OS suivant : Linux, Mac OS X, FreeBSD, NetBSD, BeOS, Haiku et MorphOS. Il est sous licence GPL. Bonne journée



EDG a dit:


Ni le pilote NTFS3 dans le noyau linux depuis octobre 2021.




Effectivement, alors que j’avais parlé de NTFS3 dans une actu sur Ubuntu 22.04 pourtant :chinois:



Tant qu’à faire, j’ai ajouté quelques mots sur ntfs-3g, même si l’idée était de s’en tenir au support natif.


Je ne résiste pas…
En quoi ntfs-3g ne serait pas natif au final, puisque le code est intégralement écrit pour systèmes UNIX, avec fuse qui est de base dans le noyau Linux ?
Par contre, le projet captive NTFS (dont les plus vieux se souviennent, ou pas… 2006, je ne pensais pas que c’était si vieux) n’était pas natif lui, vu qu’il chargeait le pilote windows ntfs.sys sous Linux avec l’aide de morceaux de Wine et de ReactOS… https://www.jankratochvil.net/project/captive/



EDG a dit:


Tout de même : des efforts largement inspirés de VMS, et d’une partie du travail sur OS/2. Dans le cas de NTFS, l’inspiration de Files-11 de VMS est flagrante, avec des ajouts issus du HPFS d’OS/2.




Il y a quand même un monde entre le côté “brut de fonderie” des systèmes VMS et un côté assez transparent (même élégant) de NTFS.



Parmi les raisons de la mauvaise presse de NTFS: ses perfs … mais qui étaient largement liées au départ à la mise à jour systématique de la date/heure de dernier accès ou de dernière écriture (de façon propagée hiérarchiquement). C’est généralement désactivé (depuis Vista) mais ça a fait sa réputation…


Wow, merci pour toute cette série sur les FS, je ne saurais te dire à quel point ces articles pédagogiques (et tous vos dossiers tech d’une manière générale) sont importants pour moi, depuis vos débuts j’ai beaucoup appris dans ces colonnes, dans d’autres cas il a suffit de quelques lignes, où même d’un commentaire, pour que je fasse mes propres recherches de mon côté et découvre de vraies pépites ! :love:
:inpactitude:



(reply:2141616:DantonQ-Robespierre)




:smack:


Jolie série !



Tant qu’à mentionner la MFT, peut-être noter son backup, MFTMirr, pour des raisons de robustesse (là où par exemple FAT a une seule FAT, donc en cas de corruption, c’est perdu)



Et peut-être une mention pour les meta-fichiers, comme \(MFT, \)Bitmap…



Exercice : ouvrir une console, taper “type C:\$MFT”. Tiens… “Access denied” et pas un truc du genre “File not found” ;)


On ne peut pas parler de tout, cet article est déjà très bien.



Moi ce qui m’intéresse, c’est surtout :




  • quel FS choisir selon quel support (SSD ou disque dur) pour un particulier (toutes tailles de fichiers) ?



  • comment fonctionne le flux d’intégrité de ReFS ?
    Comment détecte-t-on les fichiers corrompus et les répare-t-on ? Et avec des disques en miroir ? Faut-il utiliser le RAID1 de Windows ou ça marche avec une carte RAID ?




Goldoark a dit:


On ne peut pas parler de tout, cet article est déjà très bien.




Après sur des articles découverte des GS c’est bien je trouve de parler des particularités et possibilités au-delà du stockage de fichiers ‘basique’
vss est énorme, mais j’ai aussi utilisé les flux alternatifs de NTFS qui permettent de stocker des données liées au fichier.
NTFS permet aussi la dédup en mode bloc asynchrone (mais peut-être pas sur un disque bootable?)




Moi ce qui m’intéresse, c’est surtout :




  • quel FS choisir selon quel support (SSD ou disque dur) pour un particulier (toutes tailles de fichiers) ?




L’intérêt est de pousser la définition du besoin au delà de la taille de stockage et du nombre de fichiers (possibilités de sauvegarde, dédup)



tibubu257 a dit:



Mais par contre d’une fiabilité a priori sans égale à l’époque.




Oui, mais un peu lourd son fs. J’ai géré de l’ods-2:




  • Un répertoire est un peu comme un fichier qui aurait une taille… Mais on ne peut pas l’augmenter! Quand le répertoire est plein (et il ne prévient pas), il faut en faire un backup/restore pour l’étendre et seulement si on a une place contigüe suffisante sur le disque.

  • Quand on ouvre un fichier, par défaut la modification en créera une nouvelle version complète.

  • Par contre on gère la contiguïté des blocs, la taille des extensions de fichier, la taille d’origine et maxi d’un fichier fichier par fichier si l’on veut


Moui ça correspond bien au souvenir que j’en ai. Après je n’ai fait vraiment que toucher 1-2 fois pour de la maintenance (guidée). Donc je n’ai pas toutes les subtilités. Mais je sais que bien peut de personnes connaissent ce système.



les distributions Linux peuvent également y écrire depuis le noyau 5.15 sorti en octobre 2021, grâce à un pilote fourni par Parangon. Il aura donc fallu de nombreuses années pour que cette capacité soit enfin disponible. Notons également l’existence de ntfs-3g, qui fournit des capacités de lecture et écriture à de nombreux systèmes, dont macOS et Linux.




Non ça c’est faux, c’est NTFS-3 qui est sorti en 2021, il y a toujours (depuis un quart de siècle) eu deux supports dans le noyau: en rétrodoc du pilote windows d’abord, le premier support écriture de 1997 était incomplet (ça ne gérait pas toutes les fonctions type shadow copy et autre…), rapidement est apparu ntfs-3g qui au début utilisait le pilote windows donc n’était pas trop légal dans tous les pays, mais rapidement a été entièrement réécrit en code libre.
Depuis une vingtaine d’années, on avait deux pilotes NTFS : le pilote noyau officiel gérant partiellement l’écriture, le pilote ntfs-3g qui gérait parfaitement l’écriture mais n’était pas forcément bien vu par tous les libristes un peu extrémiste (d’un autre côté, ils ne devaient pas utiliser beaucoup NTFS :) ). Donc récemment le pilote historique a été remplacé par le nouveau NTFS-3 qui gère complètement l’écriture.


En tout cas, il y a toujours limitations un peu énervant sur le nommage des fichiers… J’ai souvent une impossibilité de copier des fichiers ou dossier depuis Linux parce que ça fini par un point ou qu’il y a une étoile dans le noms du fichier.



Après ça reste des formats incontournables Windows n’est pas encore de support natif de Ext4 et Brtfs.



D’ailleurs, Windows n’a toujours pas prévu de viré son système de lettres pour les disques ? Il me semble que maintenant, c’est juste un truc pour la rétrocompatibilité qu’il est encore là.



zefling a dit:


D’ailleurs, Windows n’a toujours pas prévu de viré son système de lettres pour les disques ? Il me semble que maintenant, c’est juste un truc pour la rétrocompatibilité qu’il est encore là.




Tu peux depuis longtemps monter des partitions/disques supplémentaires dans un dossier du disque principal (le C:), ce n’est pas très connu et pas très utilisé.
C’est en effet conservé pour la rétrocompatibilité et aussi, car ça ne coute pas cher sans pour autant dérouter les utilisateurs.