1 Jak znaleźć igłę w terabajcie siana Marcin Sochacki
2 Skala działania Biorąc pod uwagę tylko WWW: miliardy zindeksowanych stron średnio 10 KB/stronę efekt: setki terabajtów Trudne zadanie, ale wykonalne: potrzebujemy dużo komputerów i dysków i sieci i oprogramowania
3 Kluczowe wymagania stabilność pracy skalowalność szybkość odpowiedzi rozsądny koszt
4 Przechowywanie danych Dyski IDE są tanie ale awaryjne Nawet największa macierz RAID to za mało Rozwiązanie: Google File System (GFS) – replikacja danych na wiele maszyn (do kilku tysięcy/klaster, Linux + ext2ext4) Wiele petabajtów, duża odporność na awarie Transfer rzędu 100 GB/s i więcej
5 Sprzęt Wiele serwerowni na całym świecie Routery, switche, load balancery Racki z 20-40-80 maszynami Dwa switche GigE w każdym racku Komponenty PC głównie z Dalekiego Wschodu, robione na zamówienie 100% Linux
6 Sprzęt (1997)
7 Sprzęt (1999)
8
9 Dublin nocą (2005)
10 Sprzęt (2009)
11
12 Dalles, OR
13
14 Założenia GFS Częste awarie sprzętu Relatywnie ”mało” dużych plików kilka milionów, >100 MB Pliki są rzadko tworzone, często dopisywane zwykle równolegle (logi, kolejki)! Duże ciągłe odczyty Duża przepustowość ważniejsza od niskich opóźnień
15 Google File System (GFS) Master zarządza metadanymi (w RAM) Transfer danych odbywa się bezpośrednio między klientem a chunkserwerem Pliki podzielone są na kawałki (chunks) – zwykle do 64 MB Kawałki są przechowywane zwykle w trzech kopiach na różnych maszynach
16 Wnętrzności GFS Brak cache'owania danych Log transakcyjny przechowywany na masterze i replikowany, checkpointy Zapobieganie awariom, replikacja metadanych, sumy kontrolne Zapis tylko przez głównego mastera (blokady plików) Odczyt również poprzez repliki Chunkserwery można współdzielić z innymi funkcjami
17 Wnętrzności GFS (c.d.) Sprytne klonowanie i balansowanie danych Algorytm klienta wykorzystuje info o lokalizacji Integralność danych: sumy kontrolne co 64KB Garbage collection Snapshoty, quota Kodowanie Reed-Solomon Wady: słaba wydajność dla małych plików
18 GFS dla użytkownika tool ls -l /gfs/xx/home/wanted API do C++, Python, Java hackowany moduł do FuSE spore zależności od reszty infrastruktury, np. Chubby lock & name service optymalizacje dla BigTable i innych
19 Wpadki... ”no chunk left behind” wredny switch... sumy kontrolne w TCP sumy kontrolne w GFS (Adler-32) książki papa...
20 Konkurencja Global File System (GFS/GFS2) od Red Hata wymaga SAN/iSCSI Lustre 15/30 na top500 serwer metadanych (MDS) w trybie active/standby brak wbudowanej redundancji TASK 2009/04, 520 TB, 10 GB/s InterMezzo, Coda, AFS, GlusterFS, Ceph, GPFS, MogileFS
21 That's all folks Pytania?