7.5.5 Namensdienste (bereits erwähnte Beispiele: Rmiregistry, Portmapper) dienen der Abbildung von „Namen“ auf Verweise, Nummern,... sollten ihre Information persistent halten (Dateien, Datenbank) müssen hochzuverlässig sein typisch: Verwendung mehrfach replizierter Dateien
Sun NIS = Network Information System (früher Yellow Pages) Dieser Namensdienst unterstützt mehrere Abbildungen: (lokal) passwd.byname:user name uid /etc/passwd hosts.byname:host name IP address /etc/hosts mail.aliases:mail alias mail addresses /etc/aliases services.byname:service name port #, protocol /etc/services rpc.bynumber:rpc serv. name rpc program # /etc/rpc..... und andere - siehe man ypfiles
Benutzung, z.B. für Namensauflösung, mit Befehl ypmatch name map Dahinter verbirgt sich der Aufruf einer Bibiliotheksroutine ( man ypclnt ) yp_match(...) (diese benutzt Fernaufrufe... siehe unten) Weitere Befehle: ypmatch –x Anzeige praktischer Kurzformen (nicknames) für einige ausgewählte Abbildungen ypcat map Auflistung aller Einträge der Abbildung
Funktionsweise: Replizierte Anbieter - Programm ypserv -, per Fernaufruf ansprechbar: Klienten wie ypmatch fragen lokalen Repräsentanten des NIS - Programm ypbind - per RPC nach einem geeigneter Replikat; ypbind schickt Broadcast RPC an die ypserv -Replikate, merkt sich das erste, das antwortet, für spätere Anfragen und teilt es dem Klienten mit; dieser wendet sich daraufhin direkt an das Replikat. Es gibt eine Primärkopie und i.a. mehrere Sekundärkopien.
..... ypserv ypbind master (Primärkopie) slaves (Sekundärkopien) Klientenstationen.. Klientenprozesse ypwhich host liefert den Namen der Station, auf der sich der für host aktuell verwendete Server befindet ypwhich –m map liefert den Namen der Station, auf der sich der für die Abbildung map zuständige Master befindet (ohne map : Liste der Masters für alle Abbildungen) ypcat ypservers liefert Liste aller Servers
Daten bei Master und Slaves: /etc/... Rohdaten, vom Systemverwalter manipuliert /var/yp/... daraus abgeleitete Maps, von den Servers benutzt Änderung der Abbildungen: 1. Systemverwalter modifiziert Rohdaten und erstellt neue Map(s) mittels make. 2. Das vorgesehene Makefile sorgt dafür, daß die Slaves von der Änderung informiert werden (Befehl yppush, führt RPCs aus). 3. Slaves wenden sich an die Master-Station: Befehl ypxfr wendet sich per RPC an ypxfrd, beschafft aktualisierte Rohdaten (!) und generiert daraus die neuen Maps. (4. ypxfr auch in regelmäßigen Zeitabständen!)
Ausnahme: Paßwort-Änderung ohne Beteiligung des Systemverwalters Befehl yppasswd kontaktiert yppasswdd -Prozeß auf Master-Station; dieser Prozeß übernimmt Rolle des Verwalters. yppasswdd ypserv ypbind client Master Slave Client ypxfrd yppush yppasswd
Charakterisierung des NIS: „quasi-aktive“ Replikation mit Primärkopie, erlaubt Heterogenität; Konsistenz sehr schwach... ... aber für die Zwecke des NIS ausreichend: Änderungen selten, temporäre Inkonsistenz unproblematisch.