Mam serwer z 2 dyskami twardymi (2x 1 TB), działający w RAID 1 (SW-RAID). Chcę poprawić wydajność IO za pomocą flashcache
. Są na nim uruchomione maszyny wirtualne KVM, używając LVM
.
W związku z tym mam następujące pytania:
- Czy to w ogóle zadziała?
flashcache
działa na urządzeniach blokowych, jednak wszystkie są maszynami wirtualnymi z własną konfiguracją. - O ile spodziewałbym się zwiększenia wydajności? Większość maszyn wirtualnych obsługuje strony internetowe i niektóre gry hosta.
- Jak duży musi być dysk SSD? Czy większy dysk SSD zwiększyłby wydajność, ponieważ może buforować więcej plików?
- Co się stanie, jeśli dysk SSD umrze? Czy
flashcache
pobierałbym pliki z tradycyjnego dysku twardego i mógłbym po prostu wymienić dysk SSD? - O ile szybciej byłoby
writeback
w porównaniu zwritethrough
iwritearound
?
Niestety nie mam dostępu do systemu testowego, więc czy mogę zainstalować flashcache
na serwerze na żywo bez odmontowywania dysków? Znalazłem tutaj świetny samouczek , którego chciałbym użyć.
centos
kvm-virtualization
lvm
flashcache
Devator
źródło
źródło
Odpowiedzi:
Flashcache dla tych, którzy jeszcze go nie widzieli, to metoda rozszerzenia pamięci podręcznej bloków systemu Linux na dysk SSD. Jest to tańsze niż uruchamianie serwera z połową TB pamięci RAM tylko do buforowania.
Powinno. Pamięć podręczna bloków systemu Linux działa poprzez buforowanie dostępnych bloków , a nie plików . Tak długo, jak nie dajesz maszynom KVM bezpośredniego dostępu do urządzeń blokowych (nie jesteś), Linux Block Cache będzie działał. Jednakże, jeśli są dając maszynom KVM bezpośredni dostęp blokowy urządzenia odpowiedź jest mniej jasne.
Jeśli korzystasz z wirtualnych dysków z plikami, to na pewno zadziała.
Jeśli korzystasz z dysków wirtualnych wspieranych przez LV, nie wiem.
To jest coś, na co nie możemy odpowiedzieć. To zależy od różnych rzeczy. Podsumowując, uzyskasz najlepszą wydajność, jeśli rozmiar dysku SSD będzie większy niż aktywny zestaw bloków. Jeśli uzyskasz idealne buforowanie, wydajność będzie podobna do działania całego systemu na dyskach SSD. Co skutecznie będziesz robił.
Znalezienie dokładnego rozmiaru jest czymś, w czym nie możemy pomóc. Więcej jest oczywiście lepsze, ale znalezienie dokładnego stosunku między pamięcią podręczną-SSD a pamięcią podstawową nie jest prostą sprawą.
Komplikuje to zapisy ustawione na natychmiastowe opróżnianie, takie jak niektóre operacje systemu plików i niektóre konfiguracje baz danych. Te zapisy zostaną tylko na krótko zapisane w pamięci podręcznej, a na ich wydajność nie wpłynie w żaden sposób obecność lub brak pamięci flash.
To samo dzieje się, gdy mówisz Linuksowi, aby upuszczał bufory, ale z pewnym zwrotem. W przypadku pamięci podręcznych wszelkie niepoprawne zapisy znajdujące się w pamięci podręcznej bloków zostaną opróżnione na dysk. Co stanie się, gdy dysk SSD zniknie, zależy od trybu buforowania :
Zapisywanie : wszystkie zapisy są zapisywane równolegle w pamięci podręcznej i pamięci podstawowej, więc szanse na nagłą utratę dysku SSD powodującą błędy na maszynach wirtualnych są bardzo małe.
Zapisywanie : Wszystkie zapisy są zapisywane w pamięci podstawowej i buforowane tylko podczas odczytu. Brak szansy na błędy w maszynach wirtualnych.
Zapis zwrotny : Wszystkie zapisy są najpierw zapisywane w pamięci podręcznej i zapisywane w pamięci podstawowej w tle. Najprawdopodobniej spowoduje błędy w maszynach wirtualnych, jeśli dysk SSD ulegnie awarii i nie użyłbym tego trybu w produkcji.
Zależy od tego, ile piszesz. Jeśli twoje zapisy okresowo nasycają pamięć podstawową, wzrost wydajności może być dość znaczny. Jeśli jesteś głównie czytany z pewnym zapisem, prawdopodobnie nie zauważysz ulepszeń.
Ponadto zapisywanie jest złą zasadą dla tego, co robisz, więc nie używaj go.
źródło
writeback
ponieważ mogłoby to wszystko zepsuć bez jakiegoś BBU. W końcu nie będę używać buforowania SSD, tylko zwykły SSD. Dzięki jeszcze raz!Tak, będzie działać poprawnie, o ile korzystasz z odpowiednich urządzeń blokowych. I jest sztuczka.
Gdy LVM skanuje w poszukiwaniu PV, powinien zobaczyć partycję przez sam dysk twardy, a także przez „wirtualne” urządzenie flashcache.
Jednym oczywistym objawem powinno być to, że narzędzia LVM narzekają na duplikaty PV.
Poprawka, aby uniknąć tych ostrzeżeń, a co ważniejsze, upewnić się, że urządzenie LVM2 używa pamięci flashcache, polega na dostosowaniu filtra
/etc/lvm/lvm.conf
.Strona
LVM.CONF(5)
wyjaśni to lepiej niż ja, ale zostawię ci przykład, jeśli wszystkie woluminy fizyczne są wspierane przez flashcache:źródło
Istnieje również poziom od twórcy lessfs. Umożliwi to tworzenie urządzeń hybrydowych między dyskiem SSD a dyskiem twardym. Wydajność warstwy wydaje się przewyższać Flashcache.
http://www.lessfs.com/wordpress/
http://www.lessfs.com/wordpress/?p=776
//Chrześcijanin
źródło
Niektóre aplikacje otwierają pliki w sposób niebuforowany.
http://man7.org/linux/man-pages/man2/open.2.html
Na przykład jest to bardzo częste w przypadku baz danych. Sprawdź dokładnie, czy pamięć flash działa z tym zestawem aplikacji.
źródło