Network File System 1 Network File System ( NFS ) 1.1 Motivation für die Entwicklung Mit Hilfe von ftp können komplette reguläre Dateien von einem Rechner über das Netzwerk zu einem anderen Rechner transferiert werden. Für den Transfer ist jedoch ein Dialog erforderlich - es ist nicht möglich, von verschiedenen Rechnern aus auf eine Datei im Netzwerk zuzugreifen ( shared access ). NFS wurde entwickelt, um eine komfortable Möglichkeit für den netzwerkweiten Zugriff auf Dateien zu schaffen. 1.2 Historie NFS wurde von der Firma SUN Microsystems entwickelt. 1985 erstmals ausgeliefert 1986 Versionen für VAX und PC verfügbar 1989 in UNIX System V, Release 4 integriert 1.3 NFS- Protokolle und Produkte 1.3.1 Protokolle NFS besteht aus einer Protokollfamilie. Das NFS-Protokoll ist eines dieser Protokolle und hat dieser Protokollfamilie den Namen gegeben. Die NFS-Protokolle sind veröffentlicht. Dadurch haben andere Hersteller die Möglichkeit, eigenen NFS-Software zu entwickeln und Lizenzgebühren zu sparen. 1.3.2 Produkt Das Software-Produkt NFS besteht aus einer Reihe von Funktionen, die durch zugeordnete Protokolle spezifiziert sind. NFS-Software wird von verschiedenen Herstellern angeboten ; in UNIX System V, Release 4 ist NFS integriert. NFS Seiten 1+2 VAN_02.DOC 12.12.2007
Network File System 1.4 Eigenschaften Ursprünglich für UNIX-Workstations entwickelt, aber auch für andere Rechnertypen und Betriebssysteme erhältlich ( z. B. PC mit LINUX, VAX mit VMS, Mainframe mit MVS ). Ermöglicht die Einbindung von Dateibäumen anderer Rechner im Netzwerk ( remote host ) in den Dateibaum des lokalen Rechners ( local host ). Die Einbindung eines Remote-Dateibaums erfolgt transparent, d.h., Anwender bzw. Anwenderprogramme müssen keine Unterschiede zu lokalen Dateibäumen berücksichtigen. Hohe Übertragungsgeschwindigkeit: ca. 80% der Geschwindigkeit einer lokalen Magnetplatte können erreicht werden. Ein NFS-Server exportiert Dateibäume eines lokalen Rechners, die danach von anderen Rechnern eingebunden werden können. Es können nur vollständige Dateibäume, die vom Root-Verzeichnis ausgehen, exportiert werden. NFS-Server arbeiten zustandslos, d.h., Aufträge an den Server sind in sich abgeschlossen - das Öffnen und Schließen einer Datei durch den Client entfällt. Ein NFS-Client kann Dateibäume anderer Rechner importieren. Es können Bäume und Teilbäume an beliebiger Stelle in lokale Dateibäume eingebunden werden. Voraussetzung: Auf den Remote-Rechnern muss ein NFS-Server laufen und die Dateibäume müssen zum Export freigegeben sein. Auf einem Rechner kann es mehrere NFS-Clients aber nur einen Server geben. 1.5 Einbettung von NFS ins Betriebssystem Um eine höhere Geschwindigkeit zu erreichen ist NFS teilweise in das Betriebssystem integriert (bei UNIX in den kernel). als übergeordnete Schnittstelle für Anwender wurde ein vituelles Filesystem ( VFS ) geschaffen. Anwendungsprogramm Systemaufrufe VFS Vitual File System UFS MS-DOS Gerätetreiber NFS UDP IP Netzwerk 1.6 Anwendungsprobleme UFS = UNIX File System Der gleichzeitige Zugriff mehrerer Clients auf eine Datei kann zu inkonsistenten Daten führen. NFS Seiten 3+4 VAN_02.DOC 12.12.2007
Network File System Beispiel Rechner A / etc usr user team1 otto willi sonja team2 exportiert durch NFS Server Rechner B / etc usr extern team1 otto willi sonja importiert durch NFS Client NFS Seiten 5+6 VAN_02.DOC 12.12.2007
Network Information System 2 Network Information System ( NIS ) 2.1 Motivation für die Entwicklung Bei einem System aus vielen verteilten Rechnern gibt es auf jedem Rechner Konfigurations-Dateien wie z.b. /etc/passwd /etc/group usw., die weitgehend identische Inhalte haben. Ohne NIS: Ein Benutzer bzw. Gruppe ist nur auf dem Rechner bekannt, auf dem der Systemverwalter die Eintragung vorgenommen hat. Will ein Benutzer auf einem anderen Rechner arbeiten, so ist dies nur möglich, wenn der Systemverwalter zuvor die entsprechende Kennung eingetragen hat. Mit der Anzahl der Rechner auf denen eine Benutzerkennung eingetragen werden soll, steigen Zeitbedarf und Fehlerwahrscheinlichkeit. Ändert ein Benutzer sein Passwort, so gilt dies nur auf dem lokalen Rechner. Mit NIS: Konfigurations-Dateien wie /etc/passwd, /etc/group, usw. werden zental verwaltet und die Datei-Informationen bei Bedarf zur Verfügung gestellt. Geeignet sind alle Konfigurations-Dateien, die auf einer Gruppe von Rechnern überwiegend die gleichen Informationen enthalten sollen. 2.2 Konzept NIS basiert auf dem Client Server Konzept: NIS Master Server Map Transfer NIS Slave Server NIS Slave Server NIS Requests Client Client Client Client NIS Master Server verwaltet die NIS-Datenfiles ( maps ). führt exclusiv alle Änderungen durch. gibt die NIS-Datenfiles und alle Änderungen an die Slave Server weiter. verwaltet Domänen ( domains ), d.h. Maps, die einer Gruppe von Clients. zugeordnet sind. ( Wird keine domain explizit angegeben, so gilt die default domain. beantwortet Anforderungen ( requests ) von Clients. sollte auf einem besonders zuverlässigen Rechner installiert sein. NIS Seiten 1+2 VAN_02.DOC 12.12.07
Network Information System NIS Slave Server dienen zur Erhöhung der Verfügbarkeit der NIS-Informationen erhält vom Master Server Kopien aller Maps. wird von Clients angefragt, wenn der Master Server nicht antwortet ( wegen Ausfall, oder Überlastung ). NIS Clients sind Programme auf Rechnern ( hosts ), die Informationen von einem Server anfordern. Daemon-Prozesse NIS Master, NIS Slave und NIS Client werden durch jeweils einen Daemon-Prozess pro Rechner realisiert. 2.3 Netzwerk-Protokolle Die Kommunikation zwischen den NIS-Prozessen erfolgt durch folgende Protokolle: Remote Procedure Call ( RPC ) User Datagram Protocol ( UDP ) Internet Protocol ( IP ) 2.4 Einbettung von NIS in den Client-Rechner Damit von einem Client-Rechner auf die globalen Map-Daten zugegriffen werden kann, werden bestimmte Unterprogramme, die Systemaufrufe durchführen, in den System Libraries ausgetauscht. Beispiel: Systemaufruf getpwuid() zum Lesen des Password Files /etc/passwd. Alle Benutzer, die getpwuid() aufrufen, nutzen damit die von NIS verwalteten Daten ohne es zu merken - NIS arbeitet für Benutzer transparent. Vorteil: Es müssen keine Shell-Kommandos oder Benutzer-Programme geändert werden. 2.5 Verbindung von lokalen Files und Maps Lokale Files eines Rechners können um globale Map-Daten erweitert werden. Dies geschieht durch Eintragung eines Pluszeichens ( + ) am Zeilenanfang. Beispiel für das lokale File /etc/passwd, in dem die Benutzernamen, verschlüsselte Passwörter usw. verzeichnet sind. root: passwd:0:1:operator:/:/bin/csh daemon:*:1:1:./: sys:*:2:2::/:/bin/csh uucp:*4:8::/var/spool/uucppublic: +:*:0:0::: NIS Seiten 3+4 VAN_02.DOC 12.12.07
Network Information System Bedeutung des Dateiinhalts Die Zeilen 1 bis 4 definieren Benutzerkennungen, die nur auf dem lokalen Rechner gelten. Die mit dem +Zeichen beginnende Zeile veranlasst die modifizierte Systemfunktion getpwuid() dazu, von dem NIS Server die zugeordneten Map-Informationen anzufordern und nach Erhalt dieser Daten wie normale, vom lokalen File gelesene Informationen zu behandeln. Effekt: Das lokale File wird um die globalen Map-Daten erweitert. Der Stern ( * ) sorgt dafür, dass das Pluszeichen nicht als gültiger Benutzername akzeptiert wird, wenn NIS nicht aktiv ist. Die beiden Nullen dienen als Platzhalter für die UserID und GroupID. Die folgenden Doppelpunkte dienen zur Einhaltung der Syntax. Hinweis Die Erweiterung um die globalen Map-Daten ist nur für die Kommandos "sichtbar", die mit den modifizierten Systemaufrufen arbeiten. Normale List-Funktionen wie cat sowie die Text-Editoren geben die mit dem +Zeichen beginnenden Zeilen unverändert aus. 2.6 Von NIS verwaltete Maps ( Auszug ) Map Name Kürzel Zugriff mittels Inhalt [ File ] Integration bootparams Hostname /etc/bootparams erweitert ethers.byname ethers Hostname /etc/ethers ersetzt ethers.byaddr MAC address /etc/ethers ersetzt group.byname group Group name /etc/group erweitert group.bygid Group ID /etc/group erweitert hosts.byname hosts Hostname /etc/hosts ersetzt hosts.byaddr IP address /etc/hosts ersetzt... passwd.byname passwd Username /etc/passwd erweitert passwd.byuid User ID /etc/passwd erweitert... Hinweis Wenn auf Filedaten mit mehreren Suchbegriffen zugegriffen wird, so wird für jeden Suchbegriff eine Map eingerichtet. 2.7 Weitere NIS-Anwendungen NIS kann auch eingesetzt werden, um Benutzerdaten zentral zu verwalten und netzwerkweit zugänglich zu machen. Beispiele: Telefonliste, Firmenadressliste NIS Seiten 5+6 VAN_02.DOC 12.12.07