From eb5e984e98cd72df147ec6a77ad1943dc22d6380 Mon Sep 17 00:00:00 2001 From: Lukasz Dorau Date: Fri, 9 Sep 2022 22:26:11 +0200 Subject: [PATCH] example R: add the librpma example In this example we want to introduce to you a basic way of accessing Persistent Memory when it is installed in a remote system. Remote Persistent Memory (or RPMem for short) is a way of doing this via a network by making use of the Remote Direct Memory Access (RDMA) technology. This example is an introduction to RPMem. We will guide you briefly through setting up all required hardware and software components and verifying whether the connection works properly. Having that, we will show you how to access Persistent Memory on a remote system using the librpma library. After completing this example you will know: - what is RPMem and what it is good for, - how RPMem is different comparing to PMem, - what hardware and software components are required to start using RPMem, - how to verify whether the RDMA network works properly, - how to use librpma API to: - establish a connection, - prepare memory for remote manipulation, - manipulate memory on the remote system, - assure persistency of stores to the remote system. Step-by-step you will: - test the connection on the basic level using ping, - test the connection RDMA capabilities using rping, - review an application focusing on establishing a connection, - review an application reading remote system's memory and writing it back in the persistent manner. Co-authored-by: Oksana Salyk Co-authored-by: Jan M Michalski Co-authored-by: Patryk717 Signed-off-by: Lukasz Dorau # Conflicts: # docker/Dockerfile --- doc/Install-CentOS8 | 22 +++ docker/Dockerfile | 13 +- docker/librpma.sh | 19 ++ img/examples/R/ecosystem.png | Bin 0 -> 147988 bytes scripts/config_softroce.sh | 119 +++++++++++++ scripts/enable_pmemusers | 33 +++- templates/examples/R/body.tmpl | 247 ++++++++++++++++++++++++++ templates/examples/R/description.tmpl | 18 ++ 8 files changed, 469 insertions(+), 2 deletions(-) create mode 100755 docker/librpma.sh create mode 100644 img/examples/R/ecosystem.png create mode 100755 scripts/config_softroce.sh create mode 100644 templates/examples/R/body.tmpl create mode 100644 templates/examples/R/description.tmpl diff --git a/doc/Install-CentOS8 b/doc/Install-CentOS8 index dba933f..55240e0 100644 --- a/doc/Install-CentOS8 +++ b/doc/Install-CentOS8 @@ -37,6 +37,18 @@ It used the 2021-02-19 repo. You can adjust your commands based on running in a $ sudo dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml Install the latest mainline kernel $ sudo dnf --enablerepo=elrepo-kernel install kernel-ml + +2b. [required only for Example R] Configure Soft-RoCE + In order to configure Soft-RoCE follow the manuals: + - https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-configuring_soft-_roce or/and + - https://support.mellanox.com/s/article/howto-configure-soft-roce + +Add also the following 4 lines to the end of the '/etc/security/limits.conf' file: +* soft memlock unlimited +* hard memlock unlimited +* soft nofile 1048000 +* hard nofile 1048000 +to set the values of maximum locked memory and maximum open files required by Soft-RoCE. 3. Install the basics you care about, something like: $ sudo yum -y install dnf git ipmctl ndctl vim-enhanced firewalld certbot @@ -121,6 +133,16 @@ Install the latest mainline kernel $ sudo ipmctl create -goal PersistentMemoryType=AppDirect $ sudo systemctl reboot +11a. [Example R] + + $ sudo ndctl create-namespace -f -e namespace0.0 --mode=devdax + $ sudo chown -R $(whoami):$(whoami) /dev/dax0.0 + $ sudo chmod a+rw /dev/dax0.0 + +Go to bullet 13. (Add a root cron job to expire old webhackathon sessions). + +11b. [examples other than Example R] + $ sudo ndctl create-namespace --mode fsdax --continue (note: this will fail if there is already an fsxdax on the memory, go to the next step) diff --git a/docker/Dockerfile b/docker/Dockerfile index b473808..cbd89c8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,7 +11,15 @@ FROM fedora:30 LABEL maintainer="andy.rudoff@intel.com" +ENV RPMA_DEPS "\ + iproute \ + iputils \ + librdmacm-utils \ + net-tools \ + rdma-core-devel" + RUN dnf update -y && dnf install -y\ + $RPMA_DEPS\ autoconf\ automake\ bash-completion\ @@ -103,7 +111,10 @@ RUN /pmemkv-ruby.sh COPY memkind.sh / RUN /memkind.sh +COPY librpma.sh / +RUN /librpma.sh + COPY tz.sh / RUN /tz.sh -RUN rm /pmdk.sh /valgrind.sh /pmemobj-cpp.sh /pmemkv.sh /setup-maven-settings.sh /pmemkv-java.sh /pmemkv-python.sh /pmemkv-nodejs.sh /pmemkv-ruby.sh /memkind.sh /tz.sh +RUN rm /pmdk.sh /valgrind.sh /pmemobj-cpp.sh /pmemkv.sh /setup-maven-settings.sh /pmemkv-java.sh /pmemkv-python.sh /pmemkv-nodejs.sh /pmemkv-ruby.sh /memkind.sh /librpma.sh /tz.sh diff --git a/docker/librpma.sh b/docker/librpma.sh new file mode 100755 index 0000000..69371fa --- /dev/null +++ b/docker/librpma.sh @@ -0,0 +1,19 @@ +#!/bin/bash -ex + +LIBRPMA_VERSION=1.1.0 +ZIP_FILE=rpma.zip + +# install librpma +wget -O $ZIP_FILE https://github.com/pmem/rpma/archive/${LIBRPMA_VERSION}.zip +unzip $ZIP_FILE +mkdir -p rpma-${LIBRPMA_VERSION}/build +pushd rpma-${LIBRPMA_VERSION}/build +cmake .. -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_DOC=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TESTS=OFF +make -j$(nproc) +sudo make -j$(nproc) install +popd +rm -rf $ZIP_FILE rpma-${LIBRPMA_VERSION} diff --git a/img/examples/R/ecosystem.png b/img/examples/R/ecosystem.png new file mode 100644 index 0000000000000000000000000000000000000000..93f8eb861c0f77f0ad58f48a2f5ad1e9527b54b3 GIT binary patch literal 147988 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 z] +# +# Options: +# - configure SoftRoCE for the given +# or for the first active and up one if no argument +# is given +# + +NET_IF=$1 + +MODULE="rdma_rxe" +DIR="/lib/modules/$(uname -r)" +STATE_OK="state ACTIVE physical_state LINK_UP" + +function get_IP4() { + NET_IF=$1 + ip -4 -j -p a show $NET_IF | grep -e local | cut -d'"' -f4 +} + +function print_IP4_of() { + NET_IF=$1 + IP=$(get_IP4 $NET_IF) + if [ "$IP" != "" ]; then + echo -n "$IP" + else + echo "no IP address assigned" + exit 1 + fi +} + +function print_IP4_all() { + NET_IFS=$(rdma link show | grep -e "$STATE_OK" | cut -d' ' -f8) + for NET_IF in $NET_IFS; do + IP=$(get_IP4 $NET_IF) + [ "$IP" != "" ] && echo -n "$IP" + done +} + +if [ $(lsmod | grep -e $MODULE | wc -l) -lt 1 ]; then + N_MODULES=$(find $DIR -name "$MODULE.ko*" | wc -l) + if [ $N_MODULES -lt 1 ]; then + echo "Error: cannot find the '$MODULE' module in the '$DIR' directory" + exit 1 + fi + + if ! sudo modprobe $MODULE; then + echo "Error: cannot load the '$MODULE' module" + sudo modprobe -v $MODULE + exit 1 + fi +fi + +if ! which ip > /dev/null; then + echo "Error: cannot find the 'ip' command. Install the 'iproute/iproute2' package" + exit 1 +fi + +if ! which rdma > /dev/null; then + echo "Error: cannot find the 'rdma' command. Install the 'iproute/iproute2' package" + exit 1 +fi + +if ! rdma link show > /dev/null ; then + echo "Error: the 'rdma link show' command failed" + exit 1 +fi + +if [ "$NET_IF" == "" ]; then + RDMA_LINKS=$(rdma link show | grep -e "$STATE_OK" | wc -l) + if [ $RDMA_LINKS -gt 0 ]; then + print_IP4_all + exit 0 + fi + + # pick up the first 'up' network interface + NET_IF=$(ip link | grep -v -e "LOOPBACK" | grep -e "state UP" | head -n1 | cut -d: -f2 | cut -d' ' -f2) + if [ "$NET_IF" == "" ]; then + # + # Look for a USB Ethernet network interfaces, + # which may not have 'state UP', + # but only 'UP' and 'state UNKNOWN', for example: + # ... ... state UNKNOWN ... + # + NET_IF=$(ip link | grep -v -e "LOOPBACK" | grep -e "UP" | grep -e "state UNKNOWN" | head -n1 | cut -d: -f2 | cut -d' ' -f2) + if [ "$NET_IF" == "" ]; then + echo "Error: cannot find an active and up network interface" + exit 1 + fi + fi +fi + +RXE_NAME="rxe_$NET_IF" +sudo rdma link add $RXE_NAME type rxe netdev $NET_IF +if [ $? -ne 0 ]; then + echo "Error: configuring SoftRoCE failed" + exit 1 +fi + +RDMA_LINKS=$(rdma link show | grep -e "$STATE_OK" | grep -e "$NET_IF" | wc -l) +if [ $RDMA_LINKS -lt 1 ]; then + echo "Error: configuring SoftRoCE for the '$NET_IF' network interface failed" + exit 1 +fi + +print_IP4_of $NET_IF diff --git a/scripts/enable_pmemusers b/scripts/enable_pmemusers index a9e5cb0..1eea6b2 100755 --- a/scripts/enable_pmemusers +++ b/scripts/enable_pmemusers @@ -85,6 +85,7 @@ die "$H/img directory not found\n" unless -d "$H/img"; die "$H/js directory not found\n" unless -d "$H/js"; die "$H/templates directory not found\n" unless -d "$H/templates"; die "$H/users directory not found\n" unless -d "$H/users"; +die "the jq command is missing\n" unless system("which jq > /dev/null") == 0; my $passwd = `grep '^pmemuser[0-9][0-9]*:' /etc/passwd`; my $nopasswd = $? >> 8; @@ -92,6 +93,25 @@ die "no pmemuserX accounts in /etc/passwd\n" if $nopasswd; my @pmem_mounts = ('/pmem0', '/pmem1'); +# set name of device DAX +my $dax_name = "dax0.0"; + +# check if the device DAX exists +my $dev_dax = "/dev/$dax_name"; +die "$dev_dax device DAX not found\n" unless -c "$dev_dax"; + +# look for device DAX in ndctl +my $exists = `ndctl list | grep -c -e "$dax_name"`; +chomp($exists); +die "$dev_dax device DAX not listed by ndctl\n" if ($exists != 1); + +# verify if the device DAX has the minimum required size of 800KiB (4KiB per user) +my $size = `ndctl list | jq '.[] | select(.chardev=="$dax_name")' | jq '.size'`; +die "size of device DAX is less than 800KiB ($size < 819200)\n" if ($size < 819200); + +# add RW permissions for all users to the device DAX +runy("chmod a+rw $dev_dax"); + for (my $id = $Lo; $id <= $Hi; $id++) { my $thisid = $BASEID + $id; my $user = "pmemuser$id"; @@ -105,7 +125,18 @@ for (my $id = $Lo; $id <= $Hi; $id++) { runy("echo '$user:$Pass' | chpasswd"); } - runy("docker run -t -d --name=$user -v $H/users/$user/shadow:/etc/shadow -v $H/users/$user/passwd:/etc/passwd -v $H/users/$user/group:/etc/group -v $H/users/$user/home:/home/$user -v $pmemdir:/pmem -u $thisid:$thisid --hostname=container$id --workdir=/home/$user --cap-add SYS_PTRACE --restart=unless-stopped $Image"); + runy("echo 'enable_pmemusers: PMEMUSER_ID=$id'"); + runy("echo 'enable_pmemusers: DEV_DAX=$dev_dax'"); + + my $ip = `./config_softroce.sh`; + if ($? >> 8) { + say("WARNING: config_softroce.sh failed, SoftRoCE is not configured, the Example R will not work!"); + $ip = "config_softroce.sh_failed"; + runy("docker run -t -d --name=$user --env RPMA_SOFT_ROCE_IP=$ip --env PMEMUSER_ID=$id --env DEV_DAX=$dev_dax -v $H/users/$user/shadow:/etc/shadow -v $H/users/$user/passwd:/etc/passwd -v $H/users/$user/group:/etc/group -v $H/users/$user/home:/home/$user -v $pmemdir:/pmem -u $thisid:$thisid --hostname=container$id --workdir=/home/$user --cap-add SYS_PTRACE --restart=unless-stopped $Image"); + } else { + runy("echo 'enable_pmemusers: RPMA_SOFT_ROCE_IP=$ip'"); + runy("docker run -t -d --name=$user --env RPMA_SOFT_ROCE_IP=$ip --env PMEMUSER_ID=$id --env DEV_DAX=$dev_dax --network host --device /dev/infiniband --device $dev_dax -v /sys/class/infiniband:/sys/class/infiniband -v /sys/class/infiniband_verbs:/sys/class/infiniband_verbs -v /sys/class/misc/rdma_cm:/sys/class/misc/rdma_cm -v $H/users/$user/shadow:/etc/shadow -v $H/users/$user/passwd:/etc/passwd -v $H/users/$user/group:/etc/group -v $H/users/$user/home:/home/$user -v $pmemdir:/pmem -u $thisid:$thisid --hostname=container$id --workdir=/home/$user --cap-add SYS_PTRACE --restart=unless-stopped $Image"); + } } say('done'); diff --git a/templates/examples/R/body.tmpl b/templates/examples/R/body.tmpl new file mode 100644 index 0000000..f54f5eb --- /dev/null +++ b/templates/examples/R/body.tmpl @@ -0,0 +1,247 @@ +{{top "Remote Persistent Memory"}} + +

+We assume you already know what Persistent Memory (or PMem for short) is and hopefully +you have learned many possible ways of benefiting from using it in your applications. +In this example we want to introduce a basic way of accessing the very same +Persistent Memory but when installed in a remote system. Remote Persistent Memory +(or RPMem for short) is a way of doing this via a network by making use +of the Remote Direct Memory Access (RDMA) technology. + +

+This example is an introduction to RPMem. We will guide you briefly through setting up +all required hardware and software components and verifying whether the connection +works properly. Having that, we will show you how to access Persistent Memory +on a remote system using the librpma library (where RPMA stands for +Remote Persistent Memory Access, makes sense right?). + +

+After completing this example you will know: +

    +
  • what is RPMem and what it is good for,
  • +
  • how RPMem is different comparing to PMem,
  • +
  • what hardware and software components are required to start using RPMem,
  • +
  • how to verify whether the RDMA network works properly,
  • +
  • how to use librpma API to: +
      +
    • establish a connection,
    • +
    • prepare memory for remote manipulation,
    • +
    • manipulate memory on the remote system,
    • +
    • assure persistency of stores to the remote system.
    • +
    +
  • +
+ +

+Step-by-step you will: +

    +
  • test the connection on the basic level using ping,
  • +
  • test the connection RDMA capabilities using rping,
  • +
  • review an application focusing on establishing a connection,
  • +
  • review an application reading remote system's memory and writing it back + in the persistent manner.
  • +
+ +{{step "Connectivity check"}} + +

+In order to have a real RDMA network you have to have: +

    +
  • two machines both equipped with RDMA-capable network adapters connected + to each other,
  • +
  • libibverbs and librdmacm libraries installed in both systems (or the rdma-core + package containing both of them).
  • +
+ +

+Alternatively, for development purposes, you can use a software-emulated RDMA network +interface (SoftRoCE) that can be set up using the following +script. + +

+All used network interfaces should be configured, up and running with an IP address +assigned. + +

+First, you will check the basic Ethernet network connectivity using the ping command +(see the ping(8) +manual for details). + +{{edit "run_test_ping.sh"}} + +{{run "./run_test_ping.sh"}} + +

+Next, you will check the RDMA connection with the RDMA ping-pong test using +the rping command (provided by the librdmacm-utils package). + +

+The rping command establishes a reliable RDMA connection between two nodes using +librdmacm and optionally performs RDMA transfers between the nodes, then disconnects. +When rping works, you can be sure that the RDMA connection is correctly configured +and works well (see the +rping(1) +manual for details). + +{{edit "run_test_rping.sh"}} + +{{run "./run_test_rping.sh"}} + +{{step "Establishing a connection"}} + +

+The Remote Persistent Memory Access library (librpma) is a C library to simplify accessing +PMem on remote systems over RDMA. For more information see +pmem.io. + +

+ + +

+Now you will implement both sides of an RDMA connection: +

+ +

+These applications intentionally do only connection and disconnection to familiarize you +with these processes. Building on this you will do more in the next step. + +{{edit "simple_client.c" "simple_server.c" "common.h" "common.c" "CMakeLists.txt" "build_simple.sh"}} + +{{build "./build_simple.sh"}} + +{{edit "run_simple.sh"}} + +{{run "./run_simple.sh"}} + +{{step "Remote Persistent Memory access"}} + +

+Now you will read and write back RPMem's content in the persistent way using +the following librpma functions: +

    +
  • rpma_read() - initiates transferring (reading) data from the remote + memory to the local memory (see the + rpma_read(3) + manual for details),
  • +
  • rpma_write() - initiates transferring (writing) data from the local + memory to the remote memory (see the + rpma_write(3) + manual for details),
  • +
  • rpma_flush() - initiates finalizing a transfer of data to the remote + memory, it flushes data down to the persistent domain (see the + rpma_flush(3) + manual for details).
  • +
+ +

+In this example, after having established a connection (see the previous step for +details), the client reads (using rpma_read()) an initial content +of the server's memory (the string: "The initial content of the server memory"), +then it writes (using rpma_write()) the new message ("Hello world!") +to the server's memory and finally it flushes the just written data down +to the persistent domain. + +

+Looking more deeply into the code it can be re-described in the following way: +

    +
  • The server prepares a local persistent memory and exposes the memory description + along with other parameters required to perform an RDMA read, write and flush + operations. After the connection is established, the server waits for the client + to disconnect.
  • +
  • The client allocates memory from DRAM and registers it as a reading destination + and writing source. After the connection is established the client receives + the server's memory regions registered as a reading source and a writing + destination. The client performs the RDMA read from the remote memory region + to the local memory region, then it writes new data to the local memory region + and performs the RDMA write from the local memory region to the remote memory + region followed by the RPMA flush.
  • +
+ +

+Note #1: The server requires a unique "user-id" argument in order to use +a different part of persistent memory that is shared by all the server instances +running on the same PMem device. The "user-id" argument is also used to pick +a unique TCP port. + +

+Note #2: For the sake of this example, the memory region being written to and +the server's peer configuration are transferred via the connection's private +data. In general, it can be transferred via an out-of-band or the in-band +channel. + +

+Note #3: This example uses exactly the same "common.h" and "common.c" +files copied from the previous step. + +{{edit "client.c" "server.c" "common.h" "build_main.sh"}} + +{{build "./build_main.sh"}} + +{{edit "run_main.sh"}} + +{{run "./run_main.sh"}} + +{{summary}} + +

+During this session, you have: +

    +
  • checked the basic network connectivity,
  • +
  • checked whether the network is RDMA-capable,
  • +
  • established a connection using the librpma library,
  • +
  • read and written back the RPMem's content in the persistent way.
  • +
+ +

+Takeaways: +

    +
  • Remote Persistent Memory (RPMem) is a way of accessing Persistent Memory when + it is installed in a remote system,
  • +
  • RPMem leverages RDMA capabilities to achieve e.g.: +
      +
    • zero-copy read of the contents of RPMem,
    • +
    • single-sided persistency of the PMem's contents in a remote system,
    • +
    +
  • +
  • RPMem is a way to seamlessly incorporate PMem into modern cloud architectures,
  • +
  • the librpma library is a ready-to-use simple API implementing the RPMem principles.
  • +
+ +

+If you want to learn more: +

    +
  • https://github.com/pmem/rpma + - where librpma is forged +
      +
    • We especially recommend getting familiar with + examples + that allow you to learn other supported use-cases.
    • +
    +
  • +
  • https://pmem.io/rpma/ + - where you can find the librpma library manuals, configuration guidelines + and performance reports.
  • +
  • It may be also useful to read our whitepaper: + Persistent Memory Replication Over Traditional RDMA. +
      +
    • Note it describes RPMem in the context of the already deprecated librpmem library + (do not confuse with librpma) which is a completely different story.
    • +
    +
  • +
+ +

+Thank you very much for your attention! + +

+Yours sincerely
+RPMem PMDK Squad + +{{bottom}} diff --git a/templates/examples/R/description.tmpl b/templates/examples/R/description.tmpl new file mode 100644 index 0000000..2a2cbcc --- /dev/null +++ b/templates/examples/R/description.tmpl @@ -0,0 +1,18 @@ +{{template "tocEntryStart" .}} +{{template "tocShortText" .}} +Remote Persistent Memory +{{template "tocLongText" .}} +{{template "tocRecommended" .}} +You already know how to access local Persistent Memory, +but Persistent Memory can be also accessed via network +based on Remote Direct Memory Access technology (RDMA). +Moreover, you can store data in remote Persistent Memory +(a Persistent Memory which is attached to another physical system) +and make this store persistent. +

+From this example you will learn how to establish an RDMA connection, +prepare your local Persistent Memory for remote manipulation, +and how to modify remote Persistent Memory using the librpma library. +

+Language: C +{{template "tocEntryEnd" .}}