Jakie są zalety / wady różnych opcji buforowania SSD na HDD (cache-dm, flashcashe…)?

23

Wydaje się, że istnieją różne technologie umożliwiające wykorzystanie dysku SSD jako pamięci podręcznej dysków twardych. Te, które znam:

  • dm-cache (autor Redhat - w jądrze 3.9, więc powinien być w Ubuntu 13.10)
  • Flashcache (opracowany i używany przez Facebook)
  • Bcache (opracowany i używany przez Google)
  • EnhanceIO (przez STEC; na podstawie Flashcache)

Czy istnieją zauważalne różnice w różnych wdrożeniach? Który z nich jest najlepszy do regularnego użytku na komputerze stacjonarnym - w celu zwiększenia wydajności zwykłych programów, takich jak przeglądarki internetowe lub gry?

Uli
źródło
Aby zwiększyć wydajność, zauważyłem, że instalacja 64-bitowego ubuntu działała świetnie, moja maszyna stała się jeszcze szybsza niż wcześniej! Ponadto, jeśli chodzi o pamięć podręczną, powinieneś używać pamięci podręcznej skompresowanej z pamięci RAM w tym pakiecie zram-config, który uzyska priorytet w korzystaniu z wymiany. I zapisz grę na SDD i przetestuj ją. Niektóre gry nie będą działać znacznie szybciej, inne będą działać świetnie! Wolę nie używać SDD jako pamięci podręcznej ze względu na limit zapisów, ale dyski SDD stają się coraz tańsze, więc nie trzeba się już tak przejmować :)
Aquarius Power

Odpowiedzi:

14

Naprawdę nie wiem od czego zacząć, ponieważ wszystkie te informacje są doskonałe. Zacznę od kilku informacji o dyskach SSD, a następnie opisu wszystkich różnych metod buforowania i po prostu zacznę od tego. mam nadzieję że ty

Zalety wady

  • Cena: dyski SSD są w jakiś sposób drogie
  • Maksymalna i wspólna pojemność: dyski SSD o dużej pojemności są bardzo rzadkie i drogie
  • Szybkość: w tym miejscu dyski SSD zyskują przewagę
  • Trwałość: dysk SSD nie ma ruchomych części

Najlepiej mieć system hybrydowy, aby mieć to, co najlepsze z obu światów (pojemność, niezawodność, szybkość itp.)

Jądro Linux 3.9 (udostępnione 28 kwietnia 2013 r.) Wprowadza buforowanie SSD. Mapowanie urządzeń jądra zawiera teraz cel pamięci podręcznej o nazwie dm-cache, który umożliwia używanie dysków SSD lub innego urządzenia pamięci jako pamięci podręcznej dla dysku twardego. Zasadniczo przyspiesza zapisywanie i odczytywanie danych, ponieważ pozwala szybszemu dyskowi SSD najpierw buforować dane, a następnie przesyłać je na wolniejszy dysk twardy.

Źródło: Iwn

Flashcache to moduł pierwotnie napisany i wydany przez Facebooka (Mohan Srinivasan, Paul Saab i Vadim Tkachenko) w kwietniu 2010 roku. Jest to moduł jądra, który umożliwia buforowanie dysku na innym dysku w trybie Writethrough. Jest to najczęściej używane do buforowania dysku obrotowego na mniejszym dysku SSD ze względu na wydajność. Daje to szybkość dysku SSD i rozmiar standardowego napędu obrotowego dla ostatnio buforowanych plików. FlashCache to uniwersalna pamięć podręczna bloków zapisu zwrotnego dla systemu Linux.

Źródło: ArchLinux

Bcache to pamięć podręczna warstwy blokowej jądra systemu Linux. Pozwala to jednemu lub większej liczbie szybkich napędów dysków, takich jak dyski SSD oparte na pamięci flash, działać jako pamięć podręczna dla jednego lub kilku wolniejszych dysków twardych.

Dyski twarde są tanie i duże, dyski SSD są szybkie, ale małe i drogie. Czy nie byłoby miło, gdybyś mógł w przejrzysty sposób korzystać z obu zalet? Dzięki Bcache możesz zjeść swoje ciasto i zjeść je.

Łatki Bcache dla jądra Linuksa pozwalają na używanie dysków SSD do buforowania innych urządzeń blokowych. Jest to analogiczne do L2Arc dla ZFS, ale Bcache również buforuje zapisywanie zwrotne (poza tym tylko zapisuje przez buforowanie) i jest niezależny od systemu plików. Zaprojektowano go tak, aby włączał się przy minimalnym wysiłku i działał dobrze bez konfiguracji w żadnej konfiguracji. Domyślnie nie buforuje sekwencyjnego We / Wy, tylko losowe odczyty i zapisy, w których wyróżniają się dyski SSD. Jest przeznaczony do komputerów stacjonarnych, serwerów, wysokiej klasy macierzy pamięci masowej, a może nawet do wbudowania.

Celem projektu jest być tak samo szybki jak dysk SSD i urządzenie buforowane (w zależności od trafienia pamięci podręcznej vs. Nie jest jeszcze tam, głównie do sekwencyjnych odczytów. Ale testy wykazały, że jest to zdecydowanie możliwe, a nawet w niektórych przypadkach lepsze - głównie zapisy losowe.

Źródło: Bcache

Bcache ma dużą wadę i polega na tym, że zabiera pamięć systemu do implementacji pamięci podręcznej.

EnhanceIO to rozwiązanie, które działa pod warstwą aplikacji, umożliwiając aplikacjom korzystanie z zalet wydajności dysków SSD bez większych zmian infrastruktury IT. Pamięć podręczna SSD może przynieść większość korzyści płynących z przełączania dysków twardych na dyski SSD za ułamek kosztów całego systemu SSD. System buforowany zwykle działa z mniejszą mocą niż system oparty na HDD o podobnej wydajności, a to daje dodatkową korzyść dzięki zmniejszeniu wymagań dotyczących chłodzenia.

Pamięć podręczna SSD może również wydłużyć okres użytkowania istniejącego systemu, zwiększając wydajność w celu zaspokojenia rosnących wymagań poprzez przyrostową inwestycję, a nie poprzez hurtową modernizację / wymianę istniejącego systemu.

Buforowanie umożliwia również szybszy dostęp do danych bez dodatkowych kosztów administracyjnych związanych z przechowywaniem, aby uzyskać i zainstalować nowe półki dyskowe, konfigurować nowe jednostki LUN i migrować dane do nowych jednostek LUN. Buforowanie jest prawie przezroczyste i wymaga niewiele, jeśli w ogóle, przestojów. EnhanceIO opiera się na Flashcache.

Źródło: Stec-Inc

Bcache jest najbardziej bezwartościowy ze wszystkich, ponieważ wymaga specjalnie przygotowanej (sformatowanej) partycji danych. Utrudnia to (jeśli to możliwe) dołączenie pamięci podręcznej do istniejącej partycji z danymi, ponieważ potrzebna byłaby 200% pojemności i wykonywanie długiego przenoszenia danych w celu aktywacji / dezaktywacji buforowania.

Genialność EnhanceIO polega na tym, że nie potrzebuje on wcale urządzenia pośredniego i można go podłączyć do dowolnego urządzenia blokowego w locie, nawet gdy urządzenie jest już zamontowane. Kolejną super fajną rzeczą jest to, że możesz dołączyć pamięć podręczną EnhanceIO nie tylko do partycji, ale do podzielonego na partycje urządzenia blokującego, aby buforować wszystkie jej partycje jednocześnie. Podobnie jak moduły enchanceio Flashcache są zbudowane z DKMS i mogą być używane ze starszymi jądrami.

Źródło: Debian

Zalety pamięci podręcznej DM

Pamięci podręczne DM używają uproszczonej architektury, dzięki czemu można je dostosowywać i łatwo dostosowywać. Użytkownicy mogą dostosować rozmiar bloku i pojemność pamięci podręcznej w zależności od ilości danych, które będzie musiał obsłużyć lub od wartości danych. Jeśli konkretna aplikacja musi przechowywać dużą ilość danych w sekwencji, użytkownicy mogą w tym celu skonfigurować pamięć podręczną. Jeśli użytkownik chce zapisać informacje w bazie danych jednocześnie z pamięcią podręczną, nie będzie to zakłócać operacji pamięci podręcznej.

Wady pamięci podręcznej DM

Wadą używania pamięci podręcznej DM jest to, że system operacyjny Linux ma ograniczoną przestrzeń do przechowywania metadanych. Jeśli pamięć podręczna jest duża i zawiera wiele małych bloków, daje to wiele metadanych przechowywanych informacji. Aby rozwiązać ten problem, użytkownik musi zwiększyć rozmiar bloku. Innym możliwym problemem jest to, że po awarii serwera metadane pamięci podręcznej mogą już nie pasować do zawartości pamięci podręcznej, chociaż możliwe jest przywrócenie prawidłowej konfiguracji.

Źródło: Uzupełnienia Fraser Sherman

Z powyższych informacji wynika, że ​​EnhanceIO jest właściwą drogą, ale moim zdaniem, ponieważ jest oparty na Flashcache, wybrałbym pamięć flash. Ale zdecydowanie spróbuję obu przed podjęciem ostatecznej decyzji.

Mitch
źródło
EnhanceIO: sterownik oparty na oprogramowaniu buforującym EhanceIO SSD pochodzącym z projektu Flashcache Facebooka o otwartym kodzie źródłowym, przydatny do używania dysków SSD jako urządzeń pamięci podręcznej dla tradycyjnych dysków twardych. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim
Dziękuję za odpowiedź! Mam nadzieję, że EnhanceIO wyląduje w jądrze 3.10 i będzie dostępny w następnej wersji Ubuntu.
Uli
1
Niezły opis, ale muszę podkreślić, że pamięć podręczna DM jest całkowicie bezpieczna, jeśli wystąpi awaria, nie tracisz oczywiście żadnych danych. W praktyce pamięć podręczna może być mniej wydajna przez pewien czas, dopóki metadane nie zostaną zregenerowane.
lzap
3
Komentarz dotyczący użycia pamięci bcache jest niepoprawny, podobnie jak (cytowany) komentarz dotyczący konwersji.
Gabriel
@Gabriel może modyfikować, ale dołącz źródło. :)
Mitch
1

Informacja zwrotna: Zainstalowałem standardowe pakiety debcache Flashcache na Ubuntu około rok temu w trybie zapisu wstecznego, aby buforować / home (2 TB) do 50 GB miejsca na dysku SSD. Działa cudownie bez żadnych problemów. Miałem kilka związanych z X „zawieszeń” (tj. Nie można ich przypisać do flashcache) i kilka razy użyłem „Ctrl-Alt-PrtScr REISUB”, aby odzyskać bez problemów i problemów z korupcją. Użyłem flashcache, ponieważ a) były dostępne debaty i b) nie wymagało tworzenia kopii zapasowej i przywracania / home.

Kairuri
źródło