pmem Tools version 1.5

The PMDK repository on GitHub is the ultimate source of information on PMDK from release 2.0! For all questions and to submit eventual issues please follow to that repository. The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.



pmempool-create - create a persistent memory pool


$ pmempool create [<options>] [<type>] <file>


The pmempool invoked with create command creates a pool file of specified type.

The only valid pool types is: obj which stands for pmemobj pool. By default the pool file is created with minimum allowed size for specified pool type. The minimum sizes for obj pool type is PMEMOBJ_MIN_POOL. See libpmemobj(7) for details.

In order to set custom size of pool use -s option, or use -M option to create a pool of maximum available size on underlying file system.

The size argument may be passed in format that permits only the upper-case character for byte - B as specified in IEC 80000-13, IEEE 1541 and the Metric Interchange Format. Standards accept SI units with obligatory B - kB, MB, GB, … which means multiplier by 1000 and IEC units with optional “iB” - KiB, MiB, GiB, …, K, M, G, … - which means multiplier by 1024.

Available options:

-s, --size <size>

Size of pool file.

-M, --max-size

Set size of pool to available space of underlying file system.

-m, --mode <octal>

Set permissions to (the default is 0664) when creating the files. If the file already exist the permissions are not changed.

-i, --inherit <file>

Create a new pool of the same size and other properties as <file>.

-b, --clear-bad-blocks

Clear bad blocks in existing files.

-f, --force

Remove the pool before creating.

-v, --verbose

Increase verbosity level.

-h, --help

Display help message and exit.

-l, --layout <layout>

Layout name of the pmemobj pool. By default when creating a pmem obj pool, the layout name provided to the libpmemobj library is an empty string. Please refer to libpmemobj(7) for details.


$ pmempool create obj pool.obj

Create a obj pool file of minimum allowed size

$ pmempool create obj -M pool.obj

Create a obj pool file of maximum allowed size

$ pmempool create --layout my_layout obj pool.obj

Create an obj pool file of minimum allowed size and layout “my_layout”

$ pmempool create --inherit=pool.obj new_pool.obj

Create a pool file based on pool.obj file


pmempool(1), libpmemobj(7) and

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.