Кэш-накопичувач, щоб мінімізувати час відключення жорсткого диска?


8

Перша коротка версія : Я шукаю сумісне програмне забезпечення для Linux, яке здатне прозоро кешувати записи HDD за допомогою SSD. Однак я хочу лише один раз або два рази на день відкручувати жорсткий диск (записувати кешовані дані на жорсткий диск). Решту часу жорсткий диск не повинен обертатися через проблеми з шумом.

Тепер довша версія : я створив повністю безшумний комп'ютер під керуванням Xubuntu. Він має A10-6700T APU, величезний вентилятор без вентилятора, безвентиляторний блок живлення, SSD. Проблема полягає в тому, що він також має (і потребує) галасливий жорсткий диск, і я хочу заборонити розкручувати його протягом ночі. Усі записи повинні бути кешовані на SSD, читання не потрібні вночі.

Протягом кожного дня цей комп'ютер автоматично завантажує близько 5 ГБ даних, які зберігатимуться близько року, даючи загальну необхідну ємність диска трохи менше 2 ТБ. Зараз ці дані зберігаються на шумному жорсткому диску 3 ТБ, який обертається вдень і вночі. Іноді мені знадобиться отримати доступ до деяких даних за кілька місяців тому. Однак більшість разів мені знадобляться лише дані за останні 14 днів, які б відповідали SSD. В ідеалі я хотів би отримати прозоре рішення (всі дані в одній файловій системі), яке кешує всі записи на SSD, записуючи на жорсткий диск лише один раз на день. Читачі обслуговували б кеш-пам'ять, якби вони все ще були на SSD, інакше HDD повинен був би розкручуватися.

Я спробував bcache без особливого успіху (використовуючи cache_mode = запис, writeback_running = 0, writeback_delay = 86400, послідовний_cutoff = 0, congested_write_threshold_us = 0 - нічого не вистачає?), І я читав про ZFS ZIL / L2ARC, але я не впевнений, що зможу досягти моя мета з ZFS. Якісь покажчики?

Якщо все інше не вдасться, я просто використовуватиму деякі сценарії, щоб автоматично копіювати файли на великий диск, видаляючи найдавніші файли з SSD.

Редагувати : Кеш дійсно невірний термін для того, що я хотів. Здається, оригінальне намічене рішення наразі неможливо для мене. Дякую всім, хто долучився!


1
Чому б вам просто не зберегти дані на SSD 14 днів (або скільки завгодно) і написати сценарій, який працює один раз на день і переміщує що-небудь старше, ніж це на жорсткий диск? Таким чином, якщо ви використовуєте що-небудь менше 14 днів, ви будете використовувати SSD, а жорсткий диск буде писати лише один раз на день. Якщо вам потрібно щось старше, вам доведеться отримати доступ до жорсткого диска.
Річард Пауелл

Саме це я і зроблю, як я запропонував в останньому реченні запитання :) Однією з причин, які я задав питання, було уникнути (мабуть, невеликих) клопотів, коли потрібно закручувати та монтувати привід вручну, а не просто наявність прозорої файлової системи.
sirprize

Відповіді:


3

Це не дуже, як і чому працює кешування - кешування має на меті скористатись швидшою швидкістю та кращим випадковим доступом до SSD або іншої пам'яті, а не мінімізувати записи на HDD. Кешування призначене для досягнення максимальної швидкості, а не для зменшення запису, маючи менший, швидший буфер, який підтримує великий, повільний запам'ятовуючий пристрій.

Насправді, bcache, що є частиною основного ядра Linux, просто передасть послідовне записування в hdd, а не передає його через 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 дає вам файли, змінені n днів тому). Деякі ідеї щодо їх використання можна знайти тут

Оскільки тиша - ваша реальна мета, ви можете перевірити, чи підтримує ваш диск безшумний режим hdparm -M /dev/sda- це повинно вивести щось на кшталт acoustic = 254 (128=quiet ... 254=fast), і в цьому випадку ви можете зробити ваш жорсткий диск тихішим за допомогою команди hdparm -M 128 /dev/sda. Виконайте протилежну команду, hdparm -M 1254 /dev/sdaколи вам потрібна більша швидкість.


Дякую за вклад, це моя улюблена відповідь поки. Я не знав про ауфів і буду розбиратися в цьому.
sirprize

Прозорість насправді неможлива для таких процедур, як ваш - я можу придумати безліч способів запустити роботу резервного копіювання, але ви дійсно дивитесь на сценарій, якийсь sed / awk, щоб вибрати потрібні файли, і переміщення файли, можливо, з cron. Я наполовину підозрюю, що hdparm самостійно може значно вирішити проблему з гучністю на вашому жорсткому диску, і це дозволить вам вимкнути диск, коли він не використовується, що також може бути корисно.
Подорожник Geek

Ще раз дякую, я використовуватиму баш-фу, cron, hdparm, mount та rsync, як було запропоновано в останньому реченні запитання. hdparm -M допоміг зробити диск трохи тихішим, але я вважаю за краще диск взагалі не крутитися протягом ночі.
sirprize

3

Оскільки інші відповіді вирішили проблему з точки зору програмного забезпечення, я подумав включити деяку інформацію про апаратні рішення.

У статті Звукове підтвердження вашого жорсткого диска перелічено наступні параметри:

  • Дефрагментуйте ваш жорсткий диск
  • Загорніть жорсткий диск у гумки, щоб послабити вібрації
  • Перейдіть на новий жорсткий диск: Більшість жорстких дисків сучасності оснащені динамічними підшипниками рідини, які дозволяють пластинам майже мовчати навіть при обертанні з дуже високою швидкістю.

Я можу засвідчити на власному досвіді, що я ніколи не чую свій новий жорсткий диск на 4 ТБ, навіть при копіюванні дуже великих файлів.

Проводячи деякі дослідження, можна також знайти акустичні матеріали, що зволожують жорсткий диск, такі як корпус та акустичні матеріали SilentDrive HD або система кріплення жорсткого диска NoiseMagic NoVibes III . Я не знаю, де вони продаються, і гумові стрічки здаються мені настільки ж ефективними.

Також можна звукоізолювати весь комп'ютер. Деякі приклади веб-сайтів, які продають звукоізоляційні матеріали, є Quiet PC USA , AcousticPC або Dynamat , але таких існує багато.

Деякі корпуси комп'ютерів уже розроблені для безшумної роботи. Дивіться, наприклад,
Шість низьких рівнів шуму, орієнтовані на ефективність, випробувані .

Як останнє зауваження, шумний жорсткий диск, який чіпляє, клацає чи вискакує, може бути ознакою того, що ваш жорсткий диск починає виходити з ладу, тому будьте обережні.


Дякую за відгуки, отримайте резюме. Я вже використовую спеціалізоване обладнання - у цьому випадку повністю безшумне обладнання, крім дисковода. Під «шумом» я маю на увазі нормальний звук здорового жорсткого диска. Мені просто доведеться використовувати cron, щоб закрутити накопичувач, змонтувати його, зробити резервну копію, відключити його, а потім знову відкрутити.
sirprize

2

Кілька варіантів Puppy Linux засновані на Ubuntu, але використовують Aufs .

Щеня повністю працює з оперативної пам’яті, в нормальній роботі немає доступу до жорсткого диска.

Якщо ви скажете Puppy, що ваш жорсткий диск - це флешка, він буде скидати файлову систему RAM на диск періодично, а не постійно. Це було розроблено для зменшення зносу частого запису на флешки, але добре працює і на жорстких дисках.

Як і майже у всьому Puppy, ви можете використовувати графічний інтерфейс для встановлення частоти збереження файлової системи ОЗУ. Як правило, це буде кожні 10 хвилин або близько того, але нічого не заважає, наприклад, скидати кожні 720 хвилин (12 годин).

Щеня Linux Менеджер подій

Цей уривок із мого файлу завантажувача Grub4DOS menu.lstпоказує налаштування для параметра pmediaядра, яке говорить про те, що він використовує flashdrive замість HDD ...

# menu.lst produced by grub4dosconfig-v1.7.1
#
# 'kernel ... pmedia=ideflash'
#     Treat the HDD as a flashdrive: infrequent writes of filesystem to savefile

title Puppy Lupu 5.2.8 (sda3/puppy528lu) Cached\nUse SWAP; changes to RAM; flush to disk every 10min (fastest)
  find --set-root --ignore-floppies --ignore-cd /puppy528lu/initrd.gz
  kernel /puppy528lu/vmlinuz   psubdir=puppy528lu pmedia=ideflash pfix=copy,fsck
  initrd /puppy528lu/initrd.gz

Примітка про "варіації" Puppy Linux ...
Я використовую Puppy Linux 5.2.8 "Lupu", який базується на (побудованому шляхом розбору) Ubuntu 10.04 Lucid Lynx. Ця версія також часто називається "Lucid" замість "Lupu" через її походження. Існують також версії, засновані на Slackware та деяких інших дистрибутивах. Оскільки ви вже використовуєте Xubuntu, Puppy Linux Lupu був би найвідомішим. Це також було б набагато швидше. Я використовував Xubuntu близько року, перш ніж знайти Щеня.

Існує також набагато новіша версія, заснована на "Ubuntu Precision Pangolin" під назвою "Puppy Linux Precision". У ядрі, використовуваному в новій версії, є основні зміни, які можуть не працювати зі старим обладнанням. Якщо ваша машина менше 5 років, ви можете бути щасливішими з Precision. Я вважаю, що описана вище техніка все ще працюватиме на Precision, хоча точні варіанти тощо можуть бути різними, але я не в змозі перевірити її.


0

коротке рішення і швидко реалізується (але не відповідає саме тому, що ви хочете): перенесіть диск зберігання в інше місце. це може бути шасі сервера файлових файлів netowrk (як WD world edition) або диск USB3, і ви можете мати його в тій же кімнаті, що і тихий ПК, або в іншій кімнаті, щоб уникнути його повного прослуховування.

На мій погляд, це краще, оскільки ви, безумовно, будете використовувати дисковод лише тоді, коли ви хочете перенести дані по мережі - ОС може робити якесь інше впорядкування або відновлення дерева файлової системи, якого ви не можете уникнути і заважатиме вам . Тож різний номер - великий плюс.

Кешування має бути досить простим - просто скопіюйте дані дня на зовнішній диск, що ви можете виконати, використовуючи такі рішення, як rsyncабо unison.

Більш довге рішення знову не є ідеальним (тобто немає жодного додатку), але ви отримаєте привід у тому ж коробці з ssd і досягнете більш високих швидкостей (але чи справді вам потрібна більша швидкість, ніж мережа всього за 5 Гб / день?):

ви можете використовувати smartctlдля встановлення часу відключення вашого диска та утримувати цей диск у відключеному стані - щоб уникнути того, що ОС робити речі на диску. Потім просто напишіть сценарій mountі створіть резервні копії (як вище) необхідних даних.


На жаль, це все, чого я хотів уникнути. Дякуємо за ваш час!
sirprize

0

Вам не подобається моя відповідь, але ви фактично зловживаєте кешем терміна, ви фактично описуєте резервне рішення. Погляньте на rsync або пошукайте інші рішення для резервного копіювання, якщо хочете чогось більш повного.


Це абсолютно правда, і це я глибоко висвітлював у своїй відповіді :)
Journeyman Geek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.