Skocz do zawartości
janwron

Serwer do obsługi soft RAIDa (podstawowe parametry)

Polecane posty

Witam (jako nowy użytkownik forum) szanowne grono...

 

Chciałbym się Was podpytać o sugestie/przemyślenia pod kątem maszyny do obsługi programowego RAIDa.

Nie jestem 'sprzętowcem', moja wiedza niewiele wykracza poza minimum potrzebne do administrowania własnym małym serwerkiem w firmie.

 

Gdy 3 lata temu rozpocząłem moją przygodę ze sprzętem byłem tak bardzo zachwycony niską ceną półek na HDD od EMC/DELL, że za kilka stówek jedną sobie kupiłem do zabawy. Szybko okazało się, że to co sprzedawca nazywał 'macierzą' w rzeczywistości jest tylko właściwie obudową na dyski, bez procka. Żądny wiedzy, szperałem dalej... ceny samych procesorów RAID z kolei mnie przeraziły (cały czas mówię o sprzęcie używanym), doszedłem do wniosku, że to co sprzedaje DELL czy też IBM to są właściwie zwykłe serwery wzbogacone o dodatkowy soft i sprzedawane X razy drożej. Dalej przyszedł więc pomysł aby zbudować coś podobnego samemu, długo szukałem kabla HSSDC2, udało się w końcu za jakieś psie pieniądze kupić 2gbps (trochę szkoda bo półka ma kontroler na 4 ale trudno).

Kabelek kupiłem HSSDC2 -> SFP (wyboru właściwie nie miałem), a więc kontrolera też szukałem z SFP, a nie LC. Tu niestety allegro mnie zawiodło srodze :) Po kilku miesiącach, zniecierpliwiony, nie chcąc sprzedawać nerki, kupiłem 2 kontrolery 4ro kanałowe 4gbps po 30$ na amerykańskim eBay (kupiłem 2 bo przesyłka wyniosła 40$ i jakoś tak głupio mi było kupować coś taniej niż sama przesyłka...)

Ogólnie każdy kolejny zakup rozjaśniał mi przyczynę niskiej ceny tych półek :D

 

Niemniej, gdy już udało mi się to wszystko zgadać z serwerem, fdisk wyrzucał błąd przy próbie formatowania, na tym etapie zawiodło mnie nawet google (jak się później okazało, szukałem nie tego co trzeba). Najbardziej praktyczna informacja jaką znalazłem sugerowała, że kontroler jest uszkodzony albo niekompatybilny (to jest sprzęt LSI, z tego co się połapałem przemierzając szerokie wody internetu, większym uznaniem cieszą się qLogic, więc kwestia kompatybilności wyglądała całkiem logicznie).

Gdy już trochę się poddawałem, zupełnie przypadkiem z pomocą przyszedł jakiś allegrowicz (który jeśli to czyta to przypominam: masz u mnie kolego dużego browarka!!), zaczepił mnie w kwestii innego sprzętu, który u kogoś tam nabyłem, od słowa do słowa podpowiedział mi, że DELL (a jak potem doczytałem to IBM też) formatuje dyski 520B (IBM 528B) na sektor... 3 dni low-format'owania do 512 załatwiło sprawę, jestem szczęśliwy :)

 

Teraz tylko zastanawiam się jak zmontować serwer do obsługi tej kieszeni (oczywiście nie wydając zbyt dużo $$$). Obecnie to jest podłączone do mojego serwera w firmie, jest na nim kilka vHostów, wszystko na centos'ie, serwer z mając 18GB RAMu wykorzystuje ok 80%, równiutko, praktycznie cały czas, nie swapuje. Jak już wszystkie dyski sformatowałem, chciałem sobie jakoś tak oszacować wydajność pojedyńczego HDD z tej półki, wrzuciłem jakiś większy plik do skopiowania i zaraz Nagios do mnie krzyknął, że 'Mem Critical', 100% RAM i 100% SWAPa (2GB) zajęte... hmm...

 

W tym momencie kończę opowiadanie i przechodzę do pytań:

1) jak to kurde w linuxach działa? Jak wpakuję 128GB RAMu i będę kopiował plik 500GB to kernel będzie cache'ował w RAMie do pełna?

2) niestety nie mam pojęcia jakie procesory są w sprzętowych kontrolerach RAID, stąd nie wiem jaka (pi * drzwi) moc obliczeniowa byłaby potrzebna w potencjalnym serwerze do obsługi (z tego co widzę parametry Clariion'ów z czasów świetności tych półek d*** nie urywają, przeciętnie taki sprzęt miał chyba jakieś 2 rdzenie, 4GB RAM... to jest OK?) - wszelkie sugestie poparte jakimś wytłumaczeniem 'czemu tyle' bardzo mile widziane

3) jak wygląda awaryjność? wyczytałem gdzieś w 'internetach', że przy programowym RAID trzeba samemu odbudowywać macierz po awarii jakiegoś HDD (system tego sam nie zrobi po wymianie), z drugiej jednak strony wyczytałem, że można konfigurować hot-spare'y więc chyba tak źle nie jest...

4) czytałem na jakiś forum (niestety przypadkiem tam trafiłem, nie potrafię już wrócić do tych materiałów), wypowiedź człowieka, który pisał, że wydajność takiego zestawu bardzo mocno poprawił mu montaż małego (chyba pisał, że 32GB) dysku SSD do obsługi cache... co on mógł mieć na myśli? chodzić mogło o to, że zamontował SWAPa na takim dysku, czy dla mdadm cache można skierować na jakiegoś dev'a?

 

Na koniec chciałbym napisać, że uwagi nt prądożerności takiego zestawu (jakkolwiek zasadne) mnie nie przekonają do porzucenia zabawy... wiem ile to prądu ciągnie, Energa i tak mnie już lubi, polubią mnie jeszcze bardziej. Moim celem jest zdobycie jakiejś wiedzy i doświadczenia. Jestem ciekaw jak dużo za jak najmniejsze pieniądze można wycisnąć (kontrolery są na 4gbps, chciałbym zobaczyć ile z tego wyjdzie w praktyce). W tej chwili wydałem na wszystko ok 1000 zł, z czego 600 to była półka + HDD, którą kupiłem na pałę, nie wiedząc jeszcze w co się pakuję (serwera nie liczę, bo już go miałem wcześniej), wydaje mi się, że przy takiej kwocie nie mogę sobie jeszcze powiedzieć, że zwariowałem, a serio chciałbym zobaczyć jak to wszystko będzie działało. W przyszłości może używać dysków SATA aby stosunek powierzchni do ceny był lepszy, dzielić takie zasoby po FC (karty z LC są dużo tańsze niż SFP, a do wszystkich 4ech portów w moim kontrolerze mam paluchy LC), może pchać na to prywatne zdjęcia i filmy bo już nie mam gdzie ich trzymać, mieć miejsce, na które mógłbym szybko kopiować obrazy vhostów itp

Będę Wam bardzo wdzięczny za wszelkie sugestie/przemyślenia. Wydaje mi się, że dużo praktycznych materiałów w tych kwestiach w naszym rodzimym języku nie ma, może zostanie coś z tego jeszcze dla potomnych... :)

Z góry dzięki za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Do końca nie zrozumiałem Twojego wywodu.

 

Chcesz z PCta zrobić macierz poprzez zainstalowanie na nim linuxa z soft raidem oraz kilku kart FC?

 

Jeśli tak to karty FC muszą mieć obsługę FC Target Mode i najlepiej zeby były obługiwane przez STGT driver.

 

A co do mocy procka i ramu to najlepiej zobacz co wkładają obecnie w takie maszyny producenci "raidów". Niektóre tańsze dają radę na atomie, raidy md wielkich mocy procesora nie potrzebują. Dodatkowo zobacz sobie jakie parametry md raidów (w /proc) można zmieniać, żeby wypływać na wydajność.

 

Ogólnie pomysł nie jest najlepszy, żeby robić to po FC, bo nie wystawisz targetów z mulipath. IMHO takie rozwiązania lepiej już robić po iSCSI z LACP (bonding).

 

A automatyczną odbudową raidu można sobie trzema skryptami zrobić ...

 

A i jest mnóstwo gotowych rozwiązań (specjalne dystrybucje linuxa), które z PCta/serwera robią storage (NAS/iSCSI/FC) więc nie trzeba wyważać otwartych drzwi.

 

pzdr,

Łukasz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzielenie zasobów dalej, to już osobne zagadnienie.

Wiem, że istnieją gotowe dystrybucje, jeśli zastosuję gotowca to niewiele się po drodze nauczę...

Póki co głównie chodzi mi o to, w jakie parametry maszyny celować (aby nie kupić czegoś, co w potencjalnym ostatecznym rozwiązaniu będzie bezużyteczne).

Dzięki za odpowiedź.

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To rozwiązanie ma być do "domowego użytku" czy chcesz zbudować macierz, którą będziesz podłączać do serwerów gdzieś na produkcji?

 

Jeśli chodzi o cache na SSD to w linuxie to chyba tylko bcache sie tu sprawdzi (jak ostatnio sprawdzałem, to jeszcze do oficjalnego kernela nie wszedł). Z gotowców to appliance, które mają pod spodem ZFSa (np. Nexenta) potrafią łatwo używać SSD jako cache dla dysków z talerzami. Samemu chyba nie dasz rady stworzyć takiego mechanizmu.

 

Jak chcesz elastyczność, to powinieneś po tym FC/iSCSI udostępniać wolumeny LVMa, zeby mieć możliwość zwiększania tego w miarę potrzebny. Jednak ja bym na jakąkolwiek produkcje wrzucił jednak coś gotowego (np. Openfiller ma możliwość udostępniania po FC, ale trzeba ręcznie pokonfigurować FC targety - przynajmniej rok temu nie miał tego w GUI).

 

Z używanymi kartami FC trzeba uważać. Przede wszystkim na rodzaj łącza (PCI/PCI-X/... oraz ilobitowe łącze). Potem trzeba też patrzeć czy takie zabawki nie mają ograniczenia np do działania tylko w konfiguracji loop oraz co najważniejsze w Twoim przypadku czy potrafią wystawiać targety FC (listę takich kart można znaleźć w necie).

 

Jak kupisz switche 2 tanie switche z LACP, pare kart sieciowych to możesz zrobić w miarę fajne rozwiązanie na iSCSI. Sam wolę FC, ale dedykowane rozwiązania (netapp, DXy fujitsu, emc, itp), ale to nie ta kasa. Raz odpalałem openfillera z udostępnianiem targetów po FC i zapewne nadal to działa, ale w porównaniu do gotowych macierzy to naprawdę lipne było.

 

pzdr,

Łukasz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No właśnie sam nie wiem... (bo nie wiem czego oczekiwać). Zgodnie z tym co wcześniej pisałem, teraz to jest research. Przydałoby mi się kilka bezpiecznych GB na użytek domowy (od kiedy kupiłem sobie GoPro przestrzeń dyskowa na domowym PC zaczęła znikać momentalnie...). Gdyby rozwiązanie okazało się bezpieczne i stabilne, docelowo pewnie chciałbym używać tego na produkcyjnym serwerze, póki co jednak takich potrzeb nie ma. Dobrze też jednak byłoby wiedzieć, czy jestem skazany na co uda mi się wepchnąć do serwera (ze względu na ograniczone środki finansowe o profesjonalnym SANie nie ma co obecnie marzyć) aby, gdy nadejdzie taki czas, wiedzieć jakie mam opcje. Mieszkam rzut beretem od firmy, nawet jeśli będę stosował taką macierz na potrzeby domowe to i tak sprzęt wyląduje razem z serwerem (chociażby po to, aby stało za UPSami), kabelek już mam, bo ciągnę sieć z biura, gdybym podłączyć sobie tą macierz do domowego PC po iSCSI to po prostu pociągnę jeszcze jeden kabel.

W sumie to nie sprawdzałem czy karta obsługuje wystawianie targetów... w mojej naiwności wydawało mi się, że z założenia wszystkie to potrafią... stosuję rozpoznanie bojem.

Nie udało mi się jeszcze znaleźć parametrów Clariionów ale widzę, że IBM klasy mojej półki ma na pokładzie 2-4 rdzenie ~3GHz i 4GB RAMu. W coś takiego będę mierzył. Widziałem kiedyś na naszym ulubionym serwisie aukcyjnym takie fajne małe serwerki 1U (dużo płytsze niż typowe) ale chyba wszystkie nie miały redundantnego zasilania więc ostatecznie lipa. Niemniej właśnie coś takiego, ekonomicznego by się mi przydało.

Dzięki za zaangażowanie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Życie podyktowało mi warunki: jedna baza danych mysql kopnęła w kalendarz i musiałem wyskrobywać dane z ibdata1, stwierdziłem, że nie będę męczył podstawowej macierzy, więc podłączyłem sobie 4 HDD z tej kieszeni, zmontowałem na nich RAID10, zrobiłem swoje i teraz sprawdzam 'ile wyciągają'...

Zwykła zabawa dd daje 169MB/sec dla odczytu i 103MB/sec dla zapisu. Spodziewałem się, że jak zobaczę wyniki to zemdleję z oniemienia... i jakoś w sumie nie zemdlałem. Chyba faktycznie lepiej kombinować z SATA. Mam jeszcze do zabawy jakiś niewiadomego pochodzenia (pewnie z ramek hot-swap EMC) adapter SATA->FC, podłączyłem do niego starego Samsunga na SATA i nie bangla (chyba nawet nie zaspinował)... kwestia kompatybilności (może Seagate by działał?) czy to po prostu nie ma prawa śmigać? Ostatecznie całkiem sensownym rozwiązaniem byłoby wypchać taką półkę dyskami SATA, zużycie prądy pewnie spadłoby z 60%, bladego pojęcia nie mam natomiast jakby siadło I/O.

Spróbuję sklecić jutro RAID 10 z 6-8 HDD i spróbuję jakiś pseudo-benchmark na tym wykonać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zwykła zabawa dd daje 169MB/sec dla odczytu i 103MB/sec dla zapisu. Spodziewałem się, że jak zobaczę wyniki to zemdleję z oniemienia...

 

Nie do końca rozumiem Twoje wypowiedzi, ale pamiętaj, że FC to typ interfejsu, a nie typ dysku. Jak na dysk magnetyczny dostałeś sensowne wyniki. Mogłyby być wyższe (szczególnie odczyt), choć na pewno nie radykalnie, ale wiele będzie zależeć od szczegółów. Jak rozumiem zastosowałeś używane dyski, ich stan może wpływać na wydajność.

 

Generalnie widzę, że próbujesz podłączać wszystko do wszystkiego i sprawdzać co z tego wyniknie. Ale to niestety tak nie działa. Osiągnięcie zadowalającej wydajności wymaga precyzyjnego zgrania poszczególnych elementów sprzętu oraz konfiguracji software, kernela, czasem różnych driverów czy firmware'ów.

 

Więcej się nauczysz, jeśli mając określoną bazową konfigurację sprzętową popracujesz po stronie software nad optymalizacjami. Później możesz eksperymentować z innymi konfiguracjami hardware, ważne żeby nie robić tego chaotycznie. Dopóki nie zrozumiesz pewnych subtelnych zależności, możesz inwestować w najdroższe kontrolery i najdroższe modele kart sieciowych, a i tak nie wykorzystasz ich potencjału. Ale ważne jest się uczyć i brawa za obrany kierunek.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No nie jestem aż takim ignorantem sprzętowym aby nie wiedzieć, że diabeł tkwi w szczegółach. Zdaję też sobie sprawę, że pewnie nigdy do końca tych detali nie zrozumiem, bo to są GB wiedzy (jeśli mogę się tak wyrazić...) i lata doświadczenia, na mnie już jest pewnie za późno.

Jestem trochę zawiedziony wydajnością, bo kierowałem się prostą logiką laika: jak było nowe, to było zaporowo drogie, pewnie musi być szybkie. Pojedynczy HDD dawał jakieś 90MB/sec co samo w sobie jakoś super szybkie też nie było. Miałem nadzieję, skoro takie macierze kosztują przeważnie tyle co działka budowlana pod Warszawą, że uda mi się ugryźć kawałeczek tego tortu stosując różne 'skróty'.

Rozumiem, że takie rozwiązanie (na dużo większą skalę) przechowywania danych jest bardzo elastyczne i oferuje wiele możliwości skalowania, miałem jednak inne wyobrażenie na temat prędkości tych dysków. Nie dziw się proszę, że ja się dziwię, bo to jest moje pierwsze zetknięcie się ze sprzętem klasy enterprise (do tego stopnia, że nie wiem nawet czy to już enterprise czy jeszcze small-business :) )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oceniasz wydajność na podstawie dd? Zainteresują się po pierwsze czym jest write penality a po drugie sprawdź wydajność w random IO (random write and random read). Polecam iozone do tego.

 

Potem możesz oceniać wydajność storage ;).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Taki pomiar jako punkt odniesienia chyba zły nie jest... sprawdziłem jeden dysk, sprawdziłem potem macierz, można by się spodziewać, że w RAID 10 odczyt będzie z 4ech dysków na raz (w tym szczególnym przypadku), a tak nie jest... trochę materiałów na ten tema prześledziłem i widzę, że to jest typowe zachowanie ale nie znalazłem odpowiedzi na pytanie "dlaczego".

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja się już zgubiłem w Twojej obecnej konfiguracji, ale rozumeim, że sprawdzałeś prędkość RAID10 zbudowanego z 4 dysków przez kanał FC(?)

 

Jakiej prędkości kanał FC? 2Gbps? Rozumiem, że nie było multipathingu, Round Robin i tuningu FC?

 

pzdr,
Łukasz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobrze rozumiesz.

 

HBA obsługuje 1,2 i 4Gbps

Kontroler w półce obsługuje 1,2,4 Gbps

 

Jednak HBA synchronizuje się na 2 Gbps, wnioskuję, że to przez kabel...

 

Ostatni paragraf Twojego posta to dla mnie (jak to ujął kiedyś pewien mędrzec...) Teatrzyk Dowcipów Hermetycznych... Jeżeli przez multipathing rozumiesz wielokrotne podłączenie (fizyczne) to nie, półka jest podłączona bezpośrednio do HBA jednym kanałem.

 

HBA ma 4 kanały, półka ma 2 kontrolery, ja mam jeszcze jeden kabel wolny... gdybym go użył to czy można się spodziewać przyrostu prędkości IO? Jeśli tak to dlaczego? Bo wydaje mi się, że wąskim gardłem obecnej konfiguracji jest prędkość samych dysków... (chyba?)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jesteś połączony linkiem 2Gbps, w zależności od rodzaju protokołu na tym linku możesz teoretycznie osiągnąć jakieś trochę ponad 200MB/s. Ale nie wiem jak masz skonfigurowane FC. Więc bardzo prawdopodobne, że wysycasz po prostu kanał tymi 170MB/s.

 

Multipath raczej jednego zadania Ci nie przyspieszy, może roundrobin w pewnych przypadkach dodać ~10%.

 

Połącz FC na 4Gbps i potestuj. Jak masz skonfigurowane cache na tej macierzy? Jak masz skonfigurowane cache dysków?

Wiele jest opcji konfiguracyjnych i odpalenie 1dd po podłączeniu nie jest podstawą do wyciągania wniosków.

Ale raczej podejrzewam, że dużo większego sekwencyjnego transferu nie osiągniesz, potestuj jednak random IO, bo to jest sensowny wyznacznik wydajności.

 

pzdr,

Łukasz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×