1RPMEMD(1)                  PMDK Programmer's Manual                  RPMEMD(1)
2
3
4

NAME

6       rpmemd - librpmem target node process (EXPERIMENTAL)
7

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

17       Command  line  options  overwrite the default rpmemd configuration, the
18       global configuration file and the user configuration file.
19
20       -V, --version
21
22       Displays rpmemd version and exits.
23
24       -h, --help
25
26       Prints synopsis and list of parameters and exits.
27
28       -c, --config <path>
29
30       Custom configuration file location.  If the custom  configuration  file
31       is  provided  others  are omitted.  See CONFIGURATION FILES section for
32       details.
33
34       All options described in CONFIGURATION FILES  section  are  common  for
35       both  the  configuration  file and the command line - the equivalent of
36       the following line in the config file:
37
38       option = value
39
40       is
41
42       --option value
43
44       in the command line.
45
46       The following command line options: –persist-apm, –persist-general  and
47       –use-syslog  should  not be followed by any value.  Presence of each of
48       them in the command line turns on an appropriate option.  See  CONFIGU‐
49       RATION FILES section for details.
50
51       -r, --remove <poolset>
52
53       Remove  a  pool described by given pool set file descriptor.  It is in‐
54       terpreted as a path to the pool set file relative to the pool  set  di‐
55       rectory.
56
57       -f, --force
58
59       Ignore errors when removing a pool file using –remove option.
60

CONFIGURATION FILES

62       The  rpmemd searches for the configuration files with following priori‐
63       ties:
64
65       • The global configuration file located in /etc/rpmemd/rpmemd.conf.
66
67       • The user configuration  file  located  in  the  user  home  directory
68         ($HOME/.rpmemd.conf).
69
70       The  rpmemd  can  also read configuration from the custom configuration
71       file provided using –config command line option.  See  OPTIONS  section
72       for details.
73
74       The  default  configuration  is  described in the DEFAULT CONFIGURATION
75       section.
76
77       The configuration file is a plain text file.  Each line of the configu‐
78       ration  file  can  store  only  one  configuration  option defined as a
79       key=value pair.  Empty lines and lines starting with # are omitted.
80
81       The allowed options are:
82
83       • log-file = <path> - log file location
84
85       • poolset-dir = <path> - pool set files directory
86
87       • persist-apm = {yes|no} - enable  The  Appliance  Persistency  Method.
88         This  option must be set only if the target platform has non-allocat‐
89         ing writes IO enabled.  See PERSISTENCY METHODS section for details.
90
91       • persist-general = {yes|no} - enable The General Purpose  Server  Per‐
92         sistency Method.  See PERSISTENCY METHODS section for details.
93
94       • use-syslog = {yes|no} - use syslog(3) for logging messages instead of
95         log file
96
97       • log-level = <level> - set log level value.  Accepted  <level>  values
98         are:
99
100err - error conditions
101
102warn - warning conditions
103
104notice - normal, but significant conditions
105
106info - informational message
107
108debug - debug-level message
109
110       The  $HOME sub-string in the poolset-dir path is replaced with the cur‐
111       rent user home directory.
112

EXAMPLE

114       Example of the configuration file:
115
116              # This is an example of configuration file
117              log-file = $HOME/.logs/rpmemd.log
118              poolset-dir = $HOME/poolsets/
119              persist-apm = yes
120              persist-general = no
121              use-syslog = no # Use log file instead of syslog
122              log-level = info
123

DEFAULT CONFIGURATION

125       The rpmemd default configuration is equivalent of the following config‐
126       uration file:
127
128              log-file = /var/log/rpmemd.log
129              poolset-dir = $HOME
130              persist-apm = no
131              persist-general = yes
132              use-syslog = yes
133              log-level = err
134

PERSISTENCY METHODS

136       The  librpmem(7) supports two methods for making data written to remote
137       persistent memory durable.  The difference between the use of  the  two
138       mechanisms  is  based on whether librpmem(7) will make use of non-allo‐
139       cating writes on the remote node.
140
141The General Purpose Server Persistency Method does not have  any  re‐
142         quirements  for  the platform on which the target daemon runs and can
143         be enabled by administrator using the persist-general  option.   This
144         method  utilize  libpmem(7) persistency mechanisms on remote node and
145         requires additional communication between initiator and  remote  node
146         using the in-band connection.
147
148The  Appliance  Persistency Method requires non-allocating writes en‐
149         abled on the platform and can be enabled by administrator using  per‐
150         sist-apm  option.   This method requires to issue an RDMA READ opera‐
151         tion after the RDMA WRITE operations performed on requested chunk  of
152         memory.
153
154       “Non-allocating  write  requests” is the Intel Integrated IO Controller
155       mode where all incoming PCIe writes will utilize non-allocating buffers
156       for the write requests.  Non-allocating writes are guaranteed to bypass
157       all of the CPU caches and force the write requests to flow directly  to
158       the Integrated Memory Controller without delay.
159
160       The  rpmemd  dynamically  choose the appropriate persistency method and
161       the flushing to persistence primitive for GPSPM for  each  opened  pool
162       set  name  depending  on  available persistency methods and whether all
163       pool set parts are stored in the persistent memory.
164
165       If the Appliance Persistency Method is enabled  and  the  pool  set  is
166       stored  in  the persistent memory rpmemd will use the Appliance Persis‐
167       tency Method.  If the pool set is NOT stored in the  persistent  memory
168       it will fallback to the General Puropose Server Persistency Method with
169       pmem_msync(3).
170
171       If the General Puropose Server Persistency Method is  enabled  and  the
172       pool  set  is stored in the persistent memory rpmemd will use pmem_per‐
173       sist(3).  If the pool set is NOT stored in  the  persistent  momory  it
174       will use pmem_msync(3).
175
176       See pmem_persist(3) and pmem_msync(3) for more details.
177

SEE ALSO

179       ssh(1), pmem_msync(3), pmem_persist(3), syslog(3), libpmem(7), libpmem‐
180       obj(7), librpmem(7) and <https://pmem.io>
181
182
183
184PMDK - rpmemd version 1.4         2021-07-22                         RPMEMD(1)
Impressum