{"id":1692,"date":"2017-04-19T20:03:08","date_gmt":"2017-04-19T19:03:08","guid":{"rendered":"http:\/\/cdblog.cdstealer.com\/?p=1692"},"modified":"2017-04-19T20:04:15","modified_gmt":"2017-04-19T19:04:15","slug":"nfs-serverclient-setup","status":"publish","type":"post","link":"https:\/\/cdblog.cdstealer.com\/?p=1692","title":{"rendered":"NFS server\/client setup"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1693\" src=\"http:\/\/cdblog.cdstealer.com\/wp-content\/uploads\/2017\/04\/2000px-Human-folder-remote-nfs.svg_-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/cdblog.cdstealer.com\/wp-content\/uploads\/2017\/04\/2000px-Human-folder-remote-nfs.svg_-300x300.png 300w, https:\/\/cdblog.cdstealer.com\/wp-content\/uploads\/2017\/04\/2000px-Human-folder-remote-nfs.svg_-150x150.png 150w, https:\/\/cdblog.cdstealer.com\/wp-content\/uploads\/2017\/04\/2000px-Human-folder-remote-nfs.svg_-1024x1024.png 1024w, https:\/\/cdblog.cdstealer.com\/wp-content\/uploads\/2017\/04\/2000px-Human-folder-remote-nfs.svg_.png 2000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>As always, first thing is first ;) \u00a0Make sure you have the correct kernel options enabled.<\/p>\n<pre>File systems ---&gt;\r\n  [*] Dnotify support\r\n  [*] Network File Systems ---&gt;\r\n        &lt;*&gt;   NFS client support\r\n        &lt;*&gt;     NFS client support for NFS version 4\r\n        [*]   NFS client support for NFSv4.1\r\n        &lt;*&gt;   NFS server support\r\n        [*]     NFS server support for NFS version 4\r\n        [*]       NFSv4.1 server support for Parallel NFS (pNFS)<\/pre>\n<p>Depending on other options enabled in the kernel, version 3 may be auto selected and non-optional.<\/p>\n<p>Once compiled and built. \u00a0We can install the required apps. \u00a0Make sure you enable to required USE flags.<\/p>\n<pre>emerge -av net-fs\/nfs-utils\r\n\r\nThese are the packages that would be merged, in order:\r\n\r\nCalculating dependencies... done!\r\n[ebuild R ~] net-fs\/nfs-utils-2.1.1::gentoo USE=\"libmount nfsidmap nfsv4 nfsv41 tcpd uuid -caps -ipv6 -kerberos -nfsdcld (-selinux)\"<\/pre>\n<h1><strong>SERVER:<\/strong><\/h1>\n<p>Now we'll create the directory structure. \u00a0The first line is the virtual root followed by each filesystem.<\/p>\n<pre>mkdir \/export\r\nmkdir \/export\/videos\r\nmkdir \/export\/music<\/pre>\n<p>Now to add the fstab entries. \u00a0I've set the <span style=\"color: #ff0000;\">ro<\/span> option as I only want the local server to write.<\/p>\n<pre>\/NAS\/Videos \/export\/videos none bind,ro 0 0\r\n\/NAS\/Music \/export\/music none bind,ro 0 0<\/pre>\n<p>Then mount them.<\/p>\n<pre>mount -a<\/pre>\n<p>On to the exports config.<\/p>\n<pre>vi \/etc\/exports<\/pre>\n<pre># \/etc\/exports: NFS file systems being exported. See exports(5).\r\n\r\n\/export &lt;client hostname&gt;(insecure,rw,sync,no_subtree_check,crossmnt,fsid=0)\r\n\/export\/videos &lt;client hostname&gt;(insecure,ro,sync,no_subtree_check,crossmnt)\r\n\/export\/music &lt;client hostname&gt;(insecure,ro,sync,no_subtree_check,crossmnt)<\/pre>\n<p>Just one more little tweak. \u00a0Cat the following file.<\/p>\n<pre># cat \/proc\/fs\/nfsd\/nfsv4recoverydir\r\n\/var\/lib\/nfs\/v4recovery<\/pre>\n<p>Now create the directory.<\/p>\n<pre>mkdir \/var\/lib\/nfs\/v4recovery<\/pre>\n<p>Without this, there will be errors in the syslog and potentially erratic performance on the client(s).<\/p>\n<p>We're using systemd for this, so let's start the daemons.<\/p>\n<pre>systemctl start rpcbind nfs-server<\/pre>\n<p>And enable at boot.<\/p>\n<pre>systemctl enable rpcbind nfs-server<\/pre>\n<h1>CLIENT:<\/h1>\n<p>For systemd, the <span class=\"tripleclick-separator\">nfs-client<\/span> service will be started automatically when systemd detects that exported directories are being mounted.<\/p>\n<p>So let's mount!<\/p>\n<pre>mount &lt;server hostname&gt;:\/music \/music\r\nmount &lt;server hostname&gt;:\/videos \/videos<\/pre>\n<p>To make persistent, add the following:<\/p>\n<pre>&lt;server hostname&gt;:\/videos \/mnt\/videos nfs4 ro,auto,_netdev,noexec 0 0\r\n&lt;server hostname&gt;:\/music\/ \/mnt\/music nfs4 ro,auto,_netdev,noexec 0 0<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As always, first thing is first ;) \u00a0Make sure you have the correct kernel options enabled. File systems ---&gt; [*] Dnotify support [*] Network File Systems ---&gt; &lt;*&gt; NFS client support &lt;*&gt; NFS client support for NFS version 4 [*] NFS client support for NFSv4.1 &lt;*&gt; NFS server support [*] NFS server support for NFS &hellip; <a href=\"https:\/\/cdblog.cdstealer.com\/?p=1692\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">NFS server\/client setup<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[288],"class_list":["post-1692","post","type-post","status-publish","format-standard","hentry","category-gentoo","tag-nfs"],"_links":{"self":[{"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/posts\/1692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1692"}],"version-history":[{"count":2,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/posts\/1692\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=\/wp\/v2\/posts\/1692\/revisions\/1695"}],"wp:attachment":[{"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cdblog.cdstealer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}