Prise en charge des disques et secteurs de grande taille dans Windows 8

Le système de fichiers est l'un des services les plus élémentaires fournis par un système d'exploitation et Windows possède l'un des systèmes de fichiers les plus avancés de tous les systèmes d'exploitation les plus répandus. Dans Windows 7, nous avons mis l'accent sur l'amélioration de la fiabilité, de la gestion et de la robustesse (par exemple, automatise entièrement l'ancienne notion de « défragmentation »). Dans Windows 8, nous avons renforcé ce travail en nous concentrant sur la flexibilité et la capacité. Bryan Matthew, gestionnaire de projet au sein de notre équipe Stockage et systèmes de fichiers, est l'auteur de ce billet.
--Steven

Nos collections numériques n'arrêtent pas de grandir à une vitesse toujours plus folle : les photographies numériques haute résolution, les films haute définition et les collections importantes de musique contribuent significativement à cette évolution. Les fournisseurs de disques durs ont répondu à ce défi en proposant des lecteurs de disque dur d'une capacité très élevée. Le rapport d'une étude de marché IDC récente estime que la capacité maximale d'un seul lecteur de disque dur pourra atteindre 8 To d'ici 2015.

En 2010, la capacité est de 2 To ; en 2011, de 3 To et elle augmente progressivement jusqu'à atteindre (selon les prévisions) 7 To en 2015

Évolution de la capacité maximale au fil du temps des lecteurs d'un seul disque
(Source : Étude IDC # 228266, Worldwide Hard Disk Drive 2011–2015 Forecast:
Transformational Times,
Mai 2011)

Dans ce billet, je vais expliquer l'évolution de Windows 8 par rapport aux offres des partenaires du secteur informatique pour que vous puissiez utiliser plus efficacement et pleinement ces lecteurs à très grande capacité.

Défis que représentent les lecteurs de disque dur à très grande capacité

Pour être un peu plus précis, nous désignons comme lecteurs de disque à « très grande capacité » ceux dont la taille est supérieure à 2,2 To (par disque dur). L'architecture actuelle de Windows présente certaines limites qui rendent ces lecteurs quelque peu difficiles à gérer dans certains cas.

Même alors que les fournisseurs de lecteurs de disque dur ont innové pour offrir des lecteurs à très grande capacité, deux défis majeurs ont demandé une attention accrue :

  • S'assurer que toute la capacité disponible est adressable, afin de permettre sa pleine utilisation
  • Soutenir les fournisseurs de lecteurs de disque dur dans leurs efforts pour gérer plus efficacement les disques physiques : tailles de secteur de 4 K (taille élevée)

Penchons-nous sur ces deux aspects plus en détail.

Prise en charge de la capacité disponible

Pour bien comprendre les défis que représente la prise en charge de l'intégralité de la capacité disponible sur des disques de très grande taille, nous devons approfondir les concepts suivants :

  • La méthode de prise en charge
  • Le modèle de partitionnement du disque
  • L'implémentation microprogramme dans le PC (BIOS ou UEFI)


La méthode de prise en charge

À l'origine, les disques étaient pris en charge à l'aide de la méthode CHS (Cylinder-Head-Sector, « Cylindre/Tête/Secteur ») qui vous permettait d'identifier un bloc de données spécifique sur le disque en spécifiant le cylindre, la tête et le secteur sur lequel il reposait. Je me souviens qu'en 2001 (lorsque j'étais encore dans le premier cycle du secondaire !), nous avons vu l'introduction d'un disque de 160 Go, qui marquait la limite de la méthode CHS d'adressage (à environ 137 Go) et les systèmes avaient besoin d'être reconçus pour prendre en charge des disques plus importants. [Remarque de l'éditeur : la taille de mon premier disque dur était de 5 Mo et il était aussi grand qu'une tour de PC. --Steven]

La nouvelle méthode d'adressage s'appelait BLA (Logical Block Addressing, Adressage de blocs logiques). Au lieu de faire référence aux secteurs à l'aide d'une géométrie discrète, un numéro de secteur (adresse de bloc logique) était utilisé pour faire référence à un bloc de données spécifique sur le disque. Windows a été actualisé pour utiliser ce nouveau mécanisme d'adressage de la capacité disponible sur les lecteurs de disque dur. Avec le modèle LBA, chaque secteur disposait d'une taille prédéfinie (jusqu'à 512 octets par secteur jusqu'à récemment) et les secteurs sont adressés par ordre croissant de façon régulière, du secteur 0 au secteur n où :

n = (capacité totale en octets)/ (taille du secteur en octets)

Le modèle de partitionnement du disque

Bien que l'adressage LBA permette en théorie d'accéder à des capacités arbitrairement élevées, en pratique, la valeur « n » la plus importante peut être limitée par le modèle de partitionnement du disque associé.

La notion de partitionnement du disque remonte au début des années 1980. À l'époque, les personnes responsables de la mise en œuvre du système ont déterminé qu'un disque dur devait être divisé en plusieurs partitions (sous-portions), qui pouvaient ensuite être formatées individuellement avec un système de fichiers, et finalement être utilisées pour stocker des données. Le modèle de la table de partition MBR (Enregistrement de démarrage principal) a été inventé à cette période. Cette table permettait à 32 bits d'informations de représenter la capacité maximale du disque. Une formule mathématique simple nous apprend que l'octet adressable le plus grand représenté via 32 bits est 232 ou 2,2 To. Bien sûr, dans les années 1980, cette limitation paraissait parfaitement légitime, étant donné que la taille du disque grand public le plus important à l'époque n'était rien moins que de 5 Mo et que son prix dépassait 1500 $ !

À la fin des années 1990, les personnes responsables de la mise en œuvre du système ont reconnu qu'il était nécessaire de dépasser la limite de 2,2 To (entre autres exigences). Plusieurs sociétés ont collaboré pour développer un modèle de partitionnement évolutif, nommé GPT (Table de partition GUID), dans le cadre de la spécification UEFI (Unified Extensible Firmware Interface). GPT permet à 64 bits d'informations de stocker le nombre qui représente la taille maximale d'un disque, ce qui à son tour permet un maximum théorique de 9,4 Zettaoctets (1 Zo = 1 000 000 000 000 000 000 000 octets).

Avec Windows Vista 64 bits, Windows a permis le démarrage à partir un disque dur partitionné GPT à une seule condition majeure : le microprogramme système doit être UEFI. Nous avons déjà parlé de l'UEFI, vous savez donc qu'il peut être activé sous forme d'une nouvelle fonctionnalité des PC Windows 8. Cela nous mène maintenant aux microprogrammes.

Implémentation microprogramme dans le PC (BIOS ou UEFI)

Les fournisseurs de PC incluent un microprogramme chargé de l'initialisation du matériel de base (entre autres) avant de remettre le contrôle au système d'exploitation (Windows). Les implémentations microprogramme BIOS (Basic Input Output System) « vénérables » existent depuis l'invention du PC, c'est-à-dire environ depuis 1980. Étant donnée l'importante évolution que les PC ont connue au fil des ans, la spécification UEFI a été conçue pour remplacer le BIOS et les implémentations existent depuis la fin des années 1990. La spécification UEFI a été entièrement conçue pour fonctionner avec des lecteurs de très grande capacité en utilisant la table de partition GUID ou GPT (même si certaines implémentations BIOS ont tenté de prolonger leur pertinence et leur utilité à l'aide de solutions adaptées aux lecteurs de très grande capacité (par exemple un modèle de partitionnement MBR-GPT hybride). Ces méthodes peuvent être très fragiles et faire courir des risques aux données. Par conséquent, Windows a constamment exigé que le microprogramme UEFI moderne soit utilisé avec le modèle GPT pour les disques de démarrage.

Avec Windows 8, plusieurs fonctionnalités nouvelles de Windows nécessiteront l'UEFI. La combinaison du microprogramme UEFI + le partitionnement GPT couplé au LBA permet à Windows de traiter pleinement et facilement des disques de très grande capacité.

Nos partenaires font tout ce qui est en leur pouvoir pour offrir des systèmes Windows 8 qui utilisent la spécification UEFI afin de tirer pleinement profit de ces fonctionnalités et scénarios innovants de Windows 8 (par exemple le démarrage sécurisé, le lecteur chiffré et le démarrage rapide). À la sortie de Windows 8, les nouveaux systèmes prendront sans doute en charge l'installation de Windows 8 sur un disque de 3 To ou plus, ainsi que le démarrage à partir de ce disque. Voici un aperçu :

Le lecteur C apparaît avec 2,71 To d'espace disponible sur 2,72 To

Windows 8 démarré à partir d'un lecteur SATA de 3 To avec un système UEFI

Tailles de secteur de 4 Ko (taille élevée)

Tous les lecteurs de disque dur incluent une certaine forme d'informations et de logique de correction des erreurs intégrées. Cela permet aux fournisseurs des lecteurs de disque dur de gérer automatiquement le SNR (Signal-to-Noise Ratio) en cas de lecture à partir des plateaux de disque. Au fur et à mesure que la capacité du disque augmente, les bits sur le disque sont de plus en plus proches les uns des autres et le SNR découlant de la lecture à partir du disque diminue. Pour compenser la diminution du SNR, chaque secteur du disque doit stocker plus de codes de correction d'erreur (ECC) pour équilibrer les erreurs de lecture du secteur. Les disques modernes en sont maintenant au point où la méthode actuelle de stockage des ECC ne constitue plus une utilisation efficace de l'espace. En d'autres termes, un espace important du secteur de 512 octets en cours est utilisé pour stocker les informations ECC au lieu d'être disponible pour le stockage de vos données. Cette situation, entre autres choses, a conduit à l'introduction de tailles de secteur plus importantes.

Tailles de secteur plus importantes : support de « format avancé »

Avec une taille de secteur plus importante, un modèle différent peut être utilisé pour encoder l'ECC ; ce modèle est plus efficace pour corriger les erreurs et utilise moins d'espace dans son ensemble. L'efficacité permettra de faire face à des capacités encore plus importantes dans le futur. Les fabricants de disques durs ont accepté d'utiliser une taille de secteur de 4 Ko, qu'ils appellent « Format avancé (AF) ». Ils ont introduit le premier lecteur AF sur le marché fin 2009. Depuis lors, les fabricants de disques durs ont rapidement fait évoluer leurs gammes de produits vers le support AF, avec l'espérance que tous les périphériques de stockage futurs utiliseront ce format.

Lire-Modifier-Écrire

Avec un disque AF, les données sont physiquement organisées en blocs de 4 Ko sur le support. Les mises à jour du support ne peuvent survenir qu'à cette granularité. Ainsi, pour que l'adressage de blocs logiques ait lieu dans des unités plus petites, le disque doit exécuter une tâche particulière. Les écritures réalisées dans les unités de la taille du secteur physique n'ont pas besoin de cette tâche particulière. Vous pouvez donc considérer la taille du secteur physique comme l'unité de l'atomicité du support.

Comme le montre l'illustration ci-dessous, un secteur physique de 4 Ko peut être logiquement traité avec des secteurs logiques de 512 octets. Afin d'écrire dans un seul secteur logique, le disque ne peut pas se contenter de se déplacer vers cette section du secteur physique pour commencer à écrire. Il doit à la place lire l'intégralité du secteur physique de 4 Ko dans un cache, modifier le secteur logique de 512 octets dans le cache, puis écrire dans l'intégralité du secteur physique de 4 Ko sur le support (en remplaçant l'ancien bloc). Cela s'appelle Lire-Modifier-Écrire.

Les disques dotés de cette couche émulation permettant de prendre en charge les écritures non alignées s'appellent émulation de 4 Ko avec 512 octets, ou « 512e » en abrégé. Les disques qui ne sont pas dotés de cette couche émulation s'appellent « 4K natifs ».

Un secteur physique de 4 Ko est représenté avec 8 groupes de 512 octets chacun. Étape 1 : lire un secteur de 4 Ko dans le cache du support. Flèche. Étape 2 : mettre à jour un secteur logique de 512 octets dans le cache (un des blocs de 512 octets est mis en surbrillance). Étape 3 : remplacer le secteur physique précédent de 4 Ko sur le support.

À la suite du processus Lire-Modifier-Écrire, les performances risquent de souffrir dans les applications et les charges de travail qui génèrent de grandes quantités d'écritures non alignées. Pour prendre en charge ce type de support, Windows doit s'assurer que les applications sont capables de récupérer la taille de secteur physique du périphérique et les applications (les applications Windows et les applications de tiers) doivent s'assurer qu'elles alignent l'E/S sur la taille du secteur physique signalée.

Conception adaptée aux disques de secteur volumineux

En s'appuyant sur certains des problèmes identifiés avec les versions précédentes de Windows, les disques AF ont constitué un élément de conception clé pour les nouvelles fonctionnalités et technologies et Windows 8. C'est pourquoi Windows 8 est le premier système d'exploitation offrant la prise en charge complète des deux types de disques AF : 512e et 4 K natifs.

Pour que cela ait pu avoir lieu, nous avons identifié quelles fonctionnalités et parties technologiques étaient les plus vulnérables par rapport aux problèmes potentiels décrits ci-dessus, puis nous avons contacté les équipes chargées du développement de ces fonctionnalités pour les aider à tester le matériel dans ces scénarios.

Voici quelques uns des problèmes résolus :

  • Introduction et amélioration de l'API existante pour mieux permettre aux applications de demander la taille du secteur physique d'un disque
  • Amélioration de la prise en charge des secteurs volumineux dans le système de fichiers NTFS, en s'assurant notamment du remplissage approprié des secteurs en cas d'écritures intensives (écriture jusqu'à la fin du fichier)
  • Incorporation de la prise en charge des secteurs volumineux dans le nouveau format de fichier VHDx utilisé par Hyper-V pour gérer pleinement les deux types de disques AF
  • Amélioration du code de démarrage de Windows pour qu'il fonctionne correctement lors d'un démarrage à partir de disques natifs de 4 Ko

Ce ne sont que quelques exemples du travail réalisé pour permettre la prise en charge totale des deux types de disques AF sous Windows 8. Nous collaborons également avec d'autres équipes de produits au sein de Microsoft et dans tout le domaine de l'industrie (par exemple les développeurs d'applications de bases de données) pour assurer un comportement efficace et correct des disques AF.

Pour conclure

NTFS dans Windows 8 tire pleinement parti des fonctionnalités offertes par nos partenaires du secteur informatique pour prendre en charge efficacement des disques de très grande capacité. Vous pouvez être certain que tous vos besoins en matière de stockage seront très bien pris en charge avec Windows 8 et NTFS !

/Bryan