mirror of
https://codeberg.org/hyperreal/techne
synced 2024-11-01 14:23:06 +01:00
132 lines
2.9 KiB
Org Mode
132 lines
2.9 KiB
Org Mode
|
#+title: NFS
|
||
|
#+setupfile: ../org-templates/page.org
|
||
|
|
||
|
** Setup NFS server on Debian
|
||
|
#+begin_src shell
|
||
|
sudo apt install -y nfs-kernel-server nfs-common
|
||
|
#+end_src
|
||
|
|
||
|
Configure NFSv4 in ~/etc/default/nfs-common~:
|
||
|
#+begin_src shell
|
||
|
NEED_STATD="no"
|
||
|
NEED_IDMAPD="yes"
|
||
|
#+end_src
|
||
|
|
||
|
Configure NFSv4 in ~/etc/default/nfs-kernel-server~. Disable NFSv2 and NFSv3.
|
||
|
#+begin_src shell
|
||
|
RPCNFSDOPTS="-N 2 -N 3"
|
||
|
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src shell
|
||
|
sudo systemctl restart nfs-server
|
||
|
#+end_src
|
||
|
|
||
|
Configure FirewallD:
|
||
|
#+begin_src shell
|
||
|
sudo firewall-cmd --zone=public --permanent --add-service=nfs
|
||
|
sudo firewall-cmd --reload
|
||
|
#+end_src
|
||
|
|
||
|
Setup pseudo filesystem and exports:
|
||
|
#+begin_src shell
|
||
|
sudo mkdir /shared
|
||
|
sudo chown -R nobody:nogroup /shared
|
||
|
#+end_src
|
||
|
|
||
|
Add exported directory to ~/etc/exports~:
|
||
|
#+begin_src shell
|
||
|
/shared <ip address of client>(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
|
||
|
#+end_src
|
||
|
|
||
|
Create the NFS table:
|
||
|
#+begin_src shell
|
||
|
sudo exportfs -a
|
||
|
#+end_src
|
||
|
|
||
|
** Setup NFS client on Debian
|
||
|
#+begin_src shell
|
||
|
sudo apt install -y nfs-common
|
||
|
#+end_src
|
||
|
|
||
|
Create shared directory:
|
||
|
#+begin_src shell
|
||
|
sudo mkdir -p /mnt/shared
|
||
|
#+end_src
|
||
|
|
||
|
Mount NFS exports:
|
||
|
#+begin_src shell
|
||
|
sudo mount.nfs4 <ip address of server>:/ /mnt/shared
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_quote
|
||
|
Note that ~<server ip>:/~ is relative to the exported directory. So ~/mnt/shared~ on the client is ~/shared~ on the server. If you try to mount with ~mount -t nfs <server ip>:/shared /mnt/shared~ you will get a /no such file or directory/ error.
|
||
|
#+end_quote
|
||
|
|
||
|
~/etc/fstab~ entry:
|
||
|
#+begin_src shell
|
||
|
<ip address of server>:/ /mnt/shared nfs4 soft,intr,rsize=8192,wsize=8192
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src shell
|
||
|
sudo systemctl daemon-reload
|
||
|
sudo mount -av
|
||
|
#+end_src
|
||
|
|
||
|
** Setup NFS server on FreeBSD
|
||
|
Edit ~/etc/rc.conf~.
|
||
|
#+BEGIN_SRC shell
|
||
|
nfs_server_enable="YES"
|
||
|
nfs_server_flags="-u -t -n 4"
|
||
|
rpcbind_enable="YES"
|
||
|
mountd_flags="-r"
|
||
|
mountd_enable="YES"
|
||
|
#+END_SRC
|
||
|
|
||
|
Edit ~/etc/exports~.
|
||
|
#+BEGIN_SRC
|
||
|
/data1 -alldirs -mapall=user1 host1 host2 host3
|
||
|
/data2 -alldirs -maproot=user2 host2
|
||
|
#+END_SRC
|
||
|
|
||
|
Start the services.
|
||
|
#+BEGIN_SRC shell
|
||
|
sudo service rpcbind start
|
||
|
sudo service nfsd start
|
||
|
sudo service mountd start
|
||
|
#+END_SRC
|
||
|
|
||
|
After making changes to the exports file, you need to restart NFS for the changes to take effect:
|
||
|
#+BEGIN_SRC shell
|
||
|
kill -HUP `cat /var/run/mountd.pid`
|
||
|
#+END_SRC
|
||
|
|
||
|
** Setup NFS client on FreeBSD
|
||
|
Edit ~/etc/rc.conf~.
|
||
|
#+BEGIN_SRC shell
|
||
|
nfs_client_enable="YES"
|
||
|
nfs_client_flags="-n 4"
|
||
|
rpc_lockd_enable="YES"
|
||
|
rpc_statd_enable="YES"
|
||
|
#+END_SRC
|
||
|
|
||
|
** Mount NFS share on client with systemd
|
||
|
Create a file at ~/etc/systemd/system/mnt-backup.mount~.
|
||
|
#+BEGIN_SRC systemd
|
||
|
[Unit]
|
||
|
Description=borgbackup NFS share from FreeBSD
|
||
|
DefaultDependencies=no
|
||
|
Conflicts=umount.target
|
||
|
After=network-online.target remote-fs.target
|
||
|
Before=umount.target
|
||
|
|
||
|
[Mount]
|
||
|
What=10.0.0.119:/coffeeNAS/borgbackup/repositories
|
||
|
Where=/mnt/backup
|
||
|
Type=nfs
|
||
|
Options=defaults,vers=3
|
||
|
|
||
|
[Install]
|
||
|
WantedBy=multi-user.target
|
||
|
#+END_SRC
|