Jak mogę użyć mojego małego dysku SSD jako pamięci podręcznej dla większego dysku twardego?


58

Chciałbym użyć (małego) dysku SSD jako pamięci podręcznej dla dużego dysku twardego. Zdaję sobie sprawę, że istnieją produkty sprzętowe, które to robią: HighPoint RocketHybrid HBA , Intel SmartResponse i inne. Jest tylko jeden produkt, który mogę znaleźć: ExpressCache firmy Diskeeper :

ExpressCache inteligentnie i automatycznie łączy najlepsze atrybuty dysków SSD i HDD bez żadnego wysiłku lub wymaganej wiedzy od użytkownika, dzięki czemu użytkownicy uzyskują to, co najlepsze z obu światów; dynamiczna wydajność i skalowalna pojemność. Ponieważ można stosować dyski SSD o wielkości zaledwie 4 GB, zapewnia to niezwykle przystępne cenowo rozwiązanie dla producentów.

Składający się z komponentów Tryb użytkownika i Tryb jądra, ExpressCache wykorzystuje dysk SSD jako inteligentną pamięć podręczną w połączeniu z dyskiem twardym, aby poprawić ogólną wydajność systemu i znacznie przyspieszyć uruchamianie komputera z systemem Windows, uruchamianie aplikacji i szybkość dostępu do danych.

Jednak ten produkt jest tylko OEM !

Szukałem alternatyw, bez powodzenia ... Nie rozumiem tego: to brzmi jak świetny pomysł, nie jest potrzebny żaden dodatkowy sprzęt i może naprawdę zwiększyć wydajność dysku bez wydawania fortuny.

Pytam więc, czy ktoś zna oprogramowanie, które to robi, zarówno dla systemu Windows, jak i Linux. Lub jeśli uważasz, że to zły pomysł, chciałbym wiedzieć, dlaczego.

Uwaga: ReadyBoost nie nadaje się do tego. Został zbudowany przy założeniu, że zapisy na dysku są naprawdę drogie, mają bardzo niewielki wpływ na systemy z dużą ilością pamięci RAM i nie skalują się prawidłowo, jeśli dysk SSD ma ponad 100 GB.


PrimoCache (dla Windows) może to zrobić; specjalizuje się w używaniu pamięci RAM jako pamięci podręcznej, ale może używać partycji SSD jako pamięci podręcznej L2 - nie sądzę, że ma ograniczony rozmiar i mówi, że może przyspieszyć nawet rozruch (zakładając, że używasz dysku SSD, a nie tylko BARAN).
BrainSlugs83

Odpowiedzi:


52

Istnieje kilka sposobów wykorzystania dysku SSD jako pamięci podręcznej dla zwykłego dysku twardego. To nie jest nowy pomysł i ma już kilka wdrożeń.

W systemie Windows:

Najlepszą implementacją jest NVelo: Dataplex - Posiada buforowanie odczytu i opcjonalne buforowanie zapisu. Niestety, podobnie jak ExpressCache, jest dostępny tylko dla producentów OEM. Najtańszym sposobem na to jest zakup dysku SSD OCZ, który pakuje adapter PCIE z małym dyskiem SSD i używa oprogramowania dataplex do buforowania istniejącego dysku twardego.

Istnieją jednak również implementacje czystego oprogramowania: FancyCache - działa tak, jakbyś mógł oczekiwać buforowania odczytu i zapisu w warstwie blokowej. Istnieje przede wszystkim jako pamięć podręczna pamięci, ale ostatnio uzyskała wsparcie dla pamięci podręcznej SSD drugiej warstwy (trochę jak ZFS L2ARC), która może być dowolnie duża.

Jeśli chcesz maksymalnie wykorzystać IOPS kosztem trwałości zapisu (na przykład idealnie w połączeniu z UPS-em), alternatywą może być coś takiego: SuperCache - Używa tylko pamięci RAM, bez dysku SSD. Ale w przeciwieństwie do innych, z radością przekroczy 100 000 IOPS na sprzęcie towarowym. Bardzo przydatne do buforowania urządzenia blokowego zawierającego na przykład indeksy baz danych. Zasadniczo daje wydajność RAM-Disk dla dowolnego rozmiaru woluminu (zakładając, że podstawowe urządzenie może nadążyć za woluminem zapisu).

W Linuksie jest trochę lepiej:

Jak wspomniano w poprzednim plakacie, masz Flashcache - działa raczej dobrze, ale jego wydajność różni się znacznie w zależności od obciążenia. W wielu przypadkach ze słabą lokalizacją dostęp nie będzie działał tak dobrze, jak można się spodziewać. Nie jestem pewien, dlaczego tak jest, ale w przypadku większości obciążeń jest to świetna opcja.

Najlepszą opcją (choć kod nie jest jeszcze w pełni „gotowy do produkcji”) jest bcache (więcej informacji tutaj , choć niektóre z nich są nieaktualne) - ma najlepszą wydajność z każdej pamięci podręcznej SSD, którą próbowałem, i w przeciwieństwie do wszystkich innych wymienione opcje obsługują buforowanie wielu urządzeń blokowych na jednej pamięci podręcznej. Obsługuje także (choć nie próbowałem tego osobiście, może jeszcze nie działać) wiele urządzeń pamięci podręcznej, dzięki czemu możesz używać wielu tańszych dysków SSD w celu maksymalizacji IOPS. Kod znajduje się w repozytorium git: git: //evilpiepirate.org/~kent/linux-bcache.git . Mówi się o połączeniu go z kolejną wersją jądra, choć nie zostało to jeszcze na pewno ustalone.

Osobiście uważam, że najlepiej działającą opcją jest bcache (moje obciążenie jest w większości związane z bazą danych, chociaż buforuję również mojego głównego laptopa w całości). Z mojego doświadczenia wynika, że ​​przepustowość sekwencyjna dysku twardego jest często wąskim gardłem, ponieważ pamięć podręczna zapełnia się szybko, a dysk twardy musi zapisywać sektory w pamięci podręcznej, więc im szybciej, tym lepiej. Jest to oczywiście przy dużym obciążeniu zapisu, przy bardziej zrównoważonym obciążeniu odczytu i zapisu rzeczy prawdopodobnie będą inne.

Powinienem też cię ostrzec, że przy pełnej prędkości dość szybko przekroczysz limity zapisu na dysku SSD. Obecnie używam mojego trzeciego dysku OCZ Vertex 3. Chociaż dyski SSD są bardzo szybkie, po prostu nie są bardzo trwałe, więc spodziewaj się ich wymiany co kilka miesięcy.


2
Dziękuję za świetną odpowiedź! Jeśli chodzi o wskaźnik „wypalenia”, myślę, że teraz jest to główny powód, dla którego większość z tych produktów jest tylko OEM, np. OCZ Synapse (pamięć podręczna SSD w pakiecie z Dataplex) jest w 50% zawyżona ...
haimg

2
@ Supercilious Dlaczego nie skorzystać z dysku SSD SLC lub eMLC? To musi być bardziej wydajne (i na pewno bardziej niezawodne) niż częste zastępowanie niewiarygodnego flasha MLC.
Miles Erickson

6
@ Supercilious To tutaj mnie tracisz. Nieco większa długość życia? Długowieczność błysku SLC i eMLC jest o rząd wielkości większa, a nie nieco większa.
Miles Erickson

1
@Firebug Przez pewien czas byłem nieaktywny na stosie, ale odpowiedź, którą opublikowałem, jest ważna. Podczas gdy nowsze dyski SSD oferują znacznie większą wytrzymałość na zapis, nadal dość szybko zawodzą. W moich maszynach (głównie HP DL360 G9 + niektóre Lenovo) wypalam dziesiątki dysków SSD dla każdego mechanicznego napędu SAS lub SATA. W 2017 r. Średnio 8 miesięcy pracy na dyskach SSD Samsung SM863a, które są najlepszymi, jakie znalazłem. Jest to całkowicie w porządku i całkowicie warte kosztu mojego obciążenia, ale warto o tym pamiętać i ciągła aktywność zapisu zabije każdy dysk SSD w ciągu roku.
Supercilious

1
@ Firebug Tak, wszystkie ciężkie podnoszenie odbywa się na moich serwerach (głównie HP DL360 Gen9), a obciążenie wynosi 30% / 70% odczytu / zapisu, a dyski SSD są w zasadzie młotkowane 24/7 z prędkością około 300-350 MB / s z rzadkimi piki powyżej 500 MB / s. Wszystkie operacje we / wy są losowe z rozmiarem bloku 64 KB i sporadycznymi zbiorczymi TRIMAMI całego dysku SSD. W przypadku komputerów stacjonarnych zabicie tych dysków SSD w centrach danych zajęłoby lata, ale dyski SSD dla konsumentów mają 180-300 TB TBW, co wciąż jest dość niskim IMO.
Supercilious,

10

Istnieje bardzo interesujące oprogramowanie dla Linuksa, używane przez bardzo zapracowane serwery:

https://github.com/facebook/flashcache

Na SATAII, 8 magnetycznych napędach obrotowych w konfiguracji RAID6, mam poważne zwiększenie wydajności. Losowy odczyt za pomocą urządzenia SATAIII flashcache SSD (odczyt 540, zapis 420) nasyca moją magistralę SATAII do prawie 90-95% - mam odczyt 280 MB (w godzinach szczytu), zapis 270 MB (tylko przy symulowanym obciążeniu ... nigdy nie osiągnięty w produkcji) . Trwa już około pół roku. Zapis na dysku to ... 20-30 MB / s - użyj wolnego czasu we / wy ...


5

Jak duży jest twój dysk SSD?

Prawdopodobnie najlepszy efekt, jaki osiągniesz, instalując cały system operacyjny i oprogramowanie na dysku SSD, jednocześnie przechowując duże ilości danych na dysku twardym.

Jeśli twój dysk SSD jest mały, warto umieścić na nim plik strony. Wątpię, czy Windows umieści w pamięci podręcznej wiele twoich plików, ale przynajmniej pozwoli ci mieć pamięć ostatnio używanych aplikacji i pamięć podręczną plików w pamięci RAM, jednocześnie umożliwiając szybkie przełączanie na nieużywane ostatnio aplikacje (które będą znajdują się w pliku stronicowania, który z kolei znajduje się na dysku SSD).


1
Mój SSD ma 120 GB. Chociaż wystarcza to na działający zestaw lub pamięć podręczną , zdecydowanie nie wystarczy hostować wszystkie moje pliki systemowe + aplikacje. Po drugie, nie chcę przechowywać, powiedzmy, przykładowego kodu MSSDK (rzadko czytanego) na dysku SSD i własnego kodu, do którego dostęp uzyskuje się 100 razy dziennie na dysku. Ponadto potrzebowałbym dwóch dysków SSD dla macierzy RAID - nigdy nie ufam moim danym tylko na jednym dysku, czy to magnetycznym, czy półprzewodnikowym ...
haimg

2
Możesz używać dowiązań symbolicznych i przenosić pamięć podręczną instalatora MSSDK / Windows / etc na dysk twardy (mając jednocześnie dowiązania symboliczne wskazujące nowe lokalizacje z wymaganych ścieżek na dysku systemowym); i umieść własny kod na dysku SSD (część, która wymaga szybkiego losowego dostępu). A użycie kopii zapasowych byłoby prawdopodobnie lepszym rozwiązaniem niż poleganie na RAID.
penartur

3
+1 za to rozwiązanie. Właściwie użycie dysku SSD zapewni znacznie lepszą wydajność. Jest mało prawdopodobne, aby korzystała z jeszcze innego poziomu pamięci podręcznej, podczas gdy użycie dysku SSD do partycji systemowej.
Jesse

1
Używam SSD do plików systemowych i HDD do folderu domowego. Zauważyłem, że hdd to wąskie gardło, więc musisz przeczytać z niego wiele plików, np. Fire fox zaczyna się po uruchomieniu.
aisbaa

2

FancyFlash wykonał robotę. Mam własny serwer Hyper-V R2 @ home dla moich laboratoriów i mam napęd OCZ Revo Hybrid PCIe. Niestety wbudowany sterownik pamięci podręcznej działa tylko w systemie Windows 7. Brak planu dla systemu Windows Server 2008 R2. Więc zainstalowałem sterownik FancyFlash na moim hoście Hyper-V i skonfigurowałem mój dysk SSD na Revo Hybrid, aby działał jako pamięć podręczna dla dysku wbudowanego 1 TB (tam, gdzie jest mój VHD). TaDa! Działa i przyspiesza moje maszyny wirtualne! :)

Mam nadzieję, że końcowe wydanie będzie niedrogie $$$ ...


3
Czy masz link do tego oprogramowania?
haimg

Zastanawiam się, czy miał na myśli „FancyCache” (obecnie znany jako PrimoCache)? - Było w fazie beta (a ostateczna cena nieznana) o czasie, w którym opublikowano tę odpowiedź (IIRC). Ale minęły dwa lata i ma 21 punktów, więc wątpię, czy kiedykolwiek jeszcze się zaloguje i powie nam. : - /
BrainSlugs83

2

eBoostr to aplikacja, która buforuje duże części regularnie używanych aplikacji w celu przyspieszenia systemu. Zwykle jest przeznaczony do użycia napędów USB lub nieużywanej pamięci RAM, ale nie ma prawdziwego powodu, dla którego nie można zamiast tego użyć dysku SSD.

Jest dostępny dla wszystkich głównych wersji systemu Windows i brzmi bardzo podobnie do tego, czego szukasz.

  • eBoostr śledzi użycie aplikacji w systemie i może wstępnie buforować dane najczęściej używanych, co zmniejsza opóźnienia ładowania i optymalizuje wydajność
  • Łatwy w użyciu interfejs „przeciągnij i upuść” umożliwia selektywne ulepszanie aplikacji w systemie, a także nadawanie priorytetu aplikacjom ulepszonym przez eBoostr
  • Skrócony czas ładowania i mniejszy dostęp do dysku twardego pomagają przedłużyć żywotność baterii laptopów i netbooków korzystających z eBoostr

Czytaj więcej: http://www.eboostr.com/feature


2

Chociaż z pewnością możliwe jest załadowanie całego systemu operacyjnego i aplikacji na jeden dysk SSD, prawdopodobnie nie powinieneś. Z czasem dyski SSD zwalniają poprzez ciągłe ponowne zapisywanie i należy je „odświeżyć”, aby przyspieszyć. Lepiej jest użyć najszybszego dysku twardego, jaki można znaleźć, takiego jak dysk SATA 600 Gb / s, i uzyskać płytę główną lub inny kontroler obsługujący buforowanie SSD na poziomie sprzętowym. Wszystkie płyty główne Asus ROG Maximus obsługują tę wbudowaną funkcję.

Jednak dopóki nie zbudowałem tego nowego systemu, znalazłem sposób na uzyskanie korzyści z dysku SSD. Zbudowałem pamięć podręczną na dysku SSD i chociaż jest ona na moim głównym dysku twardym, system Windows wydaje się automatycznie używać szybszego dysku SSD. Przeniosłem także całą pamięć podręczną przeglądarki Internet Explorer na dysk SSD, który przyspieszył surfowanie i wideo w Internecie co najmniej 2 lub 3 razy.

Nowy system będę budował na płycie głównej Asus Maximus VI Hero z procesorem Intel i7 4. generacji w formacie gniazda 1150. Wydaje się być dobrym poziomem wydajności bez wydawania tysięcy na dotarcie. Przewiduje się, że całkowity koszt wyniesie 800-900 USD, obejmując nową wersję systemu Windows.


2

Można korzystać z technologii Windows I / O ReadyDrive i ReadyBoost . Ponieważ technologie te pochodzą z okresu poprzedzającego wprowadzenie dysków SSD, niewiele jest informacji na temat tego, czy działają one z dyskami SSD, ani na ile dobrze.

Aby uzyskać informacje na temat ReadyBoost, zobacz podpowiedź na temat tego, jak używać dysku SSD jako dysku pamięci podręcznej ReadyBoost? , chociaż ten drugi wątek twierdzi inaczej.

ReadyDrive to funkcja systemu Windows Vista, która umożliwia komputerom z systemem Windows Vista lub nowszym wyposażonym w napęd hybrydowy lub inne pamięci podręczne Flash (takie jak Intel Turbo Memory) szybsze uruchamianie i wznawianie działania po hibernacji w krótszym czasie.

Można także umieścić plik stronicowania na dysku SSD, choć z ograniczoną oczekiwaną poprawą, jeśli pamięć systemowa jest wystarczająca.

Jak zauważyła penartur, najlepsze ulepszenie nastąpi po zainstalowaniu systemu Windows na dysku SSD.


1
Wskaźnik awaryjności dysków SSD jest znacznie niższy niż w przypadku tradycyjnych dysków twardych - kiedyś może być na odwrót, ale nie w momencie zadawania tego pytania i odpowiedzi. Kilka lat temu pojawiło się wiele obaw związanych z cyklami kasowania zapisu SSD i wszyscy wydawali się tymczasowo zapominać, że dyski twarde są wyjątkowo delikatne i regularnie się psują, często bez ostrzeżenia. Obawy związane z cyklami zapisu prawie nigdy nie stanowią problemu w przypadku nowoczesnego wyrównywania zużycia, chyba że zapisujesz terabajty danych co tydzień przez kilka lat.
thomasrutter

1

Pobierz ExpressCache

Czy szukałeś w ExpresCache Google ? Widzę, że można go pobrać

  • SanDisk - link po prawej; działa tylko z dyskami SSD SanDisk
  • Lenovo - link poniżej w przewodniku; może również zależeć od sprzętu

Zwłaszcza w Lenovo można pobrać wersję x86 lub x64. Wydaje się, że Sandisk oferuje po prostu ExpressCacheSetup.exe i nie wiem, którą architekturę obsługuje. Może jedno, a może jedno i drugie ...


Oba wymagają sprzętu od odpowiednich dostawców. Oprogramowanie nie zainstaluje się poprawnie, chyba że przejdzie kontrolę sprzętu.
niedz.

0

ExpressCache jest tylko produktem OEM. Jestem przekonany, że posiada wewnętrzne mechanizmy kontrolne uniemożliwiające użycie go na sprzęcie innym niż licencjonowani producenci OEM.

Wygląda na to, że w tej chwili FancyCache jest jedynym realnym narzędziem do użytku ogólnego / innych niż OEM. Mogę coś źle zrozumieć, ale wydaje mi się, że coś takiego jak ReadyBost na dysku SSD całkiem szybko wypali jego cykle zapisu. Według mnie pomysł polega na tym, aby mieć tylko jedną literę dysku na główny dysk twardy i dysk SSD, umieszczając najczęściej używane i ogólnie statyczne pliki na dysku SSD oraz przechowując rzadziej używane i często modyfikowane pliki na dysku twardym. Zapewniłoby to korzyści płynące z wydajności dysku SSD i długoterminową żywotność dysku twardego i nie wymagałoby od użytkownika konieczności równoważenia przestrzeni na dysku SSD z dyskiem HDD. Potrzeba tego jest tak oczywista, przynajmniej dla mnie, że jestem zaskoczony brakiem rozwiązań tej potrzeby.


-2

Nie wymieniono tutaj nazwy VeloSSD. Nie mogę nadać temu programowi dobrej reputacji, ponieważ często rujnuje mi dane, ale inny użytkownik stwierdził, że działa dobrze


2
Samo dodanie nazwy produktu do listy produktów nie jest uważane za odpowiedź, a to „świecące zalecenie” nie jest zbyt przydatne. Przy odrobinie powtórzenia możesz opublikować to jako komentarz.
fixer1234,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.