Mam serwer plików z wieloma dyskami działającymi razem w puli BTRFS i chcę dodać dysk SSD do buforowania. Nie jestem głównie po przyspieszeniu rzeczy, ale chcę złapać regularne małe dostępy, aby móc zamknąć dyski twarde przez większość czasu, gdy nie są intensywnie użytkowane (brak uruchamiania ich 24/7 pozwoli zaoszczędzić energię i powinien sprawić, że dyski działają dłużej).
O ile mi wiadomo, w Linuksie są obecnie zaimplementowane dwie techniki buforowania SSD: dm-cache i bcache. Pamięć dm-cache wciąż jest uważana za bardziej wydajną, ale rozwój jest kontynuowany dla obu i nie muszę dostosowywać absolutnej maksymalnej wydajności.
Czytając dokumentację bcache , natknąłem się na następujące opcje:
writeback_delay : Gdy brudne dane są zapisywane w pamięci podręcznej i wcześniej nie zawierały żadnych, czeka pewną liczbę sekund przed zainicjowaniem zapisu zwrotnego. Domyślnie 30.
writeback_percent : Jeśli wartość niezerowa, bcache próbuje utrzymać ten procent pamięci podręcznej w czystości, ograniczając zapisywanie w tle i używając kontrolera PD, aby płynnie regulować szybkość.
writeback_running : Jeśli wyłączone, zapis brudnych danych w ogóle nie będzie miał miejsca. Brudne dane będą nadal dodawane do pamięci podręcznej, dopóki nie będzie w większości zapełniona; przeznaczony tylko do testów porównawczych. Domyślnie włączone.
Ustawienie odpowiednio dużej wartości writeback_delay
wydaje się wykonywać dla mnie zadanie: odpisuj tylko raz na godzinę lub (zakładam, że tak się stanie), jeśli pamięć podręczna jest pełna.
Czy jest to rozsądna konfiguracja i czy zastanawiam się nad czymś innym, by odnieść sukces w spinowaniu dysków? Nie przeszkadza mi także wybranie zupełnie innej trasy, jeśli spełnia ona moje wymagania.
Wygląda na to, że @gorkypl szuka innego rozwiązania podobnego problemu , ale ma inne wymagania i środowisko i też nie otrzymał jeszcze odpowiedzi.
bcache
proszę.Odpowiedzi:
Myślę, że twoje podejście jest zbyt skomplikowane.
czytaj buforowanie : nie ma tu nic do roboty. Jeśli masz wystarczająco dużo pamięci RAM, odbywa się to automatycznie w systemie Linux.
napisz buforowanie Zasadniczo tego właśnie chcesz. Ale jeśli zapisy w końcu trafią na dysk, spowoduje to również wybudzanie.
Więc możesz umieścić dotknięte systemy plików bezpośrednio na ram-disk / dev / shm lub ssd.
oszczędzanie energii : Nie sądzę, że częste obracanie / zmniejszanie oszczędza energię. Przeciwnie, dyski mogą umrzeć wcześniej, co wiąże się z dodatkowym zużyciem energii w procesie produkcyjnym. Również rozpinanie jest bardzo energochłonne.
źródło