Hallo zusammen und schöne Ostern!
Ich versuche, meinen Rechner mit einer NBD-Freigabe zu verbinden. Das klappt problemlos, wenn ich die nötigen Befehle manuell eingebe. Wenn ich dagegen die Befehle beim Systemstart per service ausführe, scheint die Verbindung wieder unterbrochen zu werden.
Manuell führe ich diese Befehle aus:
gernot@jupiter:~$ sudo nbd-client -l 192.168.1.11 Negotiation: .. raid test gernot@jupiter:~$
Es werden die beiden NBD-Freigaben gelistet.
gernot@jupiter:~$ sudo nbd-client 192.168.1.11 /dev/nbd0 -N test Negotiation: ..size = 9765MB bs=1024, sz=10240000000 bytes gernot@jupiter:~$
Verbindung mit der Freigabe 'test'.
gernot@jupiter:~$ sudo nbd-client -c /dev/nbd0 3837 gernot@jupiter:~$
Check der Verbindung, alles in Ordnung. Das Block-Device /dev/nbd0 kann jetzt gemounted werden. Alles funktioniert. Die drei einzelnen Befehle habe ich in einem Skript zusammengefasst:
gernot@jupiter:~$ cat /usr/local/bin/nbd0nas #!/bin/sh nbd-client -l 192.168.1.11 nbd-client 192.168.1.11 /dev/nbd0 -N test nbd-client -c /dev/nbd0 gernot@jupiter:~$
Auch dieses lässt sich ausführen und funktioniert problemlos. Nun möchte ich aber, dass die Verbindung beim Start des Rechners automatisch erzeugt wird. Ich habe also unter /etc/systemd/system eine Datei nbd0.service abgelegt:
gernot@jupiter:~$ cat /etc/systemd/system/nbd0.service [Unit] Description=NBD-Verbindung mit NAS erstellen Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/local/bin/nbd0nas [Install] WantedBy=multi-user.target gernot@jupiter:~$
Wie oben angekündigt, funktioniert dies nicht. In /var/log/syslog sieht es so aus, als würde die Verbindung ordnungsgemäß erstellt, aber einige Sekunden später bricht sie zusammen:
gernot@jupiter:~$ cat /var/log/syslog | grep nbd ... Apr 1 20:14:55 jupiter systemd-modules-load[398]: Inserted module 'nbd' Apr 1 20:15:05 jupiter nbd0nas[2108]: Negotiation: .. Apr 1 20:15:05 jupiter nbd0nas[2108]: raid Apr 1 20:15:05 jupiter nbd0nas[2108]: test Apr 1 20:15:05 jupiter nbd0nas[2108]: Negotiation: ..size = 9765MB Apr 1 20:15:05 jupiter nbd0nas[2108]: bs=1024, sz=10240000000 bytes Apr 1 20:15:05 jupiter nbd0nas[2108]: 2196 Apr 1 20:15:05 jupiter kernel: [ 19.073730] nbd0: detected capacity change from 0 to 10240000000 Apr 1 20:15:05 jupiter kernel: [ 19.075505] block nbd0: shutting down sockets Apr 1 20:15:35 jupiter kernel: [ 49.815684] block nbd0: Connection timed out Apr 1 20:15:35 jupiter kernel: [ 49.815689] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815692] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815734] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815738] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815766] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815770] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815834] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815837] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815863] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815865] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815897] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815900] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815922] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815924] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815945] Dev nbd0: unable to read RDB block 0 Apr 1 20:15:35 jupiter kernel: [ 49.815959] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815961] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.815975] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.815977] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.816007] print_req_error: I/O error, dev nbd0, sector 0 Apr 1 20:15:35 jupiter kernel: [ 49.816011] Buffer I/O error on dev nbd0, logical block 0, async page read Apr 1 20:15:35 jupiter kernel: [ 49.816027] nbd0: unable to read partition table Apr 1 20:15:35 jupiter kernel: [ 49.816496] nbd0: detected capacity change from 0 to 10240000000 Apr 1 20:15:35 jupiter kernel: [ 49.816695] Dev nbd0: unable to read RDB block 0 Apr 1 20:15:35 jupiter kernel: [ 49.816737] nbd0: unable to read partition table gernot@jupiter:~$
Die Ausgaben von systemctl bestätigen, dass die NBD-Verbindung erfolgreich ausgeführt wurde, dann aber wieder beendet wurde:
gernot@jupiter:~$ systemctl status nbd0.service ● nbd0.service - NBD-Verbindung mit NAS erstellen Loaded: loaded (/etc/systemd/system/nbd0.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mo 2018-04-02 11:24:45 CEST; 49s ago Process: 1741 ExecStart=/usr/local/bin/nbd0nas (code=exited, status=0/SUCCESS) Main PID: 1741 (code=exited, status=0/SUCCESS) Apr 02 11:24:45 jupiter systemd[1]: Started NBD-Verbindung mit NAS erstellen. Apr 02 11:24:45 jupiter nbd0nas[1741]: Negotiation: .. Apr 02 11:24:45 jupiter nbd0nas[1741]: raid Apr 02 11:24:45 jupiter nbd0nas[1741]: test Apr 02 11:24:45 jupiter nbd0nas[1741]: Negotiation: ..size = 9765MB Apr 02 11:24:45 jupiter nbd0nas[1741]: bs=1024, sz=10240000000 bytes Apr 02 11:24:45 jupiter nbd0nas[1741]: 1852 gernot@jupiter:~$ systemctl is-active nbd0 inactive gernot@jupiter:~$
Wenn ich nach Systemstart mein Skript nochmal manuell ausführe, wird wieder eine stabile Verbindung hergestellt. Hat jemand eine Idee, woran das liegen könnte? Bin für jeden Tipp dankbar!
Grüße,
Gernot