Наилучшая имеющаяся технология для многоуровневого дискового кэша в Linux

Я только что купил Явление с 6 ядрами с 16G RAM. Я использую его, прежде всего, для компиляции и кодирования видео (и случайная сеть/дб). Я нахожу, что все операции становятся ограниченными диском, и я просто не могу сохранить все 6 ядер питаемыми. Я покупаю набег SSD для нахождения между жестким диском и tmpfs.

Я хочу установить "многоуровневую" файловую систему, где чтения кэшируются на tmpfs, но записи безопасно идут до SSD. Я хочу файлы (или блоки), которые не были считаны в последнее время на SSD, который затем будет записан обратно к жесткому диску с помощью сжатого FS или слоя блока.

Так в основном чтения: - проверяют tmpfs - Проверку SSD - Проверка HD

И записи: - прямо к SSD (для безопасности), затем tmpfs (для скорости)

И периодически, или когда пространство понижается: - перемещение наименее часто получало доступ, спиливает один слой.

Я видел несколько проектов интереса. CacheFS, cachefsd, bcache кажутся достаточно близкими, но я испытываю затруднения при определении, которые практичны. bcache кажется немного опасным (раннее принятие), cachefs кажется связанным с определенными сетевыми файловыми системами.

Существуют проекты "объединения" unionfs и aufs, которые позволяют Вам смонтировать файловые системы друг по другу (USB-устройство по DVD обычно), но оба распределяются как патч, и я получаю впечатление, этот вид "прозрачного" монтирования собирался стать функцией ядра, а не FS.

Я знаю, что ядро имеет встроенный дисковый кэш, но это, кажется, не работает хорошо с компиляцией. Я вижу 20x улучшение скорости, когда я перемещаю свои исходные файлы в tmpfs. Я думаю, что это - потому что стандартные буферы выделены определенному процессу, и компиляция создает и уничтожает тысячи процессов во время сборки (просто предполагающий там). Похоже, что я действительно хочу те предварительно кэшируемые файлы.

Я читал, tmpfs может использовать виртуальную память. В этом случае действительно ли это практично для создания гиганта tmpfs с подкачкой на SSD?

Я не должен загружаться от получающейся многоуровневой файловой системы. Я могу загрузить личинку, ядро и initrd откуда-либо в случае необходимости.

Таким образом, это - фон. Вопрос имеет несколько компонентов, которые я предполагаю:

  • Рекомендуемый FS и/или слой блока для SSD и сжатого жесткого диска.
  • Рекомендуемые mkfs параметры (размер блока, опции и т.д....)
  • Рекомендуемый кэшируют/монтируют технологию для привязки слоев прозрачно
  • Требуемый монтируют параметры
  • Необходимые опции ядра / патчи, и т.д.
3
задан 17.10.2010, 06:36

1 ответ

Прямо сейчас нет ничего производственного уровня, чтобы сделать это.

Вот эти две возможности, которые я рассмотрел бы хотя:

  • bcache является патчем ядра для использования SSD в качестве кэша для случайных чтений и записей. Это может использоваться с любой файловой системой.
  • KQInfotech имеет закрытую бету natvie ZFS 2 для Linux. Дата общедоступности, как предполагалось, была в начале декабря 2010, но она была пододвинута обратно до 5-го января и еще раз до 14-го января.

Я не использовал ни одну из тех опций на Linux. Я использовал ZFS на OpenSolaris и FreeBSD все же.

0
ответ дан 08.12.2019, 04:21

Теги

Похожие вопросы