Hello developers,
This is a users query. Please help out.
I am trying to use the librados-dev library to use RADOS components of Ceph.
I have got Ceph installed on my machine, and the rados command line
shows me a pool named "data" when I say "rados lspools". I have also
tried out creating objects in this pool and it works perfectly.
However, when I try to access the same pool "data" through my C code,
by using librados.h, my code compiles and links fine but at run time I
get this error:-
$./a.out: cannot open rados pool data: No such file or directory
My code is as follows:-
#include <stdio.h>
#include "rados/librados.h"
main(int argc, char *argv[])
{
int err;
rados_t cluster;
err = rados_create(&cluster, NULL);
if (err < 0) {
printf("%s: cannot open a rados connection: %s\n",
argv[0], strerror(-err));
}
rados_ioctx_t io;
char *poolname = "data";
err = rados_ioctx_create(cluster, poolname, &io);
//<--------------------This line is causing the problem. Why am I not
able to access the pool?
if (err < 0) {
printf("%s: cannot open rados pool %s: %s\n", argv[0],
poolname, strerror(-err));
rados_shutdown(cluster);
}
err = rados_write_full(io, "BITARRAY", "hello", 5);
if (err < 0) {
printf("%s: cannot write pool %s: %s\n", argv[0],
poolname, strerror(-err));
rados_ioctx_destroy(io);
rados_shutdown(cluster);
}
}
To show that the pool "data" exists, here's the output of the command
line rados tool:-
$ rados lspools
data
metadata
rbd
Please help me out.
Thank you.
Regards
Atish
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html