najpierw krótka wersja : szukam oprogramowania zgodnego z Linuksem, które jest w stanie transparentnie buforować zapisy z dysku twardego za pomocą dysku SSD. Chcę jednak rozkręcać dysk twardy tylko raz lub dwa razy dziennie (aby zapisać buforowane dane na dysku twardym). Przez resztę czasu dysk twardy nie powinien się obracać z powodu problemów z hałasem.
Teraz dłuższa wersja : zbudowałem całkowicie cichy komputer z systemem Xubuntu. Ma A10-6700T APU, ogromną bez wentylatora chłodnicę, bez wentylatora zasilacz, SSD. Problem polega na tym, że ma (i potrzebuje) głośny dysk twardy i chcę zabronić jego podkręcania w nocy. Wszystkie zapisy powinny być buforowane na dysku SSD, odczyty nie są potrzebne w nocy.
Przez cały dzień ten komputer automatycznie pobierze około 5 GB danych, które będą przechowywane przez około rok, dając całkowitą potrzebną pojemność dysku nieco mniejszą niż 2 TB. Te dane są obecnie przechowywane na głośnym dysku twardym o pojemności 3 TB, który kręci się w dzień iw nocy. Czasami muszę uzyskać dostęp do niektórych danych sprzed kilku miesięcy. Jednak większość razy będę potrzebować tylko danych z ostatnich 14 dni, które zmieściłyby się na dysku SSD. Idealnie, chciałbym przezroczystego rozwiązania (wszystkie dane w jednym systemie plików), które buforuje wszystkie zapisy na SSD, zapisując na HDD tylko raz dziennie. Odczyty byłyby obsługiwane przez pamięć podręczną, gdyby nadal znajdowały się na dysku SSD, w przeciwnym razie dysk twardy musiałby się rozkręcić.
Próbowałem bcache bez większego powodzenia (używając cache_mode = writeback, writeback_running = 0, writeback_relay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - coś brakuje?) I czytam o ZFS ZIL / L2ARC, ale nie jestem pewien, czy uda mi się to osiągnąć mój cel w ZFS. Jakieś wskazówki?
Jeśli wszystko inne zawiedzie, po prostu użyję niektórych skryptów, aby automatycznie skopiować pliki na duży dysk, usuwając jednocześnie najstarsze pliki z dysku SSD.
Edycja : Pamięć podręczna to naprawdę zły termin na to, czego chciałam. Wygląda na to, że oryginalne zamierzone rozwiązanie nie jest dla mnie w tej chwili możliwe. Dziękujemy wszystkim, którzy przyczynili się!
Odpowiedzi:
To nie tak naprawdę, jak i dlaczego działa buforowanie - buforowanie ma na celu wykorzystanie szybszej prędkości i lepszego losowego dostępu do dysku SSD lub innej pamięci, zamiast minimalizowania zapisów na dysku twardym. Buforowanie ma na celu maksymalizację prędkości, a nie zmniejszenie zapisu, dzięki mniejszemu, szybszemu buforowi, który wspiera duże, wolne urządzenie pamięci masowej.
W rzeczywistości, bcache, który jest częścią głównego jądra Linuksa, po prostu przekaże sekwencyjne zapisy na dysk twardy, zamiast przekazywać je przez dysk SSD, ponieważ nie ma przewagi wydajności.
ZIL / L2Arc używa dysku SSD do przechowywania dzienników (w przypadku ZIL) i często używanych klastrów plików (z L2Arc). ZIL przyspiesza zapisy synchroniczne, przechowując je do momentu, aż wszystkie będą gotowe do napisania. L2Arc przechowuje najczęściej używane pliki na szybszej pamięci. Żadne z nich nie pozwoli ci zrobić tego, czego potrzebujesz.
Napęd Fusion również używa SSD i HDD przejrzysty wprowadzenie powszechnie używane pliki na dysk SSD dla szybciej odczytuje i dyski do przechowywania luzem rzadziej używanych plików. To także nie pozwala na użycie dysku SSD jako miejsca na zarysowania i co jakiś czas tworzy kopię zapasową plików na dysku głównym
To, na co patrzysz, to nie buforowanie, ale raczej okresowe kopie zapasowe systemu na HDD. Zgaduję, że możesz być w stanie sfałszować coś razem z Aufs - pierwszą gałąź na dysku twardym z większymi plikami (więc ma to pierwszeństwo) i gałąź na dysku SSD, a następnie uruchomić skrypt, który przenosi pliki z dysku SSD do Dysk twardy jest okresowo, przy jednoczesnym dostępie z tej samej lokalizacji. Nie przetestowałem tego jeszcze, ale w przeciwieństwie do buforowania, okresowe przenoszenie plików i używanie aufs prawdopodobnie będzie dokładnie tym, czego chcesz.
Najprostszym sposobem sortowania plików według wieku jest ls -tr - t sortuje według czasu (od najnowszego do najstarszego), a r odwraca kolejność. (Jeśli masz na myśli konkretny zakres,
find . -mtime n
działa świetnie n, ponieważ określona liczba daje pliki zmodyfikowane n dni temu, -n daje pliki zmodyfikowane w ciągu ostatnich n dni, a + n daje pliki zmodyfikowane n dni temu). Można znaleźć kilka pomysłów na to, jak go używać tutajPonieważ twoim prawdziwym celem jest cisza, możesz sprawdzić, czy twój dysk obsługuje tryb cichy za pomocą
hdparm -M /dev/sda
- powinno to generować coś takiegoacoustic = 254 (128=quiet ... 254=fast)
, w którym to przypadku możesz spowolnić dysk twardy za pomocą poleceniahdparm -M 128 /dev/sda
. Uruchom przeciwne polecenie,hdparm -M 1254 /dev/sda
gdy potrzebujesz większej prędkości.źródło
Ponieważ w innych odpowiedziach rozwiązano problem z punktu widzenia oprogramowania, pomyślałem o dołączeniu pewnych informacji o rozwiązaniach sprzętowych.
W artykule Dźwiękoszczelność dysku twardego wymieniono następujące opcje:
Z własnego doświadczenia mogę zaświadczyć, że nigdy nie słyszę nowego dysku twardego o pojemności 4 TB, nawet podczas kopiowania bardzo dużych plików.
W ramach niektórych badań można również znaleźć materiały tłumiące dźwięk dysku twardego, takie jak obudowa i materiały akustyczne SilentDrive HD lub cichy system mocowania dysku twardego NoiseMagic NoVibes III . Nie wiem, gdzie są sprzedawane, a gumki powyżej wydają mi się prawie tak samo wydajne.
Można również wygłuszyć cały komputer. Niektóre przykładowe strony internetowe sprzedające materiały dźwiękoszczelne to Quiet PC USA , AcousticPC lub Dynamat , ale jest ich wiele.
Niektóre obudowy komputerowe są już zaprojektowane do cichej pracy. Zobacz na przykład
sześć przetestowanych obudów o niskim poziomie hałasu i wydajności .
Ostatnia uwaga: hałaśliwy dysk twardy, który brzęka, klika lub piszcze, może być oznaką awarii dysku twardego, więc uważaj.
źródło
Kilka odmian Puppy Linux opartych jest na Ubuntu, ale używa Aufs .
Puppy działa całkowicie z pamięci RAM, podczas normalnej pracy nie ma dostępu do dysku twardego.
Jeśli powiesz Puppy, że twój dysk twardy jest dyskiem flash, będzie okresowo zrzucał system plików RAM na dysk zamiast w sposób ciągły. Zostało to zaprojektowane w celu zmniejszenia zużycia częstych zapisów na dyskach flash, ale działa również dobrze na dyskach twardych.
Podobnie jak prawie wszystko w Puppy, możesz użyć GUI, aby ustawić częstotliwość zapisywania systemu plików RAM. Zwykle będzie to co 10 minut, ale nic nie stoi na przeszkodzie, aby na przykład ustawiać zrzut co 720 minut (12 godzin).
Ten fragment mojego
menu.lst
pliku bootloadera Grub4DOS pokazuje ustawieniepmedia
opcji jądra, która mówi, że używa dysku flash zamiast dysku twardego ...Uwaga na temat „odmian” Puppy Linux ...
Używam Puppy Linux 5.2.8 „Lupu”, który jest oparty na (zbudowanym przez sparowanie) Ubuntu 10.04 Lucid Lynx. Ta wersja jest często nazywana „Lucid” zamiast „Lupu” ze względu na swoje pochodzenie. Istnieją również wersje oparte na Slackware i niektórych innych dystrybucjach. Ponieważ już używasz Xubuntu, Puppy Linux Lupu byłby najbardziej znany. Byłoby to również znacznie szybsze. Używałem Xubuntu przez około rok, zanim znalazłem Puppy.
Istnieje również znacznie nowsza wersja oparta na „Ubuntu Precise Pangolin” o nazwie „Puppy Linux Precise”. Wprowadzono poważne zmiany w jądrze używanym w nowszej wersji, które mogą nie działać dobrze ze starszym sprzętem. Jeśli Twoja maszyna ma mniej niż 5 lat, możesz być bardziej zadowolony z Precise. Wierzę, że technika opisana powyżej nadal będzie działać w Precyzji, chociaż dokładne opcje itp. Mogą być inne, ale nie jestem w stanie jej przetestować.
źródło
krótkie rozwiązanie i szybkie do wdrożenia (ale nie odpowiedzi dokładnie na to, czego chcesz) to: przenieś dysk do pamięci w innym miejscu. może to być chassi serwera plików typu Netowrk (jak WD World Edition) lub dysk USB3 i możesz go mieć w tym samym pokoju co cichy komputer lub w innym pokoju, aby całkowicie go nie słuchać.
Moim zdaniem jest to lepsze, ponieważ z pewnością będziesz korzystać z napędu tylko wtedy, gdy chcesz przesyłać dane przez sieć - system operacyjny może wykonywać inne czynności porządkowe lub przywracania równowagi systemu plików, których nie możesz uniknąć i by Ci przeszkadzały . Tak więc inny pokój to duży plus.
Buforowanie powinno być łatwe - wystarczy wykonać kopię zapasową danych z dnia na zewnętrzny dysk, co można osiągnąć za pomocą rozwiązań takich jak
rsync
lubunison
.Dłuższe rozwiązanie znowu nie jest idealne (tj. Nie ma pojedynczej aplikacji), ale dostaniesz dysk w tym samym pudełku z ssd i uzyskasz wyższe prędkości (ale czy naprawdę potrzebujesz wyższej prędkości niż sieć tylko 5 GB / dzień?):
możesz użyć,
smartctl
aby ustawić czas zatrzymania dysku i zachować go w stanie odmontowanym - aby uniknąć sytuacji, w której system operacyjny będzie wykonywał różne czynności na dysku. Następnie po prostu napisz skryptmount
i wykonaj kopię zapasową (jak wyżej) potrzebnych danych.źródło
Nie podoba ci się moja odpowiedź, ale tak naprawdę nadużywasz pamięci podręcznej, tak naprawdę opisujesz rozwiązanie kopii zapasowej. Zajrzyj do rsync lub poszukaj innych rozwiązań do tworzenia kopii zapasowych, jeśli chcesz coś bardziej kompletnego.
źródło