staging.inyokaproject.org

Wie nach reboot den nfs-kernel-server.service automatisch starten?

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

edefault

Anmeldungsdatum:
21. März 2010

Beiträge: 248

Es steht eigentlich schon alles in der Frage oben ... seit ich den Fileserver auf 18.04 upgedated habe, gibt es nach jedem Reboot das Problem, dass alle Clients nicht mehr an die auf vom Server zu mountenden Filesysteme kommen. In 16.04 war das nie ein Problem, offenbar hat sich da ein sehr alter Fehler wieder eingeschlichen (Debian Wechsel von init zu systemd).

Jedenfalls muss jetzt nach jedem Reboot der nfs-kernel-server.service manuell gestartet werden mit

1
sudo systemctl restart nfs-kernel-server.service

Wie kann man das so automatisieren, dass es nach dem Neustart von selbst passiert?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Was sagt denn

systemctl status nfs-kernel-server.service 

? Ist der enabled?

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

hinterher schon ... (oder?):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 nfs-server.service - NFS server and services
   Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2020-04-29 11:24:54 CEST; 1h 53min ago
  Process: 2401 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
  Process: 2400 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
  Process: 2399 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
  Process: 2410 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 2409 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 2410 (code=exited, status=0/SUCCESS)

Apr 29 11:24:53 Fritz systemd[1]: Starting NFS server and services...
Apr 29 11:24:54 Fritz systemd[1]: Started NFS server and services.

und wenn nicht (jedesmal) nach dem Reboot: warum nicht?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Wie sieht das denn nach einem Reboot aus, wenn die NFS-Freigaben noch nicht erreichbar sind?

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

bitte sehr ... so sieht es nach Neustart aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-51-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

0 Software-Pakete können aktualisiert werden.
0 Aktualisierungen sind Sicherheitsaktualisierungen.

Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Thu Apr 30 10:38:57 2020 from 192.168.1.36
edef@Fritz:~$ systemctl status nfs-kernel-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2020-04-30 10:35:20 CEST; 16min ago
  Process: 1057 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 1055 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 1057 (code=exited, status=0/SUCCESS)

Apr 30 10:35:19 Fritz systemd[1]: Starting NFS server and services...
Apr 30 10:35:20 Fritz systemd[1]: Started NFS server and services.
Code

Clients können anschließend nicht auf die exports zugreifen, auch nicht manuell nachmounten. Der Versuch führt ins Nichts und kann nur mit Ctrl-C abgebrochen werden bzw. führt zu

1
mount.nfs: Connection timed out

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Wie ist denn die Netzwerkanbindung am Server umgesetzt?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: Zähle...

edefault schrieb:

hinterher schon ... (oder?):

Nein, hinterher ist er evtl. aktiv. Wie sind die Ausgaben von:

systemctl is-enabled nfs-kernel-server.service
systemctl is-active nfs-kernel-server.service

?

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

seahawk1986 schrieb:

Wie ist denn die Netzwerkanbindung am Server umgesetzt?

Da ist ein Kabel dran ... und, ok: mit fester IP Adresse.

Ich verstehe allerdings nicht wie diese Frage (oder die Antwort darauf) weiter führen soll: An der Netzwerkanbindung hat sich beim Update 16.04 → 18.04 nichts verändert. Unter 16.04 waren die NFS exports nach reboot automatisch da, jetzt sind sie es nicht.

Der nfs-kernel-server.service startet offenbar nicht von selbst, und meine Frage war:

*wo* muss man *was* eintragen, damit genau das wieder passiert?

Wenn alles ok ist, ist der nfs-kernel-server.service sowohl enabled als auch active. Nach dem reboot ist er eines von beiden oder beides offenbar nicht.

Und ich möchte *wetten* dass sich das irgendwo/irgenwie ändern lässt (s. o.). Leider kann ich den Fehler nicht beliebig oft reproduzieren (an den Clients wird gearbeitet).

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: Zähle...

edefault schrieb:

Wenn alles ok ist, ist der nfs-kernel-server.service sowohl enabled als auch active. Nach dem reboot ist er eines von beiden oder beides offenbar nicht.

Naja, enabled wird er schon immer sein. Siehe die Ausgabe von:

systemctl is-enabled nfs-kernel-server.service

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

Gerade war nach dem Update wieder ein Reboot fällig, Gelegenheit also, die Sache zu überprüfen: Nach dem Reboot ist nfs-kernel-server.service tatsächlich *sowohl* enabled *als auch* active. Trotzdem finden die Clients die mounts nicht. Erst mit der Eingabe von

sudo systemctl restart nfs-kernel-server.service

ist der export der Dateisysteme wieder funktionsfähig. Das ist nach wie vor seltsam, im Falle eines unbemerkten Serverausfalls (Stromausfall) sogar lästig. Der Fileserver ist damit nicht mehr selbstheilend.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Wie (und wann im Bootverlauf in Relation zu nfs-kernel-server) werden die Dateisysteme denn gemountet?

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

Die fraglichen Dateisysteme stehen in korrekt fstab und exports. Bis zum Update (18.04) waren sie nach dem Hochfahren auch da.

Der nfs-kernel-server.service kann *vor* dem mounten starten? Wie kann das verhindert werden?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

edefault schrieb:

Der nfs-kernel-server.service kann *vor* dem mounten starten? Wie kann das verhindert werden?

Normalerweise sollte nfs-kernel-server.service von nfs-config.service abhängen, das selbst vom local-fs.target abhängt.

Was sagt denn

systemctl cat nfs-kernel-server.service nfs-config.service 

auf dem System?

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ systemctl cat nfs-kernel-server.service nfs-config.service# /lib/systemd/system/nfs-server.service
[Unit]
Description=NFS server and services
DefaultDependencies=no
Requires=network.target proc-fs-nfsd.mount
Requires=nfs-mountd.service
Wants=rpcbind.socket
Wants=nfs-idmapd.service

After=local-fs.target
After=network.target proc-fs-nfsd.mount rpcbind.socket nfs-mountd.service
After=nfs-idmapd.service rpc-statd.service
Before=rpc-statd-notify.service

# GSS services dependencies and ordering
Wants=auth-rpcgss-module.service
After=rpc-gssd.service rpc-svcgssd.service

# start/stop server before/after client
Before=remote-fs-pre.target

lines 1-21

edefault

(Themenstarter)

Anmeldungsdatum:
21. März 2010

Beiträge: 248

Es ist schon eine Weile her, und die Lösung war "hidden in plain sight". Falls ich noch mal drauf zurückgreifen muss: Ein eigenes systemd service file zum Starten des nfs-kernel-server.service hat gefehlt. Gabs vielleicht früher.

Lösung: Ein neues systemd service file erstellen, hier /etc/systemd/system/autostart-nfs-kernel-server.service

1
2
3
4
5
6
7
8
[Unit]
After=network.service

[Service]
ExecStart=/usr/local/bin/autostart-nfs-kernel-server-sevice.sh

[Install]
WantedBy=default.target

und das entsprechende skript /usr/local/bin/autostart-nfs-kernel-server-sevice.sh

1
2
3
#! bash

systemctl start nfs-kernel-server.service

Zugriffsrechte richten:

1
2
$ sudo chmod 744 /usr/local/bin/autostart-nfs-kernel-server-service.sh
$ sudo chmod 664 /etc/systemd/system/autostart-nfs-kernel-server.service

und voila: *Immer* wenn das System hochfährt wird der nfs-kernel-server-service gleich nach dem Netzwerk gestartet.

Antworten |