Nimeäminen Distributed systems - principles & paradigms kirjan luku 5 Kari Systä 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 1
Sisältö Käsitteitä Nimi, tunniste ja osoite Nimeäminen Lattea nimeäminen Rakenteinen nimeäminen Esimerkki: Domain Name System (DNS) Attribuuttiperustainen nimeäminen 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 2
Nimi Nimi on (bitti-) merkkijono, joka viittaa resurssiin Ihmisystävällinen nimi on yleensä merkkijono www.cs.tut.fi /home/systa/face.jpg Teemu Teekkari 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 3
Tunniste Ohjelmat käyttävät tunnisteita (identifier) viittaamaan olioihin (esim. etäolioviite) 1. Viittaa enintään yhteen olioon 2. Olioon viittaa enintään yksi tunniste 3. Tunniste viittaa aina samaan olioon Jos voidaan antaa jollekin muulle resurssille, se ei ole tunniste Ville Virtanen ei ole tunniste Entä henkilötunnus???? 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 4
Osoite (address) Resurssia käsitellään liityntäpisteen (access point) kautta Liityntäpisteen nimi on osoite Liityntäpiste voi siirtyä paikasta toiseen Resurssi voi tarjota useampia liityntäpisteitä Esim. kotiosoite, puhelinnumero ja email Nimeämisjärjestelmä ylläpitää nimi osoite sidontaa yksinkertaisimmillaan taulu (nimi, osoite)-pareja nimen etsintä on usein lähellä reitittämistä 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 5
Lattea nimeäminen (Flat Naming) Nimessä ei ole rakennetta Esim. hash arvo tai vapaamuotoinen tekstipätkä tunniste osoite -muunnos Broadcast ja multicast Kysy kaikilta/joukolta tunnistetta, paluuviesti palauttaa osoitteen Ehkä joskus riittävän tehokasta Forwarding pointers Kotiperustainen nimeäminen Hajautettu hajautustaulu 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 6
Forwarding pointers Resurssi jättää stubin poistuessaan luo vastaavan skeletonin saapuessaan 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 7
Forwarding pointers Vastaus-sanoma tulee oikopolkua 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 8
Forwarding pointers Tämän jälkeen pyynnöt oikaisevat 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 9
Kotiperustainen nimeäminen Kotipaikassa pidetään tieto resurssin paikasta Esim. mobiili-ip Jokaisella on kiinteä IP-osoite Kommunikaatio ohjataan kotiagentille Mobiililaitteen muuttaessa verkkoa, se pyytää care-of-osoitteen, joka rekisteröidään kotiagentille 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 10
Kotiperustainen nimeäminen 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 11
Rakenteinen nimeäminen Ihmisille sopii paremmin rakenteiset nimet Koostuvat osista /home/systa/face.jpg www.cs.tut.fi Nimeämisgraafi on abstraktio, johon nimeäminen perustuu Graafi antaa rakenteen nimille Haku on polun löytämistä graafista 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 13
Nimiavaruudet Nimet organisoidaan nimiavaruuksiksi (name spaces) Voidaan esittää suunnattuna graafina Lehtisolmu sisältää tyypillisesti tietoa edustamastaan oliosta (esim. osoite) Puusolmut ovat hakemistoja Graafin polut voidaan esittää jonona kaarien nimiä: N:<l 1, l 2,, l n > N on alkusolmu (n 0 ) ja l i on kaaren nimi 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 14
Nimiavaruudet Esimerkki 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 15
Nimiavaruudet Jos first(n) = n 0, niin nimi on absoluuttinen Jos first(n) n 0, niin nimi on suhteellinen Monet tiedostojärjestelmät toimivat kuten nimeämisgraafi Absoluuttinen: /home/steen/mbox Suhteellinen steen/mbox Yleensä nimeämisgraafi on directed acyclic graph ja siinä on vain yksi juuri 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 16
Aliakset Toista nimeä samaan solmuun kutsutaan aliakseksi Esim. N0:<home,steen,keys> ja N0:<keys> UNIX-terminologiassa kova linkki (hard link) Toinen vaihtoehto: symbolinen linkki 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 17
Aliakset Esimerkki symbolisesta linkistä 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 18
Se kova linkki oli 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 19
Nimen etsintä (Name resolution) Prosessia, jossa nimeämisgraafista etsitään tietoa kutsutaan nimen etsimiseksi (name resolution) Etsitään polkua N 0 :< l 1, l 2, l 3 > Aluksi etsitään solmun N 0 hakemistotaulusta solmu N 1, johon l 1 viittaa Seuraavaksi etsitään polkua N 1 :<l 2, l 3 > Sitten N 2 :< l 3 > Etsintä loppuu kun on löydetty solmu N 3 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 20
Esim.: UNIXin tiedostojärjestelmä UNIXissa puusolmut (hakemistosolmut) ovat tiedostohakemistoja ja lehtisolmut tiedostoja Nimeämisgraafi toteutetaan vierekkäisinä blokkeina loogiselta levyltä Superblokissa on tietoa koko tiedostojärjestelmästä Inodessa on tieto missä tiedostodatablokeissa tiedosto on fyysisesti Tiedostodata-blokissa on tiedostodataa 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 21
Sulkeumamenetelmä (closure mechanism) Ongelma mistä saadaan juurisolmu (alkukonteksti), josta nimen etsintä aloitetaan Esim.: /home/tta/arwen.jpg: UNIXin inode #0 $HOME/arwen.jpg www.tut.fi: paikallinen nimipalvelin 112: lähin puhelin 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 22
Mounting Nimiä voidaan etsiä myös useamman kuin yhden nimiavaruuden sisällä Hakemistosolmussa on tunniste hakemistosolmuun toisessa nimiavaruudesta Hakemistosolmua, jossa tunniste on sanotaan mount point:iksi Hakemistosolmua, johon tunniste viittaa sanotaan mounting point:ksi 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 23
Esim. nfs mounting Nimiavaruuden mountaamiseen tarvitaan Käsittelyprotokollan nimi Palvelimen nimi Mounting point:n nimi Esim.: Sunin Network File System nfs://flits.cs.vu.nl/home/steen Ongelma: kolme ratkaistavaa nimeä Ratkaisu nfs on yleisesti tunnettu cs.tut.fi etsitään DNS:n avulla /home/steen etsitään toisessa nimiavaruudessa 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 24
Nimiavaruuden toteuttaminen Isot nimiavaruudet jaetaan loogisiin tasoihin (logical layers) Global layer Sisältää ylimmän tason solmut Erittäin stabiili Administrational layer Koostuu hakemistosolmuista, joita hallinnoi yksi organisaatio tai organisaation osa Melko stabiili Managerial layer Sisältää esimerkiksi loppukäyttäjien hakemistoja ja tiedostoja Solmut muuttuvat säännöllisesti 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 25
Nimien etsinnän toteuttaminen Nimiavaruus jaetaan zoneihin, jotka ovat toisensa poissulkevia Zone on nimiavaruuden alue, jonka toteuttaa erillinen nimipalvelin Nimiavaruuden hajauttaminen monelle palvelimelle vaikuttaa myös nimien etsintään Oletuksia Ei replikoita Ei kätköjä Asiakkailla pääsy paikalliseen nimien etsijään (name resolver) 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 26
Nimien etsinnän toteuttaminen Etsitään nimi root:<fi,tut,cs,ftp,pub,src,bar.txt> eli ftp://ftp.cs.tut.fi/pub/src/bar.txt Asiakas tietää, että 5 ensimmäistä osaa haetaan DNS:stä ja loput ovat managerial tasolla 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 27
Iteratiivinen nimipalvelu Nimi- palvelu <fi, tut, cs, ftp> #<fi> <tut, cs, ftp> #<tut> <cs, ftp> #<cs> <ftp> #<ftp> Root fi tut cs <fi, tut, cs, ftp> #<fi, tut, cs, ftp> 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 28
Rekursiivinen nimipalvelu <fi, tut, cs, ftp> #<fi, tut, cs, ftp> Root <tut, cs, ftp> Nimi- palvelu #<tut, cs, ftp> fi <cs, ftp> #<cs, ftp> tut #<ftp> <fi, tut, cs, ftp> #<fi, tut, cs, ftp> cs <ftp> 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 29
Ratkaisujen vertailu Rekursiivinen ratkaisu asettaa kovat suorituskykyvaatimukset palvelimille Siksi globaaleissa palvelimissa vain iteratiivinen ratkaisu Rekursiivisessa tiedon tallettaminen kätköihin tehokkaampaa Rekursiivisessa kommunikointi-kustannukset joskus pienempiä Keskeisin optimointi: pidä vanhat kysely muistissa (cache) 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 30
Vaatimukset nimipalvelimille Eri tasoilla oleville nimipalvelimille asetetaan erilaisia vaatimuksia Globaali taso Saatavuus tärkeää Asiakkaiden on helppo muistaa(cache) tuloksia suorituskyky ei kriittinen Hallinnollinen taso Palvelimet toimivat organisaatioiden sisällä sisäinen saatavuus tärkeää Myös hallinnollisella tasolla asiakkaiden kätköt vähentävät suorituskyvyn tarvetta 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 31
Nimiavaruuden toteuttaminen Vaatimuksia nimipalvelimille Managerial taso Hetkelliset palvelun kaatumiset eivät ole kriittisiä Saatavuus ei niin tärkeää Käyttäjät olettavat operaatioiden tapahtuvan nopeasti suorituskyky erittäin tärkeää 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 32
Domain Name System Linkittää puhelinluettelo tavoin internetin kaksi nimiavaruutta (myös olemassa käänteispalvelu) Verkkotunnus <-> IP-osoitteiksi Merkkijonoesitys nimestä aloitetaan oikeanpuoleisimmasta nimen osasta root:<fi,tut,cs,keltatikka> keltatikka.cs.tut.fi. Nimen maksimipituus on 255 Alipuuta kutsutaan domain:ksi Polkua domainiin kutsutaan domainin nimeksi 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 33
DNS Jokaisessa zone:ssa on yleensä vähintään kaksi nimipalvelinta (authoritative name server) Primääri- ja sekundääripalvelin Päivitykset tehdään primääripalvelimeen Zone transfer: sekundääripalvelimet pyytävät primääripalvelimelta sisällön Kyselyt ja vastaukset UDP:nä 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 34
DNS Resurssitietueet Yksi solmu esittää nimiavaruudessa useampaa asiaa: Domain on nimiavaruuden alipuu, johon kuuluvat kaikki sen alla olevat domainit Zone on yksittäisen nimipalvelimen hallinnoima solmujoukko tut.fi ja cs.tut.fi kuuluu samaan domainiin, mutta ei zoneen Zonen osa voidaan delegoida toisen hallinnoitavaksi Solmujen sisältö muodostetaan resurssitiedostolla 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 35
DNS resurssitietueet Tyyppi Liittyy Kuvaus SOA Zone Tietoa zonesta A Host Tämän solmun edustaman host:n IP osoite MX SRV Domain Viittaa postipalvelim., joka hoitaa tämän noden postin Domain Viittaa tietyn palvelun palvelimeen NS Zone Viittaa nimipalvelimeen joka toteuttaa zonen CNAME Node Symlink primäärisellä nimellä edustettuun nodeen PTR Host Kuvaa IP-osoitteen hostin kanoniseksi nimeksi HINFO Host Tietoa hostista, jota solmu esittää TXT Any Mitä tahansa tärkeätä tietoa 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 36
Esim: ns.cs.tut.fi $TTL 3600 @ IN SOA ns.cs.tut.fi. hostmaster.cs.tut.fi. ( 2008022212 28800 7200 604800 3600) IN NS ns.cs.tut.fi. IN NS ns2.cs.tut.fi. IN NS ns-secondary.funet.fi. cs.tut.fi. 60 IN MX 1 mail.cs.tut.fi. cs.tut.fi. 60 IN MX 10 mx.cs.tut.fi. cs.tut.fi. 60 IN MX 20 mx2.cs.tut.fi. 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 37
news.cs.tut.fi. IN CNAME news.cc.tut.fi. irc.cs.tut.fi. IN CNAME irc.cc.tut.fi. modeemi.cs.tut.fi. IN NS ns.modeemi.cs.tut.fi. modeemi.cs.tut.fi. IN NS ns.cs.tut.fi. modeemi.cs.tut.fi. IN NS ressu.cc.tut.fi. ns.modeemi.cs.tut.fi. IN A 130.230.72.134 kaarne.cs.tut.fi. 60 IN A 130.230.4.31 kaarne.cs.tut.fi. 60 IN AAAA 2001:708:310:4::31 kaarne.cs.tut.fi. 60 IN A 130.230.4.32 kaarne.cs.tut.fi. 60 IN AAAA 2001:708:310:4::32 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 38
in-addr.arpa $TTL 3600 @ IN SOA ns.cs.tut.fi. hostmaster.cs.tut.fi. ( 2008022212 28800 7200 604800 3600) IN NS IN NS IN NS ns.cs.tut.fi. ns2.cs.tut.fi. ns-secondary.funet.fi. 0 IN PTR net-4.cs.tut.fi. 1 IN PTR default-gw-vlan4.cs.tut.fi. 2 IN PTR ns.cs.tut.fi. 3 IN PTR ns2.cs.tut.fi. 4 IN PTR amurinsorsa.cs.tut.fi. 99 IN PTR olutkyyhky.cs.tut.fi. 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 39
Esim: ns.cs.tut.fi % host -t MX cs.tut.fi cs.tut.fi mail is handled by 1 mail.cs.tut.fi. cs.tut.fi mail is handled by 10 mx.cs.tut.fi. cs.tut.fi mail is handled by 20 mx2.cs.tut.fi. % host 130.230.4.99 99.4.230.130.in-addr.arpa domain name pointer olutkyyhky.cs.tut.fi. 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 40
Address resolution 1. Juuripalvelimen osoite root hints tiedostosta (.) 2. Joltain juuripalvelimista haetaan autoritäärinen nimipalvelin top level domainille (org) 3. tieto seuraavasta nimipalvelimesta (wikipedia.org) 4. Jatketaan kunnes lopulta löydetään hostin osoite Yleensä jotain löytyisi jo cachesta 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 41
DNS (iteratiivinen nimipalvelu) 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 42
Juuripalvelimet DNS:ssä on loogisesti 13 juuripalvelinta UDP asettaa rajan Osa hajautettu anycast:n avulla Nimetty A-M: esim. f.root-servers.net 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 43
DNS Internet Corporation for Assigned Names and Numbers päättää ylimmän tason nimistä http://www.iana.org fi-domainia hallinnoi Viestintävirasto www.ficora.fi 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 44
DNS toimii hyvin, mutta vaihtoehtoja tutkitaan Esimerkkinä CoDoNS http://www.cs.cornell.edu/people/egs/beehive/codons.php Perustuu hajautettuihin hajautustauluihin (DHT) Skaalautuva Vikasietoinen Tehokas 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 45
Hajautettu hajautustaulu Esimerkkinä P2P-järjestelmä Chord Solmuilla m-bittinen satunnaisesti valittu ID Resurssi avaimella k on pienimmän solmun vastuulla, jolle id k (succ(k)) Hakuja varten sormitaulu (finger table) Enintään m riviä FT p [i] = succ(p+2 i-1 ) p.lookup(k) lähettää edelleen kyselyn q:lle, jolla q=ft p [j] k < FT p [j+1] 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 46
Chord Selvitetään avainta 26 vastaava solmu alkaen solmusta 1, ja avainta12 vastaava solmu alkaen solmusta 28 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 47
Attribuuttiperustainen nimeäminen Latteat ja rakenteiset nimet paikkatuntumattomia ja ihmiselle sopivia Joskus tarve tehdä hakuja ominaisuuksien perusteella Resurssit kuvataan joukolla (attribuutti, arvo) - pareja 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 48
Esimerkki: LDAP Lightweight Directory Access Protocol Tarkoitettu löytämään resursseja kuvaavien hakujen perusteella Organisaatiot voivat julkaista tietoja Voidaan käyttää myös kuten perinteistä nimipalvelua Monenlaisia hakuja Analogia valkoisiin ja keltaisiin sivuihin 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 49
LDAP (Samoin kuin DNS) LDAP-palvelimet muodostavat puuhierarkian (Toisin kuin DNS:ssä) solmuissa nimiin on sidottu paljon attribuutteja ja hakuja voidaan tehdä attribuutteihin perustuen Puuta kutsutaan nimellä Directory Information Tree (DIT) Koko järjestelmä on nimeltään Directory Information Base (DIB) 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 50
LDAP Kuvitteellinen esim. hakemistoentrystä Osoite dn: uid=fsmith, ou=employees, objectclass: person uid: fsmith telephonenumber: 510-555-1234 roomnumber: 122G mailroutingaddress:fsmith@foobar.com mailhost: mail.foobar.com /ou=employees/uid=fsmith/ 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 51
Etsintä LDAP Esimerkki hausta: answer = search( &(objectclass=person)(mailhost= mail.foobar.com) ) Meillä käytetään esim. (Windowspuolen) käyttäjähallintaan ja tulostintenjakoon. 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 52
Yhteenveto nimeämisestä Kolmen tyyppisiä nimiä: Osoite (address) Tunniste (identifier) Ihmisen luettava Litteä nimiavaruus hankala hajautetuissa järjestelmissä broadcasting, forward pointers, home Strukturoidut nimet Attribuuttipohjaiset nimet 4.2.2013/Kari Systä OHJ-5010/Hajautettujen perusteet 53