google_gfs

					 Jak znaleźć igłę
w terabajcie siana




         Marcin Sochacki
   (kiedyś) Google Ireland Ltd.
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
Kluczowe wymagania

   stabilność pracy
   skalowalność
   szybkość odpowiedzi
   rozsądny koszt
Jak zbudować taki system?

   Sprzęt, sieci
       prosta platforma sprzętowa PC, Linux, niski koszt
   System rozproszony
       nawet największy komputer nie podoła – dziel
        i rządź!
   Algorytmy, struktury danych
       efektywne przetwarzanie ogromnych ilości danych
   Interfejs użytkownika
       optymalizacja, prostota i łatwość użycia
   i wiele innych
Co z awariami sprzętu?

   Średni PC psuje się raz na trzy lata
   Z 1000 PC, codziennie jeden będzie się psuł
   >1000? Walka z wiatrakami!
   Rozwiązanie:
       sprytne oprogramowanie, które radzi sobie
        z awariami
       replikacja i redundacja
       gdyby nie odporne oprogramowanie, trzeba byłoby
        inwestować w drogi sprzęt
Odporne oprogramowanie

   Podstawowa zasada: najprostsze jak się da
       bo diagnostyka skomplikowanego systemu jest
        trudna i czasochłonna
   Połączenia TCP między serwerami WWW
    a serwerami backendowymi
   Wiele równoległych połączeń do każdego typu
    serwera – w razie awarii inna maszyna udzieli
    odpowiedzi
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 + ext2)
   Wiele petabajtów, duża odporność na awarie
   Transfer rzędu 10 GB/s i więcej
Sprzęt

   Wiele serwerowni na całym świecie
   Routery, switche, load balancery
   Racki z 40-80 maszynami
   Dwa switche GigE w każdym racku
   Komponenty PC głównie z Dalekiego Wschodu,
    robione na zamówienie
   100% Linux
Sprzęt (1999)
Sprzęt (1999)
Dublin nocą (2005)
Sprzęt (2009)
Sprzęt (2009)
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ń
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
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
Wnętrzności GFS (c.d.)

   Sprytne klonowanie i balansowanie danych
   Integralność danych: sumy kontrolne co 64KB
   Garbage collection
   Snapshoty, quota
   Kodowanie Reed-Solomon
   Wady: słaba wydajność dla małych plików
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
Wpadki...

   ”no chunk left behind”
   wredny switch...
       sumy kontrolne w TCP
       sumy kontrolne w GFS (Adler-32)
   książki papa...
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
That's all folks

   Pytania?

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:1
posted:2/17/2012
language:
pages:21