Diese Anleitung erläutert, wie Sie einen NFS-Server und einen NFS-Client unter Scientific Linux 6.3 einrichten. NFS steht für Network File System; über NFS kann ein Client auf eine entfernte Freigabe auf einem NFS-Server zugreifen (lesen, schreiben), als wäre sie auf der lokalen Festplatte.
1 Vorbemerkung
Ich verwende hier zwei Scientific Linux-Systeme:
- NFS-Server:server.example.com, IP-Adresse:192.168.0.100
- NFS-Client:client.example.com, IP-Adresse:192.168.0.101
2 Installation von NFS
Server:
Auf dem NFS-Server führen wir Folgendes aus:
yum installiere nfs-utils nfs-utils-lib
Dann erstellen wir die Systemstartlinks für den NFS-Server und starten ihn:
chkconfig --levels 235 nfs bei
/etc/init.d/nfs start
Kunde:
Auf dem Client können wir NFS wie folgt installieren (das ist eigentlich dasselbe wie auf dem Server):
yum installiere nfs-utils nfs-utils-lib
3 Verzeichnisse auf dem Server exportieren
Server:
Ich möchte die Verzeichnisse /home und /var/nfs für den Client zugänglich machen; deshalb müssen wir sie auf den Server "exportieren".
Wenn ein Client auf eine NFS-Freigabe zugreift, geschieht dies normalerweise als Benutzer none. Normalerweise gehört das /home-Verzeichnis niemandem (und ich empfehle nicht, es auf niemanden zu ändern!), und weil wir lesen und schreiben wollen auf /home teilen wir NFS mit, dass der Zugriff als root erfolgen soll (wenn unsere /home-Freigabe schreibgeschützt wäre, wäre dies nicht nötig). Das Verzeichnis /var/nfs existiert nicht, also können wir es erstellen und seinen Besitz ändern; in meinen Tests hatten der Benutzer und die Gruppe niemand beide die ID 99 auf meinen beiden Scientific-Linux-Testsystemen (Server und Client); Als ich versuchte, vom NFS-Client aus in /var/nfs zu schreiben, erhielt ich einen Permission denied-Fehler, also führte ich ein chmod 777 /var/nfs aus, damit jeder in dieses Verzeichnis schreiben konnte; Das Schreiben nach /var/nfs vom Client funktionierte dann, und auf dem Client schienen die nach /var/nfs geschriebenen Dateien dem Benutzer und der Gruppe none zu gehören, aber auf dem Server gehörten sie dem (nicht existierenden) Benutzer und der Gruppe mit der ID 65534; Also habe ich den Besitz von /var/nfs auf den Benutzer/die Gruppe 65534 auf dem Server geändert und die Berechtigungen von /var/nfs zurück auf 755 geändert, und voilà, der Client durfte in /var/nfs schreiben:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs
Jetzt müssen wir /etc/exports ändern, wohin wir unsere NFS-Freigaben "exportieren". Wir geben /home und /var/nfs als NFS-Freigaben an und weisen NFS an, als root auf /home zuzugreifen (um mehr über /etc/exports, sein Format und die verfügbaren Optionen zu erfahren, werfen Sie einen Blick auf
man 5 exportiert
)
vi /etc/exports
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)/var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(Die Option no_root_squash bewirkt, dass auf /home als root zugegriffen wird.)
Wann immer wir /etc/exports ändern, müssen wir
ausführenexportfs -a
danach, damit die Änderungen wirksam werden.
4 Mounten der NFS-Freigaben auf dem Client
Kunde:
Zuerst erstellen wir die Verzeichnisse, in denen wir die NFS-Freigaben mounten wollen, z. B.:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Danach können wir sie wie folgt mounten:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
Sie sollten jetzt die beiden NFS-Freigaben in den Ausgaben von
sehendf -h
[[email protected] ~]# df -h
Dateisystem Größe Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9,7 G 9,7 G 9,7 G 9,7 G /
tmpfs 499m 0 499m 0%/dev/shm
/dev/sda1 504m 39m 440m 9%/boot
192.168.0.100:/home 9,7g 1,7G 7.5g 19%/Mnt /nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19 % /mnt/nfs/var/nfs
[[email protected] ~]#und
einhängen[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / ext4 (rw) eingeben
proc on /proc proc (rw) eingeben
sysfs on /sys tippe sysfs (rw)
devpts auf /dev/pts tippe devpts (rw,gid=5,mode=620)
tmpfs auf /dev/shm tippe tmpfs (rw)
/ dev/sda1 auf /boot tippe ext4 (rw)
none auf /proc/sys/fs/binfmt_misc tippe binfmt_misc (rw)
sunrpc auf /var/lib/nfs/rpc_pipefs tippe rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
5 Testen
Auf dem Client können Sie nun versuchen, Testdateien auf den NFS-Freigaben zu erstellen:
Kunde:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txtGehen Sie nun zum Server und prüfen Sie, ob Sie beide Testdateien sehen können:
Server:
ls -l /home/[[email protected] ~]# ls -l /home/
total 0
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
[[E-Mail geschützt] ~]#ls -l /var/nfs[[email protected] ~]# ls -l /var/nfs
insgesamt 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
[[email protected] ~]#(Bitte beachten Sie die unterschiedlichen Eigentümer der Testdateien:Auf die /home NFS-Freigabe wird als root zugegriffen, daher gehört /home/test.txt root; auf die /var/nfs-Freigabe wird als none/65534 zugegriffen, daher /var/ nfs/test.txt gehört 65534.)
6 Mounten von NFS-Freigaben beim Booten
Anstatt die NFS-Freigaben manuell auf dem Client zu mounten, könnten Sie /etc/fstab so ändern, dass die NFS-Freigaben automatisch gemountet werden, wenn der Client bootet.
Kunde:
Öffnen Sie /etc/fstab und hängen Sie die folgenden Zeilen an:
vi /etc/fstab
[...]192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0192.168.0.100:/ var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
Statt
man nfs
Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, starten Sie den Client neu:
Neustart
Nach dem Neustart sollten Sie die beiden NFS-Freigaben in den Ausgaben von
findendf -h
[[email protected] ~]# df -h
Dateisystem Größe Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9,7 G 9,7 G 9,7 G 9,7 G /
tmpfs 499m 0 499m 0%/dev/shm
/dev/sda1 504m 39m 440m 9%/boot
192.168.0.100:/home 9,7g 1,7G 7.5g 19%/Mnt /nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19 % /mnt/nfs/var/nfs
[[email protected] ~]#und
einhängen[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / ext4 (rw) eingeben
proc on /proc proc (rw) eingeben
sysfs on /sys tippe sysfs (rw)
devpts auf /dev/pts tippe devpts (rw,gid=5,mode=620)
tmpfs auf /dev/shm tippe tmpfs (rw)
/ dev/sda1 auf /boot tippe ext4 (rw)
none auf /proc/sys/fs/binfmt_misc tippe binfmt_misc (rw)
sunrpc auf /var/lib/nfs/rpc_pipefs tippe rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100 :/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
7 Links
- Linux-NFS:http://nfs.sourceforge.net/
- Wissenschaftliches Linux:https://www.scientificlinux.org/