And the reason you’ll want to do this is that it exposes FS mounts in the service dependency tree, so e.g. you can delay starting PostgreSQL until after you’ve mounted the network share that it’s using as a backing store, while letting unrelated tasks start concurrently.
If all you want to do is pass some special mount flags (e.g. x-systemd.automount) then fstab is the way, after all it’s still systemd that’s parsing and managing it.
oh! maybe it’s the perfect chance to ask. what do you do with your mounted shares so that processes trying to access it do not hang when the server is unreachable?
mostly I would prefer if that directory read would just fail but anything is better, except unmounting.
does retrains have any effect with hard? this is what man nfs says:
If neither option is specified (or if the hard option is specified), NFS requests are retried indefinitely. If the soft option is specified, then the NFS client fails an NFS request after retrans retransmissions have been sent, causing the NFS client to return an error to the calling application.
also, do you know what can I do with CIFS/SMB? I have most of my shares through samba :/
In the Home Operations Discord there’s some very smart people who solved this problem inside kubernetes by checking if their NAS is online (through a Prometheus exporter named node exporter) and then scaling down their workloads that use it, automatically, using KEDA (an autoscaler for kubernetes)
Depending on how your processes are orchestrated, you might be able to do something similar?
well that’s also interesting, but I mainly experience this problem on my desktop. there was a plasma version when even the taskbar panel got frozen, and the kde file manager, double commander too for like a minute, every time they try to do anything with an unreachable network drive. and its even worse on my laptop so there I just don’t mount my shares anymore.
I have been wondering how does windows do it, and programs made for windows, because this is a nonissue there (though windows has its fair share of problems with network shares though…). maybe they just learned to do all IO ops on a different thread…
/etc/systemd/system/mnt-nfs.mount
[Unit] Description=Mount NFS Share [Mount] What=server:exported_path Where=/mnt/nfs_share Type=nfs Options=_netdev,auto,rw [Install] WantedBy=multi-user.target
And the reason you’ll want to do this is that it exposes FS mounts in the service dependency tree, so e.g. you can delay starting PostgreSQL until after you’ve mounted the network share that it’s using as a backing store, while letting unrelated tasks start concurrently.
If all you want to do is pass some special mount flags (e.g.
x-systemd.automount
) then fstab is the way, after all it’s still systemd that’s parsing and managing it.oh! maybe it’s the perfect chance to ask. what do you do with your mounted shares so that processes trying to access it do not hang when the server is unreachable?
mostly I would prefer if that directory read would just fail but anything is better, except unmounting.
Add -o hard
And if youre using nfsv3 add retrans=5
Nfsv4 doesbt really need retrans but it still worls.
That has worked perfectly for me.
does retrains have any effect with hard? this is what man nfs says:
also, do you know what can I do with CIFS/SMB? I have most of my shares through samba :/
Oh maybe retrans doesn’t do anything with hard.
Cifs has some options too, it is easier to deal with user ids than NFS. I just had Claude AI tell me options
Good question!
In the Home Operations Discord there’s some very smart people who solved this problem inside kubernetes by checking if their NAS is online (through a Prometheus exporter named node exporter) and then scaling down their workloads that use it, automatically, using KEDA (an autoscaler for kubernetes)
Depending on how your processes are orchestrated, you might be able to do something similar?
Source: https://github.com/onedr0p/home-ops/pull/9334/files
well that’s also interesting, but I mainly experience this problem on my desktop. there was a plasma version when even the taskbar panel got frozen, and the kde file manager, double commander too for like a minute, every time they try to do anything with an unreachable network drive. and its even worse on my laptop so there I just don’t mount my shares anymore.
I have been wondering how does windows do it, and programs made for windows, because this is a nonissue there (though windows has its fair share of problems with network shares though…). maybe they just learned to do all IO ops on a different thread…