web-dev-qa-db-fra.com

La taille du secteur physique par défaut de 512 octets est-elle appropriée pour les disques SSD sous Linux?

GSmartControl et tout autre outil de ligne de commande (comme fdisk, smartctl, cat /sys/block/sd*/queue/hw_sector_size, cat /sys/block/sd*/queue/physical_block_size) J'avais utilisé le même rapport pour mes deux disques:

Sector Size: 512 bytes logical/physical

Il s'agit d'une installation par défaut d'Ubuntu 18.10 (mise à niveau ultérieure vers la version 19.04). Cependant, le stat -f commande sur les deux rapports de disques:

Block size: 4096       Fundamental block size: 4096

Mes deux disques sont des SSD et AFAIK les disques SSD nécessitent une taille de secteur de 4K. Est-ce correct ou ai-je raté quelque chose? Les informations renvoyées par stat (= 4K) garantissent-elles que le système d'exploitation envoie toujours des E/S au disque en plusieurs de 4K et ces blocs ne traverseront jamais les limites 4K (les blocs IO seront toujours alignés sur 4K)?

Veuillez noter la sortie suivante (sdb2 est ma partition racine , sda est mon /home disque):

# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....

Device       Start       End   Sectors  Size Type
/dev/sdb1     2048   1050623   1048576  512M EFI System
/dev/sdb2  1050624 500117503 499066880  238G Linux filesystem

# df / /home
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      244568380  17799136 214276188   8% /
/dev/sda       479670976 129685112 325550152  29% /home
10
FedonKadifeli

Autrefois, 512 secteurs d'octets étaient la norme pour les disques. Le système utilisé pour lire/écrire des secteurs un seul secteur à la fois, et c'était le mieux que les anciens disques durs pouvaient faire.

Maintenant, avec des lecteurs modernes si denses, si rapides et si intelligents, les secteurs de lecture/écriture ne ralentissent vraiment qu'un seul secteur à la fois.

L'astuce était ... comment accélérer le débit total, tout en conservant la compatibilité avec les sous-systèmes de disques anciens/standard? Vous créez une taille de bloc de 4096 composée de huit secteurs physiques de 512 octets. 4096 est maintenant le transfert de lecture/écriture minimum vers/depuis le disque, mais il est transféré dans des mandrins de 512 octets compatibles avec le système d'exploitation.

Cela signifie que même si le système n'a besoin que d'un seul secteur d'informations de 512 octets, le lecteur lit huit secteurs de 512 octets pour les obtenir. Si toutefois le système a besoin des sept secteurs suivants, il les a déjà lus, donc aucune E/S disque ne doit se produire ... d'où une augmentation de la vitesse du débit total.

Les systèmes d'exploitation modernes peuvent tirer pleinement parti des tailles de blocs 4K natives des disques modernes.

7
heynnema

Selon Wikipedia, "Advanced Format (AF) est tout format de secteur de disque utilisé pour stocker des données dans des lecteurs de disque qui dépasse 512, 520 ou 528 octets par secteur, tels que les secteurs de 4096 octets d'un lecteur de format avancé (AFD)." Le format avancé (AF) est un format de disque qui utilise nativement une taille de secteur de 4 096 octets au lieu de 512 octets. Pour conserver la compatibilité avec les systèmes hérités, les disques AF émulent une taille de secteur de 512 octets.

J'ai obtenu les mêmes résultats que vous avez obtenus en exécutant stat -f et smartctl sur deux SSD. Les deux SSD ont été automatiquement reconnus par le système d'exploitation lors de leur installation et n'ont nécessité aucune configuration, il apparaît donc que les données que vous avez obtenues sont les paramètres par défaut pour la taille de bloc et la taille de secteur.

4
karel

La taille du secteur physique par défaut de 512 octets est-elle appropriée pour les disques SSD sous Linux?

Mes deux disques sont des SSD et les disques SSD AFAIK nécessitent une taille de secteur de 4K. Est-ce correct ou ai-je raté quelque chose?

Les anciens matériels et systèmes d'exploitation utilisaient des secteurs de 512 octets, depuis 2011 (presque) tout le matériel de stockage a 4096 (ou plus gros ) secteurs d'octets; mais certains matériels prennent en charge l'émulation de secteurs de 512 octets pour les systèmes hérités. Il existe des exceptions, le Samsung 840 EVO SSD a des blocs de taille 2048 Ko .

Un code de correction d'erreur (ECC) est calculé pour chaque bloc de 512 octets, et comme vous pouvez l'imaginer, les données ECC nécessitent également de l'espace de stockage. Il va sans dire qu'un secteur de 4096 octets nécessite moins d'informations ECC que huit blocs de 512 octets si les algorithmes ECC restent inchangés. En fin de compte, la capacité de stockage totale d'un disque dur augmente en raison de la surcharge de données ECC.

L'utilisation de secteurs 4K est logique d'un point de vue architectural, car d'autres chiffres clés (comme les pages de mémoire x86 et de nombreux clusters de systèmes de fichiers) utilisent également la taille de 4 Ko. Le format avancé permet des algorithmes ECC plus robustes, ce qui est important compte tenu des capacités toujours croissantes. Les contrôleurs utilisent techniques supplémentaires au-delà de la correction d'erreur grâce à une compréhension des caractéristiques d'erreur de la mémoire flash NAND et du comportement de la charge de travail.

Le format avancé (AF) est tout format de secteur de disque utilisé pour stocker des données sur des disques magnétiques dans des disques durs (HDD) qui dépasse 512, 520 ou 528 octets par secteur, tels que les 4096, 4112, 4160 et 4224 octets ( 4 Ko) secteurs d'un lecteur de format avancé (AFD). Des secteurs plus grands permettent l'intégration d'algorithmes de correction d'erreurs plus solides pour maintenir l'intégrité des données à des densités de stockage plus élevées.

Pour les disques SCSI (SAS), la taille du bloc RAID est supérieure à la taille d'un bloc JBOD en raison de la normalisation SCSI T10 champs d'intégrité des données ainsi que de la vérification logique des blocs défectueux stockée sur chaque bloc contenant les données. Les adaptateurs SAS RAID prennent en charge les blocs de disques basés sur 512 octets de données ou 4K octets de données. La taille des blocs RAID pour les 512 disques est de 528 octets par secteur et la taille des blocs RAID pour les disques 4K est de 4224 octets par secteur.

Parce que vous écrivez dans la mémoire et non dans une taille de secteur physique de disque en rotation, cela a moins d'effet que en vous assurant que vos partitions sont alignées avec la taille du bloc d'effacement . Néanmoins, il est préférable d'avoir des logiciels et du matériel à jour et d'utiliser la taille du secteur 4K.

La plus grande taille de secteur est recommandée par Intel - " Gain Optimal Performance by Changes to SSD Physical Sector Size ".

1
Rob