GSmartControl и любой инструмент другой командной строки (например fdisk
, smartctl
, cat /sys/block/sd*/queue/hw_sector_size
, cat /sys/block/sd*/queue/physical_block_size
) я использовал отчет об одинаковой для обоих моих дисков:
Sector Size: 512 bytes logical/physical
Это стандартная установка Ubuntu 18.10 (позже обновленная до 19.04). Однако stat -f
команда на обоих дисках сообщает:
Block size: 4096 Fundamental block size: 4096
Оба моих диска являются твердотельными дисками, а AFAIK SSD диски требуют сектора размером 4K . Это нормально или я что-то упустил? Гарантирует ли информация, возвращаемая stat
(= 4K), что ОС всегда будет отправлять ввод-вывод на диск кратными 4K, и эти блоки никогда не будут пересекать границы 4K (блоки IO всегда будут выровнены по 4K)?
Обратите внимание на следующий вывод ( sdb2
мой корневой раздел , sda
мой /home
диск):
# 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
источник
fdisk -l
для проверки проблем с выравниванием. И, видимо, работа SSD немного отличается из-за их физической конструкции, но я не эксперт в этой области.Ответы:
В старые времена 512-байтовые сектора были нормой для дисков. Система использовала для чтения / записи секторов только один сектор за раз, и это было лучшее, что могли сделать старые жесткие диски.
Теперь, когда современные накопители настолько плотные, быстрые и интеллектуальные, чтение / запись секторов только по одному сектору за раз действительно замедляет общую пропускную способность.
Хитрость была в том, как ... ускорить общую пропускную способность, но при этом поддерживать совместимость со старыми / стандартными дисковыми подсистемами? Вы создаете блок размером 4096, который состоит из восьми физических секторов по 512 байт. Теперь 4096 является минимальным переносом чтения / записи на / с диска, но он передается в совместимых 512-байтовых блоках в ОС.
Это означает, что даже если системе требуется только один 512-байтовый сектор информации, накопитель считывает восемь 512-байтовых секторов, чтобы получить его. Однако если системе нужны следующие семь секторов, она уже прочитала их, поэтому дискового ввода-вывода не требуется ... отсюда и увеличение общей пропускной способности.
Современные операционные системы могут в полной мере использовать преимущества стандартных дисков 4K для современных накопителей.
источник
parted
чтобы показать как логический, так и физический размер сектора.grub
помещает дополнительный код в первый Mibibyte для загрузки в режиме BIOS. (В GPTgrub
требуется небольшой раздел сbios_grub
флагом для загрузки этого кода в режиме BIOS).Согласно Википедии «Расширенный формат (AF) - это любой формат сектора диска, используемый для хранения данных на дисках, размер которых превышает 512, 520 или 528 байт на сектор, например, 4096-байтовые сектора диска расширенного формата (AFD)». Расширенный формат (AF) - это формат диска, который изначально использует размер сектора 4096 байт вместо 512 байт. Для обеспечения совместимости с устаревшими системами диски AF эмулируют размер сектора 512 байт.
Я получил те же результаты , как вы получили, запустив
stat -f
иsmartctl
на два SSD - накопителях. Оба твердотельных накопителя были автоматически распознаны ОС, когда они были установлены, и им потребовалась нулевая конфигурация, поэтому кажется, что полученные данные являются настройками по умолчанию для размера блока и размера сектора.источник
Старое оборудование и операционные системы использовали 512-байтовые сектора, с 2011 года (почти) все оборудование хранения имеет 4096 (или более ) байтовых секторов; но некоторые аппаратные средства поддерживают эмуляцию 512-байтовых секторов для устаревших систем. Есть исключения, Samsung 840 EVO SSD имеет блоки размером 2048 КБ .
Кода коррекции ошибок (ECC) рассчитывается для каждого 512 байт фрагмента, и , как вы можете себе представить, данные ECC также требует места для хранения. Само собой разумеется, что один 4096-байтовый сектор требует меньше информации ECC, чем восемь 512-байтовых блоков, если алгоритмы ECC остаются неизменными. В итоге общая емкость хранилища жесткого диска увеличивается в результате меньшего объема данных ECC.
Использование секторов 4K имеет смысл с архитектурной точки зрения, поскольку другие показатели (например, страницы памяти x86 и многие кластеры файловой системы) также используют размер 4 КБ. Расширенный формат позволяет использовать более надежные алгоритмы ECC, что важно в свете постоянно растущих возможностей. Контроллеры используют дополнительные методы помимо исправления ошибок посредством понимания характеристик ошибок флэш-памяти NAND и поведения рабочей нагрузки.
Расширенный формат (AF) - это любой формат сектора диска, используемый для хранения данных на магнитных дисках на жестких дисках (HDD), размер которых превышает 512, 520 или 528 байт на сектор, например 4096, 4112, 4160 и 4224 байта ( 4 КБ) секторов диска расширенного формата (AFD). Более крупные сектора позволяют интегрировать более надежные алгоритмы исправления ошибок, чтобы поддерживать целостность данных при более высокой плотности хранения.
Для дисков SCSI (SAS) размер блока RAID превышает размер блока JBOD из-за стандартизированных полей целостности данных SCSI T10 вместе с логической проверкой неправильных блоков, хранящейся в каждом блоке с данными. RAID-адаптеры SAS поддерживают дисковые блоки на основе 512 байт данных или 4 Кбайт данных. Размер блока RAID для 512 дисков составляет 528 байт на сектор, а размер блока RAID для дисков 4K составляет 4224 байта на сектор.
Поскольку вы выполняете запись в память, а размер физического сектора вращающегося диска не оказывает такого влияния, как обеспечение выравнивания разделов по размеру стираемого блока . Тем не менее, лучше иметь современное программное и аппаратное обеспечение и использовать размер сектора 4K.
Intel рекомендует использовать больший размер сектора - « Повышение оптимальной производительности за счет изменения размера физического сектора SSD ».
источник