Versiunea de sortare
O montură NFS4 fstab
în mod normal, pornește un serviciu de fundal pentru a continua să reîncerce atunci când gazda de montare nu este disponibilă. Cu toate acestea, numai în timpul repornirii și la expirarea timpului de conexiune serviciul de fundal nu reușește să pornească. Dacă conexiunea este refuzată la o repornire sau orice condiție după o repornire, pornește serviciul de fundal.
Versiunea lungă
Acesta este pe Oracle8, care este o aromă RHEL8 / CentOS8. În /etc/fstab
eu am
[xx:xx:xx:xx:xx:xx:xx:xx]:/exemplu /mnt/exemplu nfs4 implicite 0 0
si in /etc/nfsmount.conf
eu am
[ NFSMount_Global_Options ]
defaultvers=4
nfsvers=4
fundal=adevărat
rw=adevărat
greu = adevărat
sincronizare = adevărat
dimensiune=32k
wsize=32k
nordirplus=true
actimeo=3
_netdev=adevărat
am confirmat in /proc/monturi
că setările globale sunt aplicate monturii atunci când funcționează. Când serviciul de fundal pornește conform așteptărilor, îl puteți vedea rulând.
[root@01b1 /]# ps aufx | grep nfs
rădăcină 1077 0,0 0,0 0 0 ? I< 18:31 0:00 \_ [nfsiod]
root 1506 0.0 0.1 221928 1036 pts/0 S+ 19:16 0:00 \_ grep --color=auto nfs
rădăcină 1466 0,0 0,0 47812 588 ? Ss 18:36 0:00 /sbin/mount.nfs4 [xx:xx:xx:xx:xx:xx:xx:xx]:/exemplu /mnt/exemplu -o rw
Și pentru a fi clar, atunci când serverul gazdă este disponibil, montarea funcționează de fiecare dată. Următoarele sunt atunci când gazda nu este disponibilă, cum ar fi repornirea acesteia, portul este blocat, nfs-server
este oprit etc.
Când serviciul de fundal pornește la repornire, acesta arată acest lucru în /var/log/messages
8 iunie 17:42:29 01b1 systemd[1]: mnt-example.mount: Directorul /mnt/example de montat nu este gol, se montează oricum.
8 iunie 17:42:29 01b1 systemd[1]: Montarea /mnt/exemplu...
8 iunie 17:42:31 01b1 mount[1027]: montarea pe serverul NFS „xx:xx:xx:xx:xx:xx:xx:xx” a eșuat: conexiune refuzată, reîncercare
8 iunie 17:42:31 01b1 mount[1018]: mount.nfs4: fundal „[xx:xx:xx:xx:xx:xx:xx:xx]:/exemplu”
8 iunie 17:42:31 01b1 mount[1018]: mount.nfs4: opțiuni de montare: „rw,vers=4,bg,rw,hard,sync,rsize=32768,wsize=32768,nordirplus,actimeo=3,_netdev "
8 iunie 17:42:31 01b1 systemd[1]: mnt-example.mount: Procesul de montare s-a încheiat, dar nu există nicio montare.
8 iunie 17:42:31 01b1 systemd[1]: mnt-example.mount: Eșuat cu rezultatul „protocol”.
8 iunie 17:42:31 01b1 systemd[1]: Montarea /mnt/example a eșuat.
8 iunie 17:42:32 01b1 mount[1128]: montarea pe serverul NFS „xx:xx:xx:xx:xx:xx:xx:xx” a eșuat: conexiune refuzată, reîncercare
8 iunie 17:42:34 01b1 mount[1128]: montarea pe serverul NFS „xx:xx:xx:xx:xx:xx:xx:xx” a eșuat: conexiune refuzată, reîncercare
Dar când nu reușește să pornească serviciul de fundal la repornire, arată acest lucru
8 iunie 17:49:05 01b1 systemd[1]: mnt-example.mount: Directorul /mnt/example de montat nu este gol, se montează oricum.
8 iunie 17:49:05 01b1 systemd[1]: Montarea /mnt/exemplu...
8 iunie 17:50:35 01b1 systemd[1]: mnt-example.mount: Montarea a expirat. Încheiere.
8 iunie 17:50:35 01b1 systemd[1]: mnt-example.mount: Procesul de montare a ieșit, code=killed status=15
8 iunie 17:50:35 01b1 systemd[1]: mnt-example.mount: Eșuat cu rezultatul „timeout”.
8 iunie 17:50:35 01b1 systemd[1]: Nu s-a montat /mnt/example.
La repornire când portul gazdă este deschis, dar nfs-server
nu rulează, conexiunea este refuzată și serviciul de fundal este pornit.
La reporniri când gazda este oprită sau portul este blocat, conexiunea expiră și serviciul de fundal nu este pornit.
Dacă gazda nu este disponibilă, clientul nu repornește și eu manual monte -a
, serviciul de fundal va porni întotdeauna chiar dacă conexiunea este refuzată sau expiră.
Aveți idee de ce serviciul de fundal nu reușește să pornească doar la repornire și o conexiune expirată? Vreo modalitate de a o remedia, astfel încât fundalul să înceapă întotdeauna când gazda nu este disponibilă?
--- ACTUALIZAȚI ---
Am încercat setări aleatorii pentru a vedea dacă ar ajuta ceva. Am descoperit că ajustarea setărilor de timeout/retry a permis serviciului de fundal să pornească la repornire atât la timeout, cât și la refuzul conexiunilor.
/etc/nfsmount.conf
# Timp implicito=600
# Retransmitere implicită=2
timeo=20
retrans=4
Cu toate acestea, simt că acesta este un leucoaniu și nu o soluție. Acest lucru nu are sens pentru mine decât dacă este o eroare RHEL. Bănuiesc că se întâmplă un fel de problemă de cursă în timpul expirării mai lungi.Nu am încredere în asta pentru că dacă acele condiții de cursă se schimbă și se rupe din nou.