Допустим, у нас есть блочное устройство (например, Жесткий диск) с размером сектора 4096 байт и без эмуляции 512 байт (жесткий диск распознает только блоки размером 4096 байт).

Можно ли отформатировать устройство с файловой системой, которая имеет логический блок 512 байт? Как fs будет использовать дисковые блоки? Я имею в виду, что он просто будет использовать 512 байт из 4096 байт, а остальные будут потрачены впустую (однозначное отображение между секторами диска и блоками fs)? Я предполагаю, что если файловая система знает об этой проблеме, он может сам выполнить какую-то эмуляцию 512 байт (чтение сектора диска, изменение части 512 байт в ОЗУ, а затем запись сектора обратно на диск), хотя будут некоторые издержки или избыточность работать на каждую запись. Я не совсем уверен, имеет ли это смысл! Поправь меня пожалуйста.

1 ответ1

0

Такая конфигурация возможна, но она не очень распространена. Все основные файловые системы (NTFS, FAT32, ext4, btrfs ... и т.д.) Используют блоки по 4 КБ, которые соответствуют наиболее часто используемой конфигурации размера страницы памяти (страницы 4096 байт). Диски до этого десятилетия использовали 512 физических секторов, но все современные жесткие диски (и даже твердотельные накопители) используют 4 КБ физических секторов (из-за проблем с воздушной плотностью), но потому что существует большой унаследованный программный стек, который имеет предположение 512 байт на блочных устройствах (Windows Vista Windows XP, Linux Kernel до версии 2.6 и многие другие пользовательские утилиты и встроенные приложения) производители жестких дисков реализуют так называемую эмуляцию 512 байт, которая предоставляет программному обеспечению (операционная система) размер сектора 512 байт, но использует базовый размер сектора 4096 байт.

XFS может быть настроен на использование блоков по 512 байт, но если вы хотите (я говорю с собой !!?) Чтобы использовать эту конфигурацию на дисках 4096b, вы должны убедиться, что ваши разделы хорошо выровнены, в противном случае вы будете страдать от снижения производительности: если вы записываете блок 512b, диск сначала извлечет весь сектор 4096b во внутренний DRAM, измените часть из 512b затем записывает его обратно на диск (хотя некоторые методы кэширования могут уменьшить влияние этой проблемы).

Итак, окончательный ответ: да, это возможно, но это может привести к снижению производительности, и обычно это не обычная конфигурация, наблюдаемая в IRL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .