Your SlideShare is downloading. ×

Kako napraviti Google od zgrade sa računalima?

1,297

Published on

Ako radite u većoj organizaciji, ona vjerojatno ima nekoliko desetaka računala koja nisu potpuno iskorištena. U mom primjeru, to su bila računala koja su obavljala funkciju web kioska. …

Ako radite u većoj organizaciji, ona vjerojatno ima nekoliko desetaka računala koja nisu potpuno iskorištena. U mom primjeru, to su bila računala koja su obavljala funkciju web kioska.
Što možemo učiniti s njima? Pretpostavimo da možemo podijeliti podatke u dijelove (shards), staviti svaki dio u memoriju jednog računala i pokrenuti komadić koda preko njih... Zvuči pomalo kao Google map/reduce , ali kako to implementirati?
Za taj zadatak implementirao sam Sack - http://blog.rot13.org/sack/ koji podatke iz različitih izbora sprema u memoriju i izvršava paralelne upite preko njih. Pogledati ćemo kako ga napuniti podacima i iskoristiti za obrade koje su prevelike ili prespore za jedno računalo.
Upravljanje računalima koja su dio našeg clustera je poseban izazov. Za rješenje tog problema odlučio sam implementirati PXElator - http://blog.rot13.org/pxelator/ koji nam omogućava jednostavno podizanje računala preko mreže, nadzor i administraciju.
Temu ćemo zaokružiti još jednim zanimljivim projektom koji nam omogućava distribuirani fork: Gearman - http://gearman.org/. Tako naše obrade podataka možemo podjeliti na manje dijelove pisane u različitim jezicima (perl, php, python, C, shell, Java) i sve to skupa integrirati s relacijskom bazom podataka u pretraživač web stranica Narada - https://launchpad.net/narada
Korištenjem ovih dijelova dobili smo distribuiranu memoriju, distribuirano pokretanje obrada podataka i jednostavnu administraciju: naš vlastiti Google :-)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,297
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Kako napraviti Google od zgrade s računalima? Dobrica Pavlinušić http://www.rot13.org/~dpavlin/ HULK, Knjižnica Filozofskog fakulteta u Zagrebu DORS/CLUC, Zagreb, 7. svibnja 2010.
  • 2. Zašto? Imate neka računala koja nisu sasvim iskorištena, a troše struju Uvijek ste htjeli imati svoj cluster!
  • 3. Sadrž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
  • 4. Nađ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
  • 5. Pretraž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/
  • 6. PXElator ● 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/
  • 7. PXElator demo ● Manage (single/virtual) network ● Passivly monitor rest of traffic ● Multi-color screen+xterm debug
  • 8. Sack ● 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/
  • 9. 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
  • 10. Cijeli sustav ● PXElator – boot nodes – audit data ● Sack – shard data – distribute – ad-hoc query ● Fun and profit!
  • 11. Gearman “The way I like to think of Gearman is as a massively distributed, massively fault tolerant fork mechanism.” - Joe Stump, Digg
  • 12. Gearman dijelovi ● fault-tolerant ● perl, php, C, Drizzle, MySQL, PostgreSQL, ... ● Command-line tool ● Pluggable protocols: HTTP ● http://sysadmin-cookbook.rot13.org/#gearman
  • 13. Narada
  • 14. Dokumentacija Virtualizacija i clusteri su krasne stvari, sve dok ne počnete pisati dokumentaciju! Standard Operating Procedure Configuration Management
  • 15. Sysadmin 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/
  • 16. bak-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/
  • 17. 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
  • 18. Pitanja? 42

×