3

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

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

Так что в основном читает:- Проверьте tmpfs - Проверьте SSD - Проверьте HD

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

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

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

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

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

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

Мне не нужно загружаться с получившейся многоуровневой файловой системы. Я могу загрузить grub, kernel и initrd из других мест, если это необходимо.

Так что это фон. Вопрос состоит из нескольких компонентов:

  • Рекомендуемая ФС и / или блочный уровень для SSD и сжатых HDD.
  • Рекомендуемые параметры mkfs (размер блока, опции и т.д.)
  • Рекомендуемая технология кэширования / монтирования для прозрачного связывания слоев
  • Обязательные параметры монтирования
  • Обязательные параметры ядра / патчи и т.д.

1 ответ1

0

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

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

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

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

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