summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD23
-rwxr-xr-xnfs-utils-rdma-client18
-rwxr-xr-xnfs-utils-rdma-client.install26
-rw-r--r--nfs-utils-rdma-client.service15
5 files changed, 100 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..aed64e0c2328
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,18 @@
+pkgbase = nfs-utils-rdma-client
+ pkgdesc = Load kernel modules for NFS client using RDMA
+ pkgver = 1.00
+ pkgrel = 1
+ arch = any
+ license = GPL2
+ depends = rdma
+ depends = nfs-utils
+ source = nfs-utils-rdma-client
+ source = nfs-utils-rdma-client.service
+ source = nfs-utils-rdma-client.install
+ md5sums = 8652506b9507de4b53c44655fb9bcb45
+ md5sums = b56ee8cb993dbe9432430a6fabb7847b
+ md5sums = f0f4895f0d64178312da50e7b27a1617
+
+pkgname = nfs-utils-rdma-client
+ install = nfs-utils-rdma-client.install
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..4ee5c8f6dc8a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: James Harvey <jamespharvey20@gmail.com>
+# * Namcap warns that dependency rdma and nfs-utils are not needed, but nfs-utils-rdma-client requires IPoIB, and the IPoIB kernel modules are loaded by the rdma package, and requires nfs-utils, or there's no kernel module to load.
+
+pkgname=nfs-utils-rdma-client
+pkgver=1.00
+pkgrel=1
+pkgdesc='Load kernel modules for NFS client using RDMA'
+arch=('any')
+license=('GPL2')
+depends=('rdma' 'nfs-utils')
+source=('nfs-utils-rdma-client'
+ 'nfs-utils-rdma-client.service'
+ 'nfs-utils-rdma-client.install')
+md5sums=('8652506b9507de4b53c44655fb9bcb45'
+ 'b56ee8cb993dbe9432430a6fabb7847b'
+ 'f0f4895f0d64178312da50e7b27a1617')
+
+package() {
+ install=nfs-utils-rdma-client.install
+
+ install -Dm755 "${srcdir}/nfs-utils-rdma-client" "${pkgdir}/usr/bin/nfs-utils-rdma-client"
+ install -Dm644 "${srcdir}/nfs-utils-rdma-client.service" "${pkgdir}/etc/systemd/system/nfs-utils-rdma-client.service"
+}
diff --git a/nfs-utils-rdma-client b/nfs-utils-rdma-client
new file mode 100755
index 000000000000..50dcd6361b6f
--- /dev/null
+++ b/nfs-utils-rdma-client
@@ -0,0 +1,18 @@
+#!/bin/bash
+# Written by James Harvey <jamespharvey20@gmail.com>
+# Released under GPL2 license
+#
+# Load kernel module for NFS client using RDMA
+#
+# This is usually run automatically by systemd, after rdma.service starts
+#
+
+if [[ $EUID -ne 0 ]]; then
+ echo "nfs-utils-rdma-server must be run as root" 1>&2
+ exit 1
+fi
+
+modprobe xprtrdma
+echo "Attempted loading kernel module xprtrdma."
+
+exit 0
diff --git a/nfs-utils-rdma-client.install b/nfs-utils-rdma-client.install
new file mode 100755
index 000000000000..7bbca4db85e5
--- /dev/null
+++ b/nfs-utils-rdma-client.install
@@ -0,0 +1,26 @@
+post_install() {
+ echo "nfs-utils-rdma-client
+
+ After nfs-utils-rdma-server is installed, configured, and running on the
+ server, run:
+
+ mount -t nfs4 -o rdma,port=<server port>,vers=4.0
+ <ip address or name>:/<share name> /<mount point>
+ server port:
+ Use the value in the server's /etc/nfs-utils-rdma-server.conf
+ (default 20049)
+ ip address or name:
+ Using an ip address is recommended, since you likely have two routes to
+ the server, this forces it to use the RDMA-capable interface.
+ NOTE: The ip address is used for basic communication. The actual file
+ data transfers happen using RDMA.
+ share name:
+ The full path of the directory shared on the server. i.e. /home/user
+ mount point:
+ The local mount point you want to use
+ NOTE: If you omit "vers=4.0", it will default to using v4.2. v4.1 and
+ v4.2 do not yet support RDMA, and you will experience undefined
+ behavior - likely the mount will look complete, but when you use
+ it (even cd or ls), the command will hang.
+"
+}
diff --git a/nfs-utils-rdma-client.service b/nfs-utils-rdma-client.service
new file mode 100644
index 000000000000..9c1e8f13a52c
--- /dev/null
+++ b/nfs-utils-rdma-client.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Load kernel module for NFS client using RDMA
+RefuseManualStop=true
+DefaultDependencies=false
+Conflicts=emergency.target emergency.service
+Before=remote-fs-pre.target
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/nfs-utils-rdma-client
+
+[Install]
+WantedBy=sysinit.target