Een blik achter de schermen bij Google

Internetnews.com heeft tijdens EclipseCon 2005 gesproken met Urs Hoelzle, de vice-president van Operations en van Engineering bij Google, over de hardware- en softwarearchitectuur van Googles computer- en netwerksystemen. In totaal bevat de database van de zoekgigant ruim tien miljard webpagina's en enkele terabytes aan informatie. Om deze informatie te doorzoeken en te indexeren, maakt Google gebruik van goedkope hardware en redundancy. De gebruikte servers kosten per stuk rond de 1000 dollar en worden vervolgens in de netwerkcluster geplaatst alwaar ze hun plek innemen tussen de andere nodes. De computersystemen draaien een zwaar gepatchte versie van Red Hat met een afgeslankte kernel. Het voordeel van deze manier van werken is dat de hardware goedkoop is, een nadeel is dat de systemen relatief snel kapot gaan en dat daar binnen de netwerkarchitectuur rekening mee gehouden moet worden.

Google logo (klein)Google cachet webpagina's door verzamelingen pagina's op te splitsen in kleine stukken, genaamd 'shards'. Een aantal van deze shards wordt op één machine geplaatst en vervolgens wordt de data op die machine gerepliceerd naar een aantal andere systemen. De masterindex, met informatie over alle webpagina's, is op een vergelijkbare manier opgesplitst over meerdere servers, dit zijn de zogenaamde 'chunk servers'. Hoewel dit systeem primair is opgezet voor fail-safemogelijkheden, werkt het ook goed om de datadoorvoer te bevorderen: wanneer een serverset bezet is, kan de query eenvoudig doorgestuurd worden naar een andere set. Naast de shard- en chunkservers, zijn er ook documentservers. De taak van deze servers is het opzoeken en teruggeven van de relevante tekstgedeelten waarin gebruikers kunnen lezen in welke context de zoekstring op de webpagina staat.

Om dit alles goed te laten werken en te beheren, maakt Google gebruik van drie in-house ontwikkelde softwareoplossingen. De eerste is het Google File System, dat de basis vormt voor het opdelen en random verspreiden van de shards en chunks over de verschillende netwerknodes en serversets. De tweede oplossing die de zoekgigant heeft ontwikkeld, is het Map/Reduce Framework. Dit framework biedt aan ontwikkelaars een automatische en efficiënte manier van 'parallelization and distribution'. Het Map/Reduce Framework is bedoeld om programma's te schrijven die zonder veel inspanning door de enorme hoeveelheden Google-data kunnen zoeken. De derde zelfontwikkelde applicatie is de Global Work Queue. Dit stuk software wordt gebruikt om batch jobs te verspreiden over de servers. Hiermee kunnen grote dataverwerkingsprocessen opgesplitst worden in kleinere deeltaken die door de losse machines uitgevoerd kunnen worden, zodat deze nooit idle zijn.

Door Harm Hilvers

Freelance nieuwsposter

04-03-2005 • 14:26

42 Linkedin

Bron: Internetnews.com

Reacties (42)

42
41
30
5
1
5
Wijzig sortering
Het Map/Reduce Framework is bedoeld om programma's te schrijven die zonder veel inspanning door de enorme hoeveelheden Google-data kunnen zoeken.
Ik krijg hierbij een beetje het gevoel dat Google veel meer van plan is dan dit "framework" uitsluitend voor onze searches in te zetten. Hebben ze daar wel eens duidelijkheid over gegeven? Ik kan me zo voorstellen dat je als je het gebruik van gmail, google.com enz. aan elkaar knoopt geweldig waardevolle marketinginformatie kunt genereren die redelijk nauwkeurig op iemand te herleiden is.
Anoniem: 57363
@JeffreyT4 maart 2005 18:06
Mag je raden waarom ik geen gmail gebruik. Er werd een tijd geleden vraagtkens gezet rond gmail.
Alsof ze iets met jouw gegevens willen doen? Het gaat hun meer om de grote getallen, en aantallen, hoe vaak jij zoekt op Sex maakt ze nix uit. Maar hoe vaak iedereen uit Nederland er bijvoorbeeld op zoekt kan wel eens interresant zijn :P

Gmail, tja verw8 jij dat er bij Google mensen je mail zitten te lezen? Dat zijn miljoenen mails per dag, dus dat maakt ze geen ene fl*kker uit..
Ze vinden het juist (nu al) heel intressant hoe vaak jij op sex zoekt. Met name als ze er wat sex banners bijzetten, en bijhouden hoe vaak je er op klikt.
Zoals altijd, er zijn mensen die zich storen aan het idee dat hun privacy niet gegarandeerd wordt, en er zijn mensen die voor het meest gratis meuk gaan zonder dat ze er over denken waarom ze al die meuk gratis krijgen.
Daarnaast zijn er mensen die graag een supergroot mobile storage account willen voor niet kritische zaken.
Ik zie het meer als een voordeel dat de markt gericht info stuurt naar waar mensen daadwerkelijk behoefte aan hebben.
In het Tyco datacenter gebouw hier vlak naast ons bedrijf in Groningen staan ongeveer duizend Google servers. Tenminste dat is wat mij verteld is door mijn collega die daar laatst voor z'n studie een rondleiding heeft gehad.
Waarom doet google hier eigenlijk geheimzinnig over? Als relatieve buitenstaander snap ik dat toch niet :?
Wat is hun voordeel om het aantal servers geheim te houden? Of is het een "gewoon" bedrijfsgeheim?
Het lijkt me zinnig om de software en de structuur geheim te houden om eventueele kwaadwillende niet wijzer te maken dan ze zijn maar wat het aantal servers daar mee te maken heeft behalve dat het iets kan zeggen over de structuur?
Waarom doet google hier eigenlijk geheimzinnig over?
Het is heel simpel om te zien waarom ze dit geheim willen houden. Stel je een advertentie van Yahoo voor met:

Wij hebben meer servers dan Google!

Veel mensen zullen dan al snel de link leggen dat Yahoo wel beter moet zijn dan Google. Bedenk daarbij dat het meerendeel van de mensen a-technisch is en dus niet snapt dat meer servers niet noodzakelijk beter is...
Nee, dat zal het waarschijnlijk niet zijn. 'Geheimzinnig' doen over het aantal servers vanweg dit soort mogelijke tegen campagnes, terwijl er wel met gemak wordt gezegd dat de servers die gebruikt worden niet van hoge kwaliteit zijn maar er gebruik wordt gemaakt van eigen software en filesystems is niet zinnig.
Ik denk eerder dat ze het beleid hebben geen uitspraken te doen over het aantal locaties, en servers per locatie etc vanwege de gevoelligheid dat 'men' het misschien niet serieus genoeg zou vinden. Het zijn exact de gegevens die concurentie technische erg in de hand werken omdat ze makkelijker overgenomen kunnen worden voor toepassing in concurerende organisaties.
moet je in een iets of wat groot bedrijf maar eens gaan vragen hoeveel pc's er staan, de foutenmarge zal ook 5% zijn, bij google zijn dat dan wel direct een paar duizend pc's :+

t'is juist omdat het redundante clusters zijn, waar pc's volautomatisch vervangen worden dat er niet echt een juist cijfer op te plakken is
Misschien zijn ze bang voor plunderende tweakers.
Omdat wij ons met z'n allen afvragen hoeveel het er nou daadwerkelijk zijn....

Gratis reclame :)
Volgens mij hebben ze het aangepakt op een manier waar vele bedrijven alleen maar van kunnen dromen. Er wordt echt over zaken nagedacht.
Anoniem: 115240
@BlackMeTaL4 maart 2005 14:49
@blackmetal: Het is dan ook hun "business". Andere bedrijven denken ook goed na over hun kernactiviteiten. Maar voor hen is IT een vervelende, veelal zware kost waarvan ze het belang en het resultaat niet altijd direct inzien.
Over hoeveel servers zou het hier ongeveer gaan?
http://www.tnl.net/blog/entry/How_many_Google_machines

Wel van 30 april 2004 en dat komt weer in de richting van 30.000 :P

Is een schatting btw :)
Ik meen toch een newsgroup-bericht gelezen te hebben dat ze afgelopen november (2004) over de 100.000 CPU-grens gegaan zouden zijn...

hier:
http://www.derebote.com/googlecash/googlecash/google_statistics.htm

Niet datgene wat ik gelezen heb, maar daar staat het ook, 100.000 CPU's...
mmmm eh, er kunnen ook multiple cpu's in 1 server he!
Deze meneer houd er een erg interessante theorie op na. De schatting komt uit op tussen de 45.000 en 80.000 machines. Erg veel dus. Deze zijn wel allemaal dual Xeon 2Ghz
http://www.tnl.net/blog/entry/How_many_Google_machines
Search engine Google has deployed 4,000 Linux servers, with plans to increase to 6,000 this year, making it possibly the largest Linux installation in the world.
Dát berichtje komt uit 2000. Nu dus meer dan 6000, dus. :).
Ze hadden 2 jaar geleden 10.000 linux servers staan als ik het me goed herrinner ;).
dat klopt heb een stuk gevonden uit 2002 waar het volgende in staat :

"But to understand what's behind Google's success, one needs to travel ten miles south to its data center in Santa Clara. Here, in three over-air-conditioned cages, each the size of a small office, are thousands of Google's servers. There are more than 10,000 such servers in five of these data centers around the country."

komt van: http://www.mutualofamerica.com/articles/Fortune/2002_05_23/fortune1.as p
Hoe komt het toch dat Google op mij ongeveer 6000 keer sympatieker overkomt dan, zeg, Microsoft?
Vergeleken met de al gegeven bronnen is dit waarschijnlijk eenrelatief betrouwbaarder bron:
http://insight.zdnet.co.uk/hardware/servers/0,39020445,39175560,00.htm
...zdnet dus:
# Over four billion Web pages, each an average of 10KB, all fully indexed
# Up to 2,000 PCs in a cluster
# Over 30 clusters
# 104 interface languages including Klingon and Tagalog
# One petabyte of data in a cluster -- so much that hard disk error rates of 10-15 begin to be a real issue
# Sustained transfer rates of 2Gbps in a cluster
# An expectation that two machines will fail every day in each of the larger clusters...
Artikel is van december 2004

Verder erg grappig om het originele artikel van bovenstaande op internetnews.com te lezen; volgens mij schrijft die mevrouw letterlijk op wat ze de Google engineer denkt te hebben horen zeggen. De vertaling die T.net heeft gemaakt is gelukkig met begrijpend lezen gemaakt :)
Anoniem: 129948
7 maart 2005 10:15
De computersystemen draaien een zwaar gepatchte versie van Red Hat met een afgeslankte kernel.


Valt toch wel mee? Een kernel afslanken voor Redhat is een fluitje van een cent, het staat zelfs in the Fedora Bible uitgelegd dat iedere newb het kan... iets in de trant van:


# nstall the kernel source package:

rpm -i kernel-source-2.4.18-27.7.x.i386.rpm

# Prepare the source tree

cd /usr/src/linux-2.4
make mrproper

# Configure the kernel however you want (make xconfig, make menuconfig, etc.). I tend to start with the standard redhat config, and modify it:

cp configs/kernel-2.4.18-27.7.x-i686.config .config
make oldconfig

make menuconfig

# Now build the rpm:

make rpm

# Then retrieve the rpm from /usr/src/redhat/RPMS, and you're done!

Trouwens heb ik "zwaar gepatched" niet teruggevonden in de bronartikels..


{edit}

Wat ik mij wel kan voorstellen is dat ze de cluster niet over de tcp-stack willen gooien maar daar heb je iets heel anders voor.. namelijk myrinet.. Als latency een trouble is dan zullen ze dat waarschijnlijk doen en neit zozeer de kernel tuning maar een myrinet-achtige *hack* uitvoeren om de stack te omzeilen... dat is niet voor newbs...


Effe van myrinet zelf:

Depending on the host and operating system, the (netperf) TCP/IP performance with the low-cost, single-port NICs ranges from ~800 Mb/s to ~1980 Mb/s, and with the high-end, dual-port NICs ranges to ~3750 Mb/s. Although the latency and host-CPU overhead for TCP/IP are higher than those of the OS-bypass APIs, the use of these standard software interfaces is often sufficient for existing, distributed-computing applications.
Het voordeel van deze manier van werken is dat de hardware goedkoop is, een nadeel is dat de systemen relatief snel kapot gaan [...]
Waarom kopen ze dan niet iets duurdere systemen die iets langer meegaan?
Goedkoop = duurkoop ?
Er zijn goedkope systemen die best 10 jaar kunnen draaien, maar er zijn er ook bij die binnen 2 maanden stuk zijn. In het kader daarvan in het bij heel veel servers toch goedkoper om gewoon budget spul te nemen. Als je maar 2 servers hebt dan kan je het risico niet lopen dat die uitvallen, want je hebt er maar 2.

Al vraag ik me wel af waarop Google precies wil besparen. Want voor bepaalde dingen heb je toch performance nodig. Voor een el cheapo database server kan je natuurlijk 2 keer 40 GB PATA in software RAID 0 zetten, lekker goedkoop en best snel, echter alles dan behalve betrouwbaar t.o.v. een hot hotswap RAID 10 SCSI setup oid.
Al vraag ik me wel af waarop Google precies wil besparen. Want voor bepaalde dingen heb je toch performance nodig. Voor een el cheapo database server kan je natuurlijk 2 keer 40 GB PATA in software RAID 0 zetten, lekker goedkoop en best snel, echter alles dan behalve betrouwbaar t.o.v. een hot hotswap RAID 10 SCSI setup oid.
Nu denk je te pragmatisch. Google heeft waarschijnlijk ook best aardig wat krachtige machines staan maar de werklijke performance key is de custom google cluster software.
Waarom wel? De grootste bottlenek was efficiente redunancy van data. Sinds ze dat voor elkaar hebben is juist efficient om met goedkope hardware te werken. De prijs van een goedkope instap server is grof geschat de helft van een dure variant, ik geloof niet dat de goedkope de helft minder lang meegaan dan de dure variant.
Een ander punt is het beheersbaar maken van de kosten van het stroomverbruik van het serverpark.
Anoniem: 110977
@Scipionyx4 maart 2005 18:48
Ooit een bericht gezien van een medewerker over hoe Google werkt. Het is allemaal heelgoedkoop. PC's zitten op trays 1 psu voedt 2 systemen. Die trays staan op verrijdbare trolleys. Veel van de systemen in het datacenter waar hij werkte hadden alleen ram en niet eens een harde schijf.

Ze hebben een monitoringsysteem om bij te houden welke systemen uitgevallen dan wel defect zijn. Maar reparatie vervangen doen ze niet, kost teveel tijd en alles is toch redundant. Pas als een trolley 40pct defecte CPU's heeft worden de goede op een nieuwe gezet, en wordt er even gekeken of de defecten simpel op te lossen zijn, is dit niet het geval dan wordt het vernietigd. Volgenns de schatting van die medewerker zouden de componenten niet meer dan 400 dollar bij elkaar in de winkel kosten.

Het betreffende datacenter is inmiddels gesloten en wellicht dat google het e.e.a. veranderd heeft en zodoende nu wat duurdrere systemen heeft, of de poster heeft niet gekeken naar de aanschafwaarde maar naar de waarde op het einde van de levenduur van deze machines.
Dit berichtje was 2 dagen geleden ook al gepost @ www.slashdot.org :D (een zeer interessante site)

Over de inhoud: het bewijst maar eens weer dat linux superieur is aan windows, vooral wat betreft servers. Wat ik ook stoer vind is dat google redhat zelf gepatcht heeft, zouden ze die patches ook ooit 'vrijgeven' ?
Anoniem: 138684
@SWAT4 maart 2005 14:51
Citaat uit het oude Tweakers-artikel:

Google said it turned to Red Hat (stock: RHAT) Linux primarily because of the cost. The OS itself costs nothing, compared with $500 to $900 per server for Windows servers.

Dat is dus de hoofdreden waarom ze voor Linux gekozen hebben. Ik ga verder niet in op de discussie over welk OS nu het beste is...
Tja... Kosten, alhoewel ik me afvraag tot in hoeverre dat waar is, want tot in welke graad kun jij een ander zelf ontwikkeld filesystem gebruiken onder windows?

M.a.w. ik denk dat kosten zeker niet de enige redenen zijn geweest...
want tot in welke graad kun jij een ander zelf ontwikkeld filesystem gebruiken onder windows?
Of je nou een kernel patched / uitkleedt weet ik wat of dat je een Driver schrijft voor windows voor je eigen FS. What's the difference?

Verder ben ik die OS discussies echt spuugbeu hoor...
Anoniem: 99269
4 maart 2005 23:54
Wat ik niet snap is hoe ze aan hun inkomsten komen. Ze hebben geen banners/popups op de site, en ze verkopen ook niks. Wij maken er gratis gebruik van terwijl zij die servers moeten onderhouden :?
pff.. google heeft enorm veel ads!! check je adblocker maar eens... veel ads op sites komen van google hoorrr
Ze verdienen geld, dor het leveren van zoekresultaten aan andere zoekmachines, technologie verkopen, de sposored links, google syndication, google ads etc. etc.(staat zelfs in een in dit draadje gelinkt artikel)
Anoniem: 113372
4 maart 2005 15:24
mijn pentum 2 gentoo box 0wned alle servers van google bij elkaar !!! :+

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee