2018-08-30 17:47:17 +03:00
|
|
|
Building
|
2018-08-27 20:22:38 +03:00
|
|
|
----------------------
|
|
|
|
|
2018-08-30 17:47:17 +03:00
|
|
|
The DAOS library must be installed on the system.
|
|
|
|
|
|
|
|
./bootsrap
|
2019-03-30 22:11:44 +03:00
|
|
|
./configure --prefix=iorInstallDir --with-daos=DIR --with-cart=DIR
|
2018-08-30 17:47:17 +03:00
|
|
|
|
2019-03-30 22:11:44 +03:00
|
|
|
One must specify "--with-daos=/path/to/daos/install and --with-cart". When that
|
|
|
|
is specified the DAOS and DFS driver will be built.
|
2018-08-30 17:47:17 +03:00
|
|
|
|
2019-03-30 22:11:44 +03:00
|
|
|
The DAOS driver uses the DAOS API to open a container (or create it if it
|
|
|
|
doesn't exist first) then create an array object in that container (file) and
|
|
|
|
read/write to the array object using the daos Array API. The DAOS driver works
|
|
|
|
with IOR only (no mdtest support yet). The file name used by IOR (passed by -o
|
|
|
|
option) is hashed to an object ID that is used as the array oid.
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
The DFS (DAOS File System) driver creates an encapsulated namespace and emulates
|
|
|
|
the POSIX driver using the DFS API directly on top of DAOS. The DFS driver works
|
|
|
|
with both IOR and mdtest.
|
2018-08-27 20:22:38 +03:00
|
|
|
|
|
|
|
Running with DAOS API
|
|
|
|
---------------------
|
|
|
|
|
2019-01-24 03:31:12 +03:00
|
|
|
ior -a DAOS [ior_options] [daos_options]
|
2018-08-27 20:22:38 +03:00
|
|
|
|
2018-08-30 17:47:17 +03:00
|
|
|
In the IOR options, the file name should be specified as a container uuid using
|
2018-09-13 16:36:36 +03:00
|
|
|
"-o <container_uuid>". If the "-E" option is given, then this UUID shall denote
|
|
|
|
an existing container created by a "matching" IOR run. Otherwise, IOR will
|
|
|
|
create a new container with this UUID. In the latter case, one may use
|
|
|
|
uuidgen(1) to generate the UUID of the new container.
|
2018-08-27 20:22:38 +03:00
|
|
|
|
2018-08-30 17:47:17 +03:00
|
|
|
The DAOS options include:
|
|
|
|
|
|
|
|
Required Options:
|
2019-01-24 03:31:12 +03:00
|
|
|
--daos.pool <pool_uuid>: pool uuid to connect to (has to be created beforehand)
|
|
|
|
--daos.svcl <pool_svcl>: pool svcl list (: separated)
|
2019-03-30 22:11:44 +03:00
|
|
|
--daos.cont <cont_uuid>: container for the IOR files/objects (can use `uuidgen`)
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
Optional Options:
|
2019-01-24 03:31:12 +03:00
|
|
|
--daos.group <group_name>: group name of servers with the pool
|
2019-03-30 22:11:44 +03:00
|
|
|
--daos.chunk_size <chunk_size>: Chunk size of the array object controlling striping over DKEYs
|
|
|
|
--daos.destroy flag to destory the container on finalize
|
|
|
|
--daos.oclass <object_class>: specific object class for array object
|
2018-08-27 20:22:38 +03:00
|
|
|
|
|
|
|
Examples that should work include:
|
|
|
|
|
2019-03-30 22:11:44 +03:00
|
|
|
- "ior -a DAOS -w -W -o file_name --daos.pool <pool_uuid> --daos.svcl <svc_ranks>\
|
|
|
|
--daos.cont <cont_uuid>"
|
2018-08-30 17:47:17 +03:00
|
|
|
|
2019-03-30 22:11:44 +03:00
|
|
|
- "ior -a DAOS -w -W -r -R -o file_name -b 1g -t 4m \
|
|
|
|
--daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <cont_uuid>\
|
|
|
|
--daos.chunk_size 1024 --daos.oclass R2"
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
Running with DFS API
|
|
|
|
---------------------
|
|
|
|
|
2019-01-24 03:31:12 +03:00
|
|
|
ior -a DFS [ior_options] [dfs_options]
|
|
|
|
mdtest -a DFS [mdtest_options] [dfs_options]
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
Required Options:
|
2019-01-24 03:31:12 +03:00
|
|
|
--daos.pool <pool_uuid>: pool uuid to connect to (has to be created beforehand)
|
|
|
|
--daos.svcl <pool_svcl>: pool svcl list (: separated)
|
|
|
|
--daos.cont <co_uuid>: container uuid that will hold the encapsulated namespace
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
Optional Options:
|
2019-01-24 03:31:12 +03:00
|
|
|
--daos.group <group_name>: group name of servers with the pool
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
In the IOR options, the file name should be specified on the root dir directly
|
|
|
|
since ior does not create directories and the DFS container representing the
|
|
|
|
encapsulated namespace is not the same as the system namespace the user is
|
|
|
|
executing from.
|
|
|
|
|
|
|
|
Examples that should work include:
|
2019-01-24 03:31:12 +03:00
|
|
|
- "ior -a DFS -w -W -o /test1 --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|
|
|
|
- "ior -a DFS -w -W -r -R -o /test2 -b 1g -t 4m -C --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|
|
|
|
- "ior -a DFS -w -r -o /test3 -b 8g -t 1m -C --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|
2018-08-30 17:47:17 +03:00
|
|
|
|
|
|
|
Running mdtest, the user needs to specify a directory with -d where the test
|
|
|
|
tree will be created. Some examples:
|
2019-01-24 03:31:12 +03:00
|
|
|
- "mdtest -a DFS -n 100 -F -D -d /bla --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|
|
|
|
- "mdtest -a DFS -n 1000 -F -C -d /bla --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|
|
|
|
- "mdtest -a DFS -I 10 -z 5 -b 2 -L -d /bla --daos.pool <pool_uuid> --daos.svcl <svc_ranks> --daos.cont <co_uuid>"
|