bcache na md lub md na bcache

bcache zezwala na jeden lub więcej szybkich dysków, takich jak flash dyski półprzewodnikowe (SSD), które pełnią rolę pamięci podręcznej dla jednego lub więcej wolniejszych dysków twardych .

Jeśli dobrze rozumiem,

  • dysk SSD * można przypisać do pamięci podręcznej wielu zapasowych dysków twardych, a powstałe w ten sposób urządzenia buforowane można ustawić w macierzy RAID za pomocą mdadm
    lub
  • wiele dysków twardych można umieścić w jednym urządzeniu md Dysk SSD przypisany do pamięci podręcznej, który

Zastanawiam się, jakie jest rozsądniejsze podejście. Wydaje mi się, że rozbudowa RAID 5/6 może być prostsza przy użyciu jednej lub innej techniki, ale nie jestem jasne, które!

Czy istnieją dobre powody (np. zwiększenie pamięci zapasowej lub cokolwiek innego), aby wybrać jedną metodę zamiast drugiej (w przypadku dużego systemu plików innego niż root zawierający pliki kopii zapasowej maszyny wirtualnej)?


* przez „dysk SSD” Mam na myśli jakieś redundantne urządzenie SSD, np. RAID1 z dwoma al SSD

Komentarze

  • W obu przypadkach wszystkie dyski bcache plecy będą musiały być sformatowane za pomocą bcache – więc ' będziesz musiał albo utworzyć md, sformatuj pojedynczy wynikowy dysk w całości jako partycję wspieraną bcache, połącz go z dyskiem pamięci podręcznej i stamtąd lub sformatuj wiele dysków za pomocą bcache, połącz je z ich dyskami pamięci podręcznej, a następnie sformatuj wiele dysków jako jedną tablicę. W każdym przypadku istnieje wiele punktów możliwych awarii, z których wszystkie zależą od współdziałania między dwoma systemami plików – nie wspominając o końcowym fs. zobacz tutaj : przewiń w dół .
  • Dzięki github.com/g2p/blocks , możesz przekonwertować go na miejscu, chociaż są pewne ograniczenia.
  • @mikeserv Rozumiem to wszystko, to jest dla serwera zbudowanego specjalnie więc ' wszystko w porządku. Co masz na myśli " dwa systemy plików "? bcache nie jest systemem plików – jedynym systemem plików, jaki będę mieć ', będzie XFS na ostatecznym urządzeniu bcache lub mdadm (w zależności od tego, którą opcję wybiorę).
  • Dzięki @Adam, konwersja na miejscu nie jest dla mnie problemem.
  • @mikeserv nie, to nie jest ' t. Systemy plików (np. Btrfs, xfs, extN itp.) Działają na wierzchu urządzeń blokowych. mdadm i bcache działają na poziomie urządzenia blokowego, a nie na poziomie systemu plików (btrfs myli problem z tym ' naruszeniem warstw, ale jest to zupełnie osobna rozmowa).

Odpowiedź

Myślę, że buforowanie całego urządzenia md ma największy sens.

Umieszczenie bcache w pamięci podręcznej całe urządzenie md poświęca całą ideę raidu, ponieważ wprowadza kolejny pojedynczy punkt awarii.

  • Awarie OTH dysków SSD są stosunkowo rzadkie, a bcache można umieścić w writethrough / writearound tryb (w przeciwieństwie do trybu writeback), w którym nie ma danych przechowywane tylko na urządzeniu pamięci podręcznej, a awaria pamięci podręcznej nie zabija informacji w nalocie, co czyni ją względnie bezpieczną opcją.

  • Innym faktem jest to, że istnieje znaczna ilość obliczeniowa narzut miękkiego RAID-5; podczas buforowania każdego obracającego się członka rajdu oddzielnie komputer nadal musi to robić oblicz ponownie wszystkie parzystości, nawet przy trafieniach w pamięci podręcznej

  • Oczywiście poświęciłbyś trochę kosztownego miejsca na dysku SSD, jeśli buforujesz każdy obracający się dysk oddzielnie. – Chyba że planujesz używać przejętej pamięci podręcznej SSD.

  • Obie opcje stosunkowo nie wpływają na czas wzrostu – chociaż opcja z dyskami wirującymi, które są buforowane oddzielnie, może być wolniejsza z powodu większy ruch na magistrali.

Jest to szybki i stosunkowo prosty proces konfiguracji bcache w celu usunięcia dysku SSD, gdy trzeba go wymienić. Dzięki bloki powinna być możliwa migracja konfiguracji rajdu w obie strony na miejscu.

Należy również pamiętać, że w tej chwili większość (wszystkie?) Dystrybucje płyt CD nie obsługują bcache , więc nie można po prostu uzyskać dostępu do danych za pomocą takich narzędzi, niezależnie od bcachemdraid wybrana opcja układu.

Komentarze

  • I ' zaktualizowałem pytanie, aby było jasne, ' m nie planuję mieć nienadmiarową pamięć podręczną SSD. Twoja druga kula point to doskonały punkt poi dziękuję za to. Trzeci punkt dotyczący przestrzeni: czy masz na myśli to, że ' chcesz przechowywać parzystość na dysku SSD? jeśli chodzi o twój ostatni punkt, ' używam F20, ale ostatecznie będę używał RHEL / CentOS7 lub Debian Jessie (jeśli bcache-tools zrobi to).
  • @JackDouglas Ad Trzeci punktor: Tak, dokładnie to. Ale ponieważ planujesz używać napadniętych dysków SSD, nie ' nie dotyczy Ciebie.
  • Nadal tak, ponieważ ' ll nie tylko będzie dublowany, ale także będzie musiał przechowywać parzystość RAID dla dysków bazowych. To nie jest ' przypadek, jeśli RAID jest wykonywany pod bcache, o czym myślałem, że był twój cel
  • Myślę, że masz na myśli coś przeciwnego: macierz ssd nie ' nie muszę przechowywać wirujących dysków ' parzystości, jeśli jest zasilany cały dysk mdraid.
  • tak, że ' dokładnie to mam na myśli!

Odpowiedź

I ” d myślę, że rozsądnym podejściem jest buforowanie wynikowego urządzenia MD.

bcache jest przeznaczony do przekazywania kolejnych odczytów i zapisów.

Jeśli buforujesz każde urządzenie oddzielnie, logicznie, kilka urządzeń rozłożenie na zaatakowany lub pozbawiony MD, z punktu widzenia bcache, będzie ciągle zapisywać losowe bloki.

Podczas gdy wolumin MD z bcache będzie wyglądał normalnie, zapisywanie plików na woluminie, a nie losowych bloków na kilka urządzeń.

Cały punkt raidu na sprzęt i oprogramowanie polega na rozłożeniu danych w zapleczu, aby wynikowe pliki tem wygląda jak normalny wolumin.

To może nie być poprawne (ponieważ deweloperzy bcache mogą być sprytni i uwzględnić tego rodzaju sytuacje), ale logicznie optymalną rzeczą do zrobienia jest buforowanie woluminów, a nie blokowanie urządzeń.

Komentarze

  • również bardzo dobra uwaga
  • Duży zapis sekwencyjny do RAID5 / 6 tworzy sekwencyjne zapisy do wszystkie urządzenia składowe. Każde urządzenie składowe otrzymuje każdy blok danych N-1 (lub parzystość), ale dane, które otrzymuje, są sekwencyjne. Ale masz ' masz rację, że będzie to zniekształcać. Jeśli są jakieś fragmenty, które widzą częste zapisy z częściowym rozłożeniem, co skutkuje odczytem, modyfikacją i zapisem (części) paska parzystości, może to być buforowane przez bcache. Buforowanie go wyżej, zanim zapis z częściowym paskiem kiedykolwiek dotrze do urządzenia MD, byłoby jeszcze lepsze.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *