сначала короткая версия : я ищу совместимое с Linux программное обеспечение, которое способно прозрачно кэшировать записи на жесткий диск с использованием SSD. Однако я хочу раскрутить жесткий диск только один или два раза в день (чтобы записать кэшированные данные на жесткий диск). В остальное время жесткий диск не должен вращаться из-за проблем с шумом.
Теперь более длинная версия : я построил совершенно бесшумный компьютер под управлением Xubuntu. Он имеет APU A10-6700T, огромный вентилятор без вентилятора, блок питания без вентилятора, SSD. Проблема в том, что он также имеет (и нуждается) в шумном жестком диске, и я хочу запретить его раскручивать ночью. Все записи должны кэшироваться на SSD, чтения не нужны ночью.
Каждый день этот компьютер будет автоматически загружать около 5 ГБ данных, которые будут храниться около года, а общая необходимая емкость диска будет чуть менее 2 ТБ. Эти данные в настоящее время хранятся на жестком диске объемом 3 ТБ, который вращается днем и ночью. Иногда мне нужно получить доступ к некоторым данным за несколько месяцев назад. Однако в большинстве случаев мне понадобятся только данные за последние 14 дней, которые поместятся на SSD. В идеале мне бы хотелось прозрачное решение (все данные в одной файловой системе), которое кэширует все записи на SSD, а запись на HDD только один раз в день. Чтения будут обслуживаться кешем, если они все еще находятся на SSD, иначе HDD должен был бы раскрутиться.
Я попытался bcache без особого успеха (с использованием cache_mode = writeback, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - ничего не найдено ?), И я прочитал о ZFS ZIL / L2ARC, но я не уверен, что могу достичь моя цель с ZFS. Есть указатели?
Если ничего не помогает, я просто использую некоторые сценарии для автоматического копирования файлов на большой диск при удалении самых старых файлов с SSD.
Изменить : Кэш-это действительно неправильный термин для того, что я хотел. Кажется, оригинальное решение не возможно для меня в настоящее время. Спасибо всем, кто внес свой вклад!
Ответы:
Это не совсем то, как или почему работает кэширование - кэширование предназначено для того, чтобы использовать преимущества более высокой скорости и лучшего произвольного доступа к SSD или другой памяти, а не минимизировать количество операций записи на жесткий диск. Кэширование предназначено для максимизации скорости, а не сокращения записи благодаря наличию меньшего, более быстрого буфера, поддерживающего большое, медленное устройство хранения.
Фактически, bcache, который является частью основного ядра Linux, будет просто передавать последовательные записи на жесткий диск, а не передавать их через SSD, поскольку нет никакого преимущества в производительности.
ZIL / L2Arc использует SSD для хранения журналов (в случае ZIL) и часто используемых файловых кластеров (с L2Arc). ZIL ускоряет синхронные записи, сохраняя их, пока они все не будут готовы к записи. L2Arc хранит общедоступные файлы в более быстром хранилище. Ни один из них не позволит вам делать то, что вам нужно.
Fusion Drive также использует SSD и HDD, прозрачно помещая часто используемые файлы на SSD для более быстрого чтения, и HDD для массового хранения менее часто используемых файлов. Это также не позволяет вам использовать SSD в качестве пустого места и время от времени выполнять резервное копирование файлов на основной диск.
То, на что вы обращаете внимание, - это не кеширование, а периодическое резервное копирование системы на жесткий диск. Я предполагаю, что вы могли бы кое-что выдумать вместе с Aufs - первой веткой на жестком диске с большими файлами (так что требуется точность) и веткой на SSD, затем запустите сценарий, который перемещает файлы с SSD на Жесткий диск периодически, имея доступ к нему из того же места. Я еще не проверял это, но в отличие от кеширования, периодическое перемещение файлов и использование aufs, вероятно, будет именно тем, что вам нужно.
Самый простой способ сортировки файлов по возрасту - ls -tr - t сортирует по времени (от самого нового к старому) и r меняет порядок в обратном порядке. (Если у вас есть определенный диапазон значений, он
find . -mtime n
прекрасно работает, так как конкретное число дает вам файлы, измененные n дней назад, -n - файлы, измененные за последние n дней, а + n - файлы, измененные n дней назад). Вы можете найти некоторые идеи о том, как использовать его здесьТак как тишина - ваша настоящая цель, вы можете проверить, поддерживает ли ваш диск тихий режим,
hdparm -M /dev/sda
- это должно вывести что-то вродеacoustic = 254 (128=quiet ... 254=fast)
: в этом случае вы можете сделать свой жесткий диск тише с помощью командыhdparm -M 128 /dev/sda
. Запустите противоположную команду,hdparm -M 1254 /dev/sda
когда вам нужно больше скорости.источник
Поскольку другие ответы рассматривали проблему с программной точки зрения, я подумал включить некоторую информацию об аппаратных решениях.
В статье Sound Proof your Hard Drive перечислены следующие параметры:
По своему опыту я могу подтвердить, что никогда не слышу свой новый жесткий диск объемом 4 ТБ, даже при копировании очень больших файлов.
С помощью некоторых исследований можно также найти акустические демпфирующие материалы для жесткого диска, такие как корпус SilentDrive HD и акустические материалы или система крепления Sisent для жесткого диска NoiseMagic NoVibes III . Я не знаю, где они продаются, а резиновые ленты выше кажутся мне почти такими же эффективными.
Можно также звукоизоляцию всего компьютера. Некоторыми примерами веб-сайтов, которые продают звукоизоляционные материалы, являются Quiet PC USA , AcousticPC или Dynamat , но их много.
Некоторые компьютерные корпуса уже предназначены для бесшумной работы. См., Например,
шесть малошумных, ориентированных на производительность корпусов, протестированных .
Как последнее замечание, шумный жесткий диск, который трескается, щелкает или скрипит, может быть признаком того, что ваш жесткий диск начинает выходить из строя, поэтому будьте осторожны.
источник
Несколько вариантов Puppy Linux основаны на Ubuntu, но используют Aufs .
Puppy работает полностью из оперативной памяти, при нормальной работе доступ к жестким дискам отсутствует.
Если вы скажете Puppy, что ваш жесткий диск является флэш-накопителем, он будет периодически выгружать файловую систему RAM на диск, а не непрерывно. Это было разработано для уменьшения износа частых операций записи на флэш-накопители, но отлично работает и на жестких дисках.
Как и почти все в Puppy, вы можете использовать графический интерфейс, чтобы установить, как часто вы хотите сохранить файловую систему RAM. Как правило, это будет происходить каждые 10 минут или около того, но ничто не мешает настроить его, например, на сброс каждые 720 минут (12 часов).
Этот отрывок из моего
menu.lst
файла загрузчика Grub4DOS показывает настройку для параметраpmedia
ядра, который говорит, что он использует flashdrive вместо HDD ...Замечание о "вариациях" в Puppy Linux ...
Я использую Puppy Linux 5.2.8 "Lupu", который основан на (собранном путем) Ubuntu 10.04 Lucid Lynx. Эту версию также часто называют «Lucid» вместо «Lupu» из-за ее происхождения. Есть также версии, основанные на Slackware и некоторых других дистрибутивах. Поскольку вы уже используете Xubuntu, Puppy Linux Lupu будет наиболее знакомым. Это также будет намного быстрее. Я использовал Xubuntu около года, прежде чем нашел Puppy.
Существует также гораздо более новая версия, основанная на «Ubuntu Precise Pangolin» под названием «Puppy Linux Precise». В ядре, используемом в более новой версии, произошли серьезные изменения, которые могут не работать на старом оборудовании. Если ваша машина меньше 5 лет, вы можете быть счастливее с Precise. Я полагаю, что описанная выше методика все еще будет работать на Precise, хотя точные параметры и т. Д. Могут отличаться, но я не могу их протестировать.
источник
Короткое решение и быстро реализуемое (но не отвечающее именно тому, что вы хотите): перенести диск в другое место. это может быть файловый сервер netowrk chassi (например, WD world edition) или диск USB3, и вы можете установить его в той же комнате, что и тихий компьютер, или в другой комнате, чтобы избежать его полного прослушивания.
На мой взгляд, это лучше, так как вы наверняка будете использовать диск только тогда, когда хотите передать данные по сети - ОС может выполнять некоторую другую очистку или перебалансировку дерева файловой системы, которую вы не можете избежать и которая может вас беспокоить. , Такая другая комната - большой плюс.
Кэширование должно быть достаточно простым - просто сделайте резервную копию данных дня на внешний диск, что можно сделать с помощью таких решений, как
rsync
илиunison
.Более длинное решение опять-таки не является идеальным (то есть без единого приложения), но вы получите диск в одном корпусе с ssd и достигнете более высоких скоростей (но вам действительно нужна более высокая скорость, чем сеть, всего за 5 ГБ в день?):
вы можете использовать ,
smartctl
чтобы установить спин вниз время вашего диска и сохранить этот диск в смонтированном состоянии - чтобы избежать ОС делать вещи на диске. Затем просто напишите скриптmount
и сделайте резервную копию (как указано выше) нужных вам данных.источник
Вам не понравится мой ответ, но вы на самом деле злоупотребляете термином кеш, вы на самом деле описываете решение для резервного копирования. Посмотрите на rsync или поищите другие решения для резервного копирования, если вы хотите что-то более полное.
источник