Provided by: pmdk-tools_1.8-1ubuntu1_amd64 bug

NAME

       rpmemd - librpmem target node process (EXPERIMENTAL)

SYNOPSIS

              $ rpmemd [--help] [--version] [<args>]

DESCRIPTION

       The  rpmemd  process is executed on target node by librpmem(7) library over ssh(1) and facilitates access
       to persistent memory over RDMA.  The rpmemd should not be run manually under normal conditions.

OPTIONS

       Command line options overwrite the default rpmemd configuration, the global configuration  file  and  the
       user configuration file.

       -V, --version

       Displays rpmemd version and exits.

       -h, --help

       Prints synopsis and list of parameters and exits.

       -c, --config <path>

       Custom  configuration  file  location.   If the custom configuration file is provided others are omitted.
       See CONFIGURATION FILES section for details.

       All options described in CONFIGURATION FILES section are common for both the configuration file  and  the
       command line - the equivalent of the following line in the config file:

       option = value

       is

       --option value

       in the command line.

       The following command line options: –persist-apm, –persist-general and –use-syslog should not be followed
       by any value.  Presence of each of them in  the  command  line  turns  on  an  appropriate  option.   See
       CONFIGURATION FILES section for details.

       -r, --remove <poolset>

       Remove  a  pool described by given pool set file descriptor.  It is interpreted as a path to the pool set
       file relative to the pool set directory.

       -f, --force

       Ignore errors when removing a pool file using –remove option.

CONFIGURATION FILES

       The rpmemd searches for the configuration files with following priorities:

       • The global configuration file located in /etc/rpmemd/rpmemd.conf.

       • The user configuration file located in the user home directory ($HOME/.rpmemd.conf).

       The rpmemd can also read configuration from the custom configuration file provided using –config  command
       line option.  See OPTIONS section for details.

       The default configuration is described in the DEFAULT CONFIGURATION section.

       The  configuration  file  is  a  plain text file.  Each line of the configuration file can store only one
       configuration option defined as a key=value pair.  Empty lines and lines starting with # are omitted.

       The allowed options are:

       • log-file = <path> - log file location

       • poolset-dir = <path> - pool set files directory

       • persist-apm = {yes|no} - enable The Appliance Persistency Method.  This option must be set only if  the
         target platform has non-allocating writes IO enabled.  See PERSISTENCY METHODS section for details.

       • persist-general = {yes|no}  -  enable  The  General Purpose Server Persistency Method.  See PERSISTENCY
         METHODS section for details.

       • use-syslog = {yes|no} - use syslog(3) for logging messages instead of log file

       • log-level = <level> - set log level value.  Accepted <level> values are:

         • err - error conditions

         • warn - warning conditions

         • notice - normal, but significant conditions

         • info - informational message

         • debug - debug-level message

       The $HOME sub-string in the poolset-dir path is replaced with the current user home directory.

EXAMPLE

       Example of the configuration file:

              # This is an example of configuration file
              log-file = $HOME/.logs/rpmemd.log
              poolset-dir = $HOME/poolsets/
              persist-apm = yes
              persist-general = no
              use-syslog = no # Use log file instead of syslog
              log-level = info

DEFAULT CONFIGURATION

       The rpmemd default configuration is equivalent of the following configuration file:

              log-file = /var/log/rpmemd.log
              poolset-dir = $HOME
              persist-apm = no
              persist-general = yes
              use-syslog = yes
              log-level = err

PERSISTENCY METHODS

       The librpmem(7) supports two methods for making data written to remote persistent  memory  durable.   The
       difference  between  the  use  of  the  two  mechanisms  is based on whether librpmem(7) will make use of
       non-allocating writes on the remote node.

       • The General Purpose Server Persistency Method does not have any requirements for the platform on  which
         the  target  daemon  runs  and  can be enabled by administrator using the persist-general option.  This
         method utilize libpmem(7) persistency mechanisms on remote node and requires  additional  communication
         between initiator and remote node using the in-band connection.

       • The  Appliance  Persistency  Method  requires  non-allocating writes enabled on the platform and can be
         enabled by administrator using persist-apm  option.   This  method  requires  to  issue  an  RDMA  READ
         operation after the RDMA WRITE operations performed on requested chunk of memory.

       “Non-allocating write requests” is the Intel Integrated IO Controller mode where all incoming PCIe writes
       will utilize non-allocating buffers for the write requests.   Non-allocating  writes  are  guaranteed  to
       bypass  all  of  the  CPU  caches  and force the write requests to flow directly to the Integrated Memory
       Controller without delay.

       The rpmemd dynamically choose  the  appropriate  persistency  method  and  the  flushing  to  persistence
       primitive  for GPSPM for each opened pool set name depending on available persistency methods and whether
       all pool set parts are stored in the persistent memory.

       If the Appliance Persistency Method is enabled and the pool set is stored in the persistent memory rpmemd
       will  use  the  Appliance  Persistency Method.  If the pool set is NOT stored in the persistent memory it
       will fallback to the General Puropose Server Persistency Method with pmem_msync(3).

       If the General Puropose Server Persistency Method is enabled and the pool set is stored in the persistent
       memory  rpmemd  will use pmem_persist(3).  If the pool set is NOT stored in the persistent momory it will
       use pmem_msync(3).

       See pmem_persist(3) and pmem_msync(3) for more details.

SEE ALSO

       ssh(1),  pmem_msync(3),  pmem_persist(3),   syslog(3),   libpmem(7),   libpmemobj(7),   librpmem(7)   and
       <https://pmem.io>