Я не совсем согласен, что это огромная проблема для большинства рабочих нагрузок из-за кэширования, политик опережающего чтения и дисковых лифтов, которые вы можете использовать, но это возможно с оговорками.
Лучший способ решить эту проблему — физически разделить носитель, который вы хотите выделить, на «фрагменты», которые вы считаете каждым концом диска, который хотите отделить.
Что-то вроде этого
Номер Начало Конец Размер Тип Файловая система Флаги
1 1049 КБ 1075 МБ 1074 МБ основная загрузка ext4
2 1075MB 4TB 4TB primary lvm # Мой быстрый раздел
3 4 ТБ 8 ТБ 4 ТБ основной lvm # Мой медленный раздел
Затем создайте группы томов. В этом примере я использую одну группу томов, но вместо этого может быть проще иметь «медленную» виртуальную группу и «быструю» виртуальную группу.
# pvcreate /dev/sda2
# pvcreate /dev/sda3
# vgcreate vg /dev/sda2 /dev/sda3
Затем выделите свои LV из указанных физических томов.
# lvcreate -n myFastLV -L1TB vg /dev/sda2
# lvcreate -n mySlowLV -L1TB vg /dev/sda3
Предостережение здесь заключается в том, что плохие сектора могут быть незаметно заменены контроллером диска «резервом», часто расположенным в другом месте (что полностью не зависит от производителя). Кроме того, некоторые более необычные диски могут внутренне переназначать сектора, которые логически согласуются с предлагаемыми утверждениями, но физически находятся не в том месте, где вы ожидали.
Наконец, рабочая нагрузка, которую вы предлагаете (конвейерная обработка огромных файлов), на самом деле представляет собой проблему с очень последовательной рабочей нагрузкой, которая будет иметь больший выигрыш от использования методов предварительного распределения для записанных файлов (чтобы они оставались непрерывными, а не фрагментированными).
Затем установите агрессивные политики опережающего чтения для чтения целых полос смежных / предстоящих секторов, которые, скорее всего, будут примыкать к файлу, который вы читаете.
Более мелкозернистый подход также может быть достигнут с использованием dmsetup
для отображения физических секторов в любом порядке и в любом виде, который вы хотели, но это было бы не слишком переносимо и, вероятно, требует больше усилий, чем оно того стоит в долгосрочной перспективе (например, вам понадобится скрипт для восстановления отображения при загрузке).