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.