Я только что купил Явление с 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 откуда-либо в случае необходимости.
Таким образом, это - фон. Вопрос имеет несколько компонентов, которые я предполагаю:
Прямо сейчас нет ничего производственного уровня, чтобы сделать это.
Вот эти две возможности, которые я рассмотрел бы хотя:
Я не использовал ни одну из тех опций на Linux. Я использовал ZFS на OpenSolaris и FreeBSD все же.