kako napraviti google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf ·...

21
Kako napraviti Google od Kako napraviti Google od zgrade s računalima? zgrade s računalima? Dobrica Pavlinušić Dobrica Pavlinušić http://www.rot13.org/~dpavlin/ http://www.rot13.org/~dpavlin/ HULK, Knjižnica Filozofskog fakulteta u Zagrebu HULK, Knjižnica Filozofskog fakulteta u Zagrebu DORS/CLUC, Zagreb, 7. svibnja 2010. DORS/CLUC, Zagreb, 7. svibnja 2010.

Upload: others

Post on 18-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Kako napraviti Google od Kako napraviti Google od zgrade s računalima?zgrade s računalima?

Dobrica PavlinušićDobrica Pavlinušićhttp://www.rot13.org/~dpavlin/http://www.rot13.org/~dpavlin/

HULK, Knjižnica Filozofskog fakulteta u ZagrebuHULK, Knjižnica Filozofskog fakulteta u ZagrebuDORS/CLUC, Zagreb, 7. svibnja 2010.DORS/CLUC, Zagreb, 7. svibnja 2010.

Page 2: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Zašto?Zašto?

Imate neka računala koja nisu sasvim iskorištena,

a troše struju

Uvijek ste htjeli imati svoj cluster!

Page 3: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

SadržajSadržaj

● Računala– Web kiosci za pretraživanje kataloga

● Network boot i monitoring– PXElator

● Distribute data– Sack

● Distribute computing– Gearman, Narada

● Dokumentacija– Sysadmin Cookbook, bak-git

Page 4: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Nađite računalaNađite računala

● Web kiosci za pretraživanje kataloga knjižnice

● Dell Optiplex755– 2Gb RAM – Core2 Duo E7200 @

2.53GHz– 80Gb Hitachi disk

● 5 katova+prizemlje– 24 Gb RAM– 30.36 Ghz CPU– 960 Gb disk

Page 5: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Pretraživanje katalogaPretraživanje kataloga

● Koha – knjižnični software s web sučeljem● Webconverger

– Debian Live distribucija– Firefox, skrivanje URL-a– Boot s mreže bez korištenja diska

● Svaki ormar ima 100Mb/s switch (sigh!) zbog manjska mrežnih utičnica

● http://webconverger.com/

Page 6: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

PXElatorPXElator

● Replace system administration with perl script

● Protocol soup:– DHCP, TFTP, HTTP, DNS, syslog, WOL,

AMT, DRAC5● Store audit data in MongoDB● Configuration in files/perl code● Provision netboot, KVM, nfsroot● Additional toos: nmap, wireshark● http://blog.rot13.org/pxelator/

Page 7: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

PXElator demoPXElator demo

● Manage (single/virtual) network● Passivly monitor rest of traffic● Multi-color screen+xterm debug

Page 8: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

SackSack

● Distribuirani memorija sa ad-hoc upitima u obliku perl funkcija

● Svi ostali pristupi su prespori ili prekomplicirani za korištenje– CouchDB– MongoDB– HyperTable

● Shard-nothing pristup– Cluster, multi-core

● http://blog.rot13.org/sack/

Page 9: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Kako napuniti vreću?Kako napuniti vreću?

● pure-perl client● configure (hosts+ssh config/keys)● deployment over ssh/cpio on startup

– ssh compression for network speedup● source data for shards from CouchDB,

MongoDB, WebPAC, text files...● Edit perl ad-hoc query in vi● Web interface

– query execution and overview– with gnuplot graphs for time data

Page 10: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Cijeli sustavCijeli sustav

● PXElator– boot nodes– audit data

● Sack– shard data– distribute– ad-hoc query

● Fun and profit!

Page 11: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

GearmanGearman

“The way I like to think of Gearman is as a massively distributed, massively fault tolerant fork mechanism.”

- Joe Stump, Digg

Page 12: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Gearman dijeloviGearman dijelovi

● fault-tolerant● perl, php, C, Drizzle, MySQL, PostgreSQL, ...● Command-line tool● Pluggable protocols: HTTP

● http://sysadmin-cookbook.rot13.org/#gearman

Page 13: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment
Page 14: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment
Page 15: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment
Page 16: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

NaradaNarada

Page 17: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Virtualizacija i clusteri su krasne stvari, sve dok ne počnete pisati

dokumentaciju!

Standard Operating ProcedureConfiguration Management

DokumentacijaDokumentacija

Page 18: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Sysadmin CookbookSysadmin Cookbook

● Dokumentation for me, two years later● Fast and easy deployment● Convention over documentation

– number.name– magic names

● sh, append, replace– symlinks to keep original locations– commit messages for documentation

● http://sysadmin-cookbook.rot13.org/

Page 19: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

bak-git centralni SCMbak-git centralni SCM

● System configuration management● Centralni git repozitorij

– Poznate git komande (s/git/bak/)● Jednostavan deployment

– ssh, rsync, netcat, shell (bak)● Audit log svih promjena (security!)● Svako računalo ima svoj direktorij

– Uspoređivanje konfiguracija● Web sučelje: gitweb● http://blog.rot13.org/bak-git/

Page 20: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

O čemu smo pričali?O čemu smo pričali?

● Nađite neiskorištenja računala● Pojednostavite upravljanje

– PXElator, netboot● Podjelite podatke po njima

– Sack, ad-hoc query● Paralelizirajte obrade podataka

– Gearman● Dokumentirajte učinjeno

– Ne postoji bez dokumentacije

Page 21: Kako napraviti Google od zgrade s računalima?dpavlin/presentations/dc2010_zgrada_cluster.pdf · Kako napuniti vreću? pure-perl client configure (hosts+ssh config/keys) deployment

Pitanja?Pitanja?4242