GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Einrichten eines NFS-Servers und -Clients unter CentOS 7.2

Diese Anleitung erklärt, wie man einen NFS-Server und einen NFS-Client unter CentOS 7 einrichtet. 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. Als Basis für die Installation verwende ich einen CentOS 7.2 Minimalserver.

1 Vorbemerkung

Ich verwende hier zwei CentOS-Systeme:

  • NFS-Server:server.example.com, IP-Adresse:192.168.1.100
  • NFS-Client:client.example.com, IP-Adresse:192.168.1.101

Ich werde den Nano-Editor in diesem Tutorial verwenden, um Konfigurationsdateien zu bearbeiten. Nano kann so installiert werden.

yum -y install nano

2 Firewall konfigurieren

Ich empfehle die Installation einer Firewall. Wenn Sie noch keine Firewall installiert haben und eine Firewall verwenden möchten, installieren Sie sie mit diesen Befehlen:

yum -y install firewalld

Starten Sie die Firewall und aktivieren Sie sie so, dass sie beim Booten gestartet wird.

systemctl start firewalld.service
systemctl enable firewalld.service

Öffnen Sie als Nächstes die SSH- und NFS-Ports, um sicherzustellen, dass Sie sich per SSH für Verwaltungszwecke und per NFS von unserem NFS-Client mit dem Server verbinden können.

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

3 NFS installieren

Server:

Auf dem NFS-Server führen wir Folgendes aus:

yum -y install nfs-utils

Aktivieren und starten Sie dann den nfs-Serverdienst.

systemctl enable nfs-server.service
systemctl start nfs-server.service

Kunde:

Auf dem Client können wir NFS wie folgt installieren (das ist eigentlich dasselbe wie auf dem Server):

yum install nfs-utils

4 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 nfsnobody. Normalerweise gehört das /home-Verzeichnis nicht nfsnobody (und ich empfehle nicht, es auf nfsnobody 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 auf den Benutzer und die Gruppe nfsnobody ändern.

mkdir /var/nfs
chown nfsnobody:nfsnobody /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 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.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 Folgendes ausführen:

exportfs -a

danach, damit die Änderungen wirksam werden.

5 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.1.100:/home /mnt/nfs/home
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

Sie sollten jetzt die beiden NFS-Freigaben in den Ausgaben von

sehen
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

und

mount
[[email protected] ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 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.txt

Gehen 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
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[[email protected] ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(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.)

7 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:

nano /etc/fstab
[...]
192.168.1.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0
192.168.1.100:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

Anstelle von rw,sync,hard,intr können Sie verschiedene Mount-Optionen verwenden. Um mehr über die verfügbaren Optionen zu erfahren, werfen Sie einen Blick auf

man nfs

Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, starten Sie den Client neu:

reboot

Nach dem Neustart sollten Sie die beiden NFS-Freigaben in den Ausgaben von

finden
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

und

mount
[[email protected] ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

  • Linux-NFS:http://nfs.sourceforge.net/
  • CentOS:http://www.centos.org/

Cent OS
  1. Einrichten eines NFS-Servers und -Clients unter Scientific Linux 6.3

  2. NFS-Server- und Client-Installation auf CentOS 7

  3. Einrichten eines NFS-Servers und -Clients unter Debian 9 (Stretch)

  4. Einrichten eines NFS-Servers und -Clients unter CentOS 6.3

  5. Einrichten eines NFS-Servers und -Clients unter OpenSUSE 12.2

So installieren Sie NFS-Server und -Client unter Ubuntu

So konfigurieren Sie NFS-Client und -Server unter Linux

Installieren Sie NFS-Server und -Client auf Ubuntu

NIS-Client und -Server

Einrichten eines OpenVPN-Servers mit CentOS und Viscosity

So richten Sie NFS-Server und -Client unter CentOS 8 ein