Re: [ceph-users] The project of ceph client file system porting from Linux to AIX

2015-03-05 Thread Dennis Chen
Hello Ketor,

About 1 more years ago, I need a free DFS can be used in AIX
environment as a tiered storage solution for Bank DC, that why the
project.
This project just port the CephFS in Linux kernel to AIX kernel(maybe
RBD in future), so it's a kernel mode AIX cephfs.
But I have multiple projects at hand now, so the AIX cephfs project is
in pending status... It's open, anyone can make changes from this
project if he want.

On Thu, Mar 5, 2015 at 3:11 PM, Ketor D d.ke...@gmail.com wrote:
 Hi Dennis,
   I am interested in your project.
   I wrote a Win32 cephfs client https://github.com/ceph/ceph-dokan.
   But ceph-dokan runs in user-mode. I see you port code from
 kernel cephfs, are you planning to write a kernel mode AIX-cephfs?

 Thanks!


 2015-03-04 17:59 GMT+08:00 Dennis Chen kernel.org@gmail.com:
 Hello,

 The ceph cluster now can only be used by Linux system AFAICT, so I
 planed to port the ceph client file system from Linux to AIX as a
 tiered storage solution in that platform. Below is the source code
 repository I've done, which is still in progress. 3 important modules:

 1. aixker: maintain a uniform kernel API beteween the Linux and AIX
 2. net: as a data transfering layer between the client and cluster
 3. fs: as an adaptor to make the AIX can recognize the Linux file system.

 https://github.com/Dennis-Chen1977/aix-cephfs

 Welcome any comments or anything...

 --
 Den
 --
 To unsubscribe from this list: send the line unsubscribe ceph-devel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Question about notification of OSD down in client side

2015-03-05 Thread Dennis Chen
Hello,

Is there some way to make the client(via RADOS API or something like
that) to get the notification of an event (for example, an OSD down)
happened in the cluster?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Concurrent access of the object via Rados API...

2015-02-16 Thread Dennis Chen
Hello,

For the case of multiple clients(separate process) accessing an object
in the cluster, is the exclusive protection of the shared object
needed for the caller?

Process A::rados::ioctx.write(obj, ...)
Process B::rados::ioctx.write(obj, ...)

or:

Process A::
mylock.lock();
ioctx.write(obj, ..)
mylock.unlock()

Process B::
mylock.lock();
ioctx.write(obj, ..)
mylock.unlock()

which one is correct?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Question about ceph exclusive object?

2015-02-13 Thread Dennis Chen
Hello,

What exactly does the parameter 'bool exclusive' mean in the int
librados::IoCtxImpl::create(const object_t oid, bool exclusive)?

I can't find any doc to describe this :-(

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] How to notify an object watched by client via ceph class API

2015-02-05 Thread Dennis Chen
Hello,

Just as the subject indicated, how can I notify an object watcher
within a class '.so' loaded into osd deamon. I checked the code and
found the below op code defined already:CEPH_OSD_OP_NOTIFY, but this
op code is not used by existing ceph class api, I guest there must be
a simple solution to resolve this if I don't want to make the osd to
play client role the same time.

Anyone can help me out this?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] How to notify an object watched by client via ceph class API

2015-02-05 Thread Dennis Chen
On Thu, Feb 5, 2015 at 4:51 PM, Sage Weil s...@newdream.net wrote:
 On Thu, 5 Feb 2015, Dennis Chen wrote:
 Hello,

 Just as the subject indicated, how can I notify an object watcher
 within a class '.so' loaded into osd deamon. I checked the code and
 found the below op code defined already:CEPH_OSD_OP_NOTIFY, but this
 op code is not used by existing ceph class api, I guest there must be
 a simple solution to resolve this if I don't want to make the osd to
 play client role the same time.

 Anyone can help me out this?


 The watch/notify does not rely on rados classes, e.g.:

 rados -p rbd create foo
 rados -p rbd watch foo 
 rados -p rbd notify foo hello

 The notify is just a normal librados operation, and most of those can be
 called from classes, but it normally blocks for some period until the
 others acknowledge.  If it were wired up in objclass.h you could probably
 initiate the async notify but there would be no way to check whether it
 ever arrived, so I'm not sure it would be useful.

 What are you trying to accomplish?

 sage

What I am trying is to design a signaling control mechanism based on
ceph, so the notify will not be in heavy load(just some event state
needed to report to the client async). Below is the investigation for
this question, initialy the result is good as expected except that the
argement transfering between the client watcher callback function and
the osd class function, the code snippet:

Client side--

void notify_test(uint8_t opcode, uint64_t ver, void *arg)
{
char *str = (char *)arg;
printf(get notify:%s\n, str);
}

int main(...)
{
   ...
   strcpy(arg, notify: from client);
   err = rados_watch(io, objname, 0, handle, notify_test, arg);
   err = rados_exec(io, objname, devctl, devctl_op, in,
strlen(in), out, 128);
   ...
}

OSD side (in the ceph class)--
int test_class_ext(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
{
int ret;

CLS_LOG(0, +test_class_ext);
in-append(input data);
out-append(output data);
ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
vectorOSDOp ops(1);
ops[0].op.op = CEPH_OSD_OP_NOTIFY;
ops[0].indata = *in;
ops[0].outdata = *out;
ret = (*pctx)-pg-do_osd_ops(*pctx, ops);
in-claim(ops[0].indata);
out-claim(ops[0].outdata);
CLS_LOG(0, ret = %d, ret);

return 0;
}

static int devctl_op(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
{
   ...
   test_class_ext(hctx, in, out);
   return 0;
}


The output in the client:
get notify:notify: from client


I can't pass the parameters to the client watcher currently :( , any hints?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] How to notify an object watched by client via ceph class API

2015-02-05 Thread Dennis Chen
On Thu, Feb 5, 2015 at 6:26 PM, Sage Weil s...@newdream.net wrote:
 On Thu, 5 Feb 2015, Dennis Chen wrote:
 On Thu, Feb 5, 2015 at 4:51 PM, Sage Weil s...@newdream.net wrote:
  On Thu, 5 Feb 2015, Dennis Chen wrote:
  Hello,
 
  Just as the subject indicated, how can I notify an object watcher
  within a class '.so' loaded into osd deamon. I checked the code and
  found the below op code defined already:CEPH_OSD_OP_NOTIFY, but this
  op code is not used by existing ceph class api, I guest there must be
  a simple solution to resolve this if I don't want to make the osd to
  play client role the same time.
 
  Anyone can help me out this?
 
 
  The watch/notify does not rely on rados classes, e.g.:
 
  rados -p rbd create foo
  rados -p rbd watch foo 
  rados -p rbd notify foo hello
 
  The notify is just a normal librados operation, and most of those can be
  called from classes, but it normally blocks for some period until the
  others acknowledge.  If it were wired up in objclass.h you could probably
  initiate the async notify but there would be no way to check whether it
  ever arrived, so I'm not sure it would be useful.
 
  What are you trying to accomplish?
 
  sage

 What I am trying is to design a signaling control mechanism based on
 ceph, so the notify will not be in heavy load(just some event state
 needed to report to the client async). Below is the investigation for
 this question, initialy the result is good as expected except that the
 argement transfering between the client watcher callback function and
 the osd class function, the code snippet:

 Client side--

 void notify_test(uint8_t opcode, uint64_t ver, void *arg)
 {
 char *str = (char *)arg;
 printf(get notify:%s\n, str);

 You are using the v1 watch/notify API.  If you look at master you'll see
 there is a new watch2 operation that gets more useful arguments, like the
 data payload.  (Actually v1 has the data payload too, but I forget where
 it appears.  You should still probably target v2 though!)

I am working on the 0.87 downloaded from the ceph.com, I guest it's OK
for this version since it
has the void *arg.

 }

 int main(...)
 {
...
strcpy(arg, notify: from client);
err = rados_watch(io, objname, 0, handle, notify_test, arg);
err = rados_exec(io, objname, devctl, devctl_op, in,
 strlen(in), out, 128);
...
 }

 OSD side (in the ceph class)--
 int test_class_ext(cls_method_context_t hctx, bufferlist *in, bufferlist 
 *out)
 {
 int ret;

 CLS_LOG(0, +test_class_ext);
 in-append(input data);
 out-append(output data);

 Note that out content is discarded.  Also, you will never get it, since
 you aren't blocking (and can't inside a class) and won't wait for a reply.
 The input data string should get fed to your notify callback on the
 client, though!

 ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
 vectorOSDOp ops(1);
 ops[0].op.op = CEPH_OSD_OP_NOTIFY;
 ops[0].indata = *in;
 ops[0].outdata = *out;

 can just leave outdata NULL.

 ret = (*pctx)-pg-do_osd_ops(*pctx, ops);
 in-claim(ops[0].indata);

 This isn't needed, and might be eating your notify payload?

 out-claim(ops[0].outdata);

 not needed

I updated the code according to your suggestion, but still can't pass
any data from this function to the notify callback in the client via
the *arg pointer, that's the problem now. Any one can help about this?


 sage

 CLS_LOG(0, ret = %d, ret);

 return 0;
 }

 static int devctl_op(cls_method_context_t hctx, bufferlist *in, bufferlist 
 *out)
 {
...
test_class_ext(hctx, in, out);
return 0;
 }


 The output in the client:
 get notify:notify: from client


 I can't pass the parameters to the client watcher currently :( , any hints?

 --
 Den
 --
 To unsubscribe from this list: send the line unsubscribe ceph-devel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html





-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Question about output message and object update for ceph class

2015-02-04 Thread Dennis Chen
Hello,

I write a ceph client using rados lib to execute a funcution upon the object.

CLIENT SIDE CODE
===
int main()
{
  ...
strcpy(in, from client);
err = rados_exec(io, objname, devctl, devctl_op, in,
strlen(in), out, 128);
if (err  0) {
fprintf(stderr, rados_exec() failed: %s\n, strerror(-err));
rados_ioctx_destroy(io);
rados_shutdown(cluster);
exit(1);
}
out[err] = '\0';
printf(err = %d, exec result out = %s, in = %s\n, err, out, in);
  ...
}

CLASS CODE IN OSD SIDE
==
static int devctl_op(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
{
  ...

  i = cls_cxx_stat(hctx, size, NULL);
  if (i  0)
return i;

  bufferlist read_bl, write_bl;
  i = cls_cxx_read(hctx, 0, size, read_bl);
  if (i  0) {
CLS_ERR(cls_cxx_read failed);
return i;
  }


  // we generate our reply
  out-append(Hello, );
  if (in-length() == 0)
out-append(world);
  else
out-append(*in);
  out-append(!);

#if 1
  const char *tstr = from devctl func;
  write_bl.append(tstr);
  i = cls_cxx_write(hctx, size, write_bl.length(), write_bl);
  if (i  0) {
CLS_ERR(cls_cxx_write failed: %s, strerror(-i));
return i;
  }
#endif

  // this return value will be returned back to the librados caller
  return 0;
}

I found that if I update the content of the object when calling
cls_cxx_write(), then the 'out' will be null in the client side,
otherwise the out will be Hello, from client!.

Does anybody here can give some hints?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Question about output message and object update for ceph class

2015-02-04 Thread Dennis Chen
I take back the question, because I just found that for a succeed
write opetion in the class, *no* data in the out buffer...

On Wed, Feb 4, 2015 at 5:44 PM, Dennis Chen kernel.org@gmail.com wrote:
 Hello,

 I write a ceph client using rados lib to execute a funcution upon the object.

 CLIENT SIDE CODE
 ===
 int main()
 {
   ...
 strcpy(in, from client);
 err = rados_exec(io, objname, devctl, devctl_op, in,
 strlen(in), out, 128);
 if (err  0) {
 fprintf(stderr, rados_exec() failed: %s\n, strerror(-err));
 rados_ioctx_destroy(io);
 rados_shutdown(cluster);
 exit(1);
 }
 out[err] = '\0';
 printf(err = %d, exec result out = %s, in = %s\n, err, out, in);
   ...
 }

 CLASS CODE IN OSD SIDE
 ==
 static int devctl_op(cls_method_context_t hctx, bufferlist *in, bufferlist 
 *out)
 {
   ...

   i = cls_cxx_stat(hctx, size, NULL);
   if (i  0)
 return i;

   bufferlist read_bl, write_bl;
   i = cls_cxx_read(hctx, 0, size, read_bl);
   if (i  0) {
 CLS_ERR(cls_cxx_read failed);
 return i;
   }


   // we generate our reply
   out-append(Hello, );
   if (in-length() == 0)
 out-append(world);
   else
 out-append(*in);
   out-append(!);

 #if 1
   const char *tstr = from devctl func;
   write_bl.append(tstr);
   i = cls_cxx_write(hctx, size, write_bl.length(), write_bl);
   if (i  0) {
 CLS_ERR(cls_cxx_write failed: %s, strerror(-i));
 return i;
   }
 #endif

   // this return value will be returned back to the librados caller
   return 0;
 }

 I found that if I update the content of the object when calling
 cls_cxx_write(), then the 'out' will be null in the client side,
 otherwise the out will be Hello, from client!.

 Does anybody here can give some hints?

 --
 Den



-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Question about primary OSD of a pool

2015-02-02 Thread Dennis Chen
Hello Sudarshan,

Thanks, it should be useful when I want to appoint the specific OSD as
primary ;-)

On Mon, Feb 2, 2015 at 3:50 PM, Sudarshan Pathak sushan@gmail.com wrote:
 Hello Dennis,

 You can create CRUSH rule to select one of osd as primary as:

  rule ssd-primary {
   ruleset 5
   type replicated
   min_size 5
   max_size 10
   step take ssd
   step chooseleaf firstn 1 type host
   step emit
   step take platter
   step chooseleaf firstn -1 type host
   step emit
   }

 Above will select a OSD from ssd bucket as Primary and all secondary OSD
 from bucket platter.

 You can find more details about CRUSH map at
 http://ceph.com/docs/master/rados/operations/crush-map/ .


 Regards,
 Sudarshan

 On Mon, Feb 2, 2015 at 12:12 PM, Dennis Chen kernel.org@gmail.com
 wrote:

 Hi Sudarshan,

 Some hints for doing that ?

 On Mon, Feb 2, 2015 at 1:03 PM, Sudarshan Pathak sushan@gmail.com
 wrote:
  BTW, you can make crush to always choose the same OSD as primary.
 
  Regards,
  Sudarshan
 
  On Mon, Feb 2, 2015 at 9:26 AM, Dennis Chen kernel.org@gmail.com
  wrote:
 
  Thanks, I've have the answer with the 'ceph osd map ...' command
 
  On Mon, Feb 2, 2015 at 12:50 AM, Jean-Charles Lopez
  jelo...@redhat.com
  wrote:
   Hi
  
   You can verify the exact mapping using the following command: ceph
   osd
   map {poolname} {objectname}
  
   Check page http://docs.ceph.com/docs/master/man/8/ceph for the ceph
   command.
  
   Cheers
  
   JC
  
   While moving. Excuse unintended typos.
  
   On Feb 1, 2015, at 08:04, Loic Dachary l...@dachary.org wrote:
  
  
  
   On 01/02/2015 14:47, Dennis Chen wrote:
   Hello,
  
   If I write 2 different objects, eg, john and paul respectively
   to
   a same pool like testpool in the cluster, is the primary OSD
   calculated by CRUSH for the 2 objects the same?
  
   Hi,
  
   CRUSH is likely to place john on an OSD and paul on another OSD.
  
   Cheers
  
   --
   Loïc Dachary, Artisan Logiciel Libre
  
   ___
   ceph-users mailing list
   ceph-users@lists.ceph.com
   http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
   ___
   ceph-users mailing list
   ceph-users@lists.ceph.com
   http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
 
 
 
  --
  Den
  ___
  ceph-users mailing list
  ceph-users@lists.ceph.com
  http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
 
 



 --
 Den





-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Question about primary OSD of a pool

2015-02-01 Thread Dennis Chen
Hello,

If I write 2 different objects, eg, john and paul respectively to
a same pool like testpool in the cluster, is the primary OSD
calculated by CRUSH for the 2 objects the same?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Question about primary OSD of a pool

2015-02-01 Thread Dennis Chen
On Mon, Feb 2, 2015 at 12:04 AM, Loic Dachary l...@dachary.org wrote:


 On 01/02/2015 14:47, Dennis Chen wrote:
 Hello,

 If I write 2 different objects, eg, john and paul respectively to
 a same pool like testpool in the cluster, is the primary OSD
 calculated by CRUSH for the 2 objects the same?

 Hi,

 CRUSH is likely to place john on an OSD and paul on another OSD.

 Cheers

 --
 Loïc Dachary, Artisan Logiciel Libre


Thank Loic, correct! I have no cluster to access at hand to do the
test when I asked the question :)


-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Question about primary OSD of a pool

2015-02-01 Thread Dennis Chen
Thanks, I've have the answer with the 'ceph osd map ...' command

On Mon, Feb 2, 2015 at 12:50 AM, Jean-Charles Lopez jelo...@redhat.com wrote:
 Hi

 You can verify the exact mapping using the following command: ceph osd map 
 {poolname} {objectname}

 Check page http://docs.ceph.com/docs/master/man/8/ceph for the ceph command.

 Cheers

 JC

 While moving. Excuse unintended typos.

 On Feb 1, 2015, at 08:04, Loic Dachary l...@dachary.org wrote:



 On 01/02/2015 14:47, Dennis Chen wrote:
 Hello,

 If I write 2 different objects, eg, john and paul respectively to
 a same pool like testpool in the cluster, is the primary OSD
 calculated by CRUSH for the 2 objects the same?

 Hi,

 CRUSH is likely to place john on an OSD and paul on another OSD.

 Cheers

 --
 Loïc Dachary, Artisan Logiciel Libre

 ___
 ceph-users mailing list
 ceph-users@lists.ceph.com
 http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
 ___
 ceph-users mailing list
 ceph-users@lists.ceph.com
 http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Question about primary OSD of a pool

2015-02-01 Thread Dennis Chen
Hi Sudarshan,

Some hints for doing that ?

On Mon, Feb 2, 2015 at 1:03 PM, Sudarshan Pathak sushan@gmail.com wrote:
 BTW, you can make crush to always choose the same OSD as primary.

 Regards,
 Sudarshan

 On Mon, Feb 2, 2015 at 9:26 AM, Dennis Chen kernel.org@gmail.com
 wrote:

 Thanks, I've have the answer with the 'ceph osd map ...' command

 On Mon, Feb 2, 2015 at 12:50 AM, Jean-Charles Lopez jelo...@redhat.com
 wrote:
  Hi
 
  You can verify the exact mapping using the following command: ceph osd
  map {poolname} {objectname}
 
  Check page http://docs.ceph.com/docs/master/man/8/ceph for the ceph
  command.
 
  Cheers
 
  JC
 
  While moving. Excuse unintended typos.
 
  On Feb 1, 2015, at 08:04, Loic Dachary l...@dachary.org wrote:
 
 
 
  On 01/02/2015 14:47, Dennis Chen wrote:
  Hello,
 
  If I write 2 different objects, eg, john and paul respectively to
  a same pool like testpool in the cluster, is the primary OSD
  calculated by CRUSH for the 2 objects the same?
 
  Hi,
 
  CRUSH is likely to place john on an OSD and paul on another OSD.
 
  Cheers
 
  --
  Loïc Dachary, Artisan Logiciel Libre
 
  ___
  ceph-users mailing list
  ceph-users@lists.ceph.com
  http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
  ___
  ceph-users mailing list
  ceph-users@lists.ceph.com
  http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



 --
 Den
 ___
 ceph-users mailing list
 ceph-users@lists.ceph.com
 http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com





-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Question about ceph class usage

2015-01-29 Thread Dennis Chen
Hello,

I found the document of ceph class usage is very few, below is the
only one which can almost address my needs--
http://ceph.com/rados/dynamic-object-interfaces-with-lua/

But still some questions confusing me left there:

1. How to make the OSD to load the class lib? or what's the process
for an OSD deamon to load a customized class lib?
I checked my OSD log file(/var/log/ceph/ceph-osd.2.log), I can't find
the log message loading cls_hello, does that mean the hello class
lib hasn't been loaded by the osd deamon yet? But I can see the
'libcls_hello.so' is really under /usr/lib64/rados-classes folder of
that OSD.

2. Suppose I have an object named testobj stored into OSD0 and OSD1,
what will happen if I call the rados_exec(..., testobj, hello,
say_hello,...) in client side? Will the say_hello() function be
called twice in OSD0 and OSD1 respectively?

-- 
Den
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] rbd command error librbd::ImageCtx: error finding header

2013-04-23 Thread Dennis Chen

Hi list,

I am using a ceph cluster (version 0.56.4) with all nodes (mon, mds, 
osd...) deployed in the RHEL 6 distro, the client is based on Ubuntu 12.10.
Now I am confused by a strange issue, seems the issue has been asked 
before by google but no a clear answer for it. The specific details as 
below--

in the client side, I want to create a rbd image, so I run the commands:

root@~# ceph osd pool create mypool 100 100
pool 'mypool' created

root@~# rbd ls -p mypool
odm-kvm-img

root@~# rbd --image odm-kvm-img info
rbd: error opening image 2013-04-24 10:43:42.800917 7fdb47d76780 -1 
librbd::ImageCtx: error finding header: (2) No such file or 
directoryodm-kvm-img:

(2) No such file or directory

So I tried those steps followed according the goolged:

root@~# rados ls -p mypool
odm-kvm-img.rbd
rbd_directory
root@~# rbd info odm-kvm-img.rbd
rbd: error opening image 2013-04-24 10:54:19.468770 7f8332dea780 -1 
librbd::ImageCtx: error finding header: (2) No such file or directory

odm-kvm-img.rbd: (2) No such file or directory

odm-kvm-img.rbd is showed by 'rados ls' command and it's there, but why 
I get an error when run the 'rbd info' command upon odm-kvm-img.rbd? 
does anybody can be help about this?


BRs,
Dennis
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] rbd command error librbd::ImageCtx: error finding header

2013-04-23 Thread Dennis Chen

Hi,

A different error msg after your suggestion --

root@~# rbd -p mypool --image odm-kvm-img info
rbd: error opening image odm-kvm-img: (95) Operation not supported
2013-04-24 11:32:47.757778 7f49949f7780 -1 librbd: Error listing snapshots: 
(95) Operation not supported

I create the odm-kvm-img with this command:
root@~# rbd create odm-kvm-img --size 10240 --pool mypool

BRs,
Dennis

On 04/24/2013 11:28 AM, Chris Hoy Poy wrote:

Hi,

try

# rbd -p mypool --image odm-kvm-img info

cheers
//Chris

- Original Message -
From: Dennis Chen xsc...@tnsoft.com.cn
To: ceph-us...@ceph.com, Dennis Chen xsc...@tnsoft.com.cn
Sent: Wednesday, 24 April, 2013 11:24:30 AM
Subject: [ceph-users] rbd command error librbd::ImageCtx: error finding   
header

Hi list,

I am using a ceph cluster (version 0.56.4) with all nodes (mon, mds,
osd...) deployed in the RHEL 6 distro, the client is based on Ubuntu 12.10.
Now I am confused by a strange issue, seems the issue has been asked
before by google but no a clear answer for it. The specific details as
below--
in the client side, I want to create a rbd image, so I run the commands:

root@~# ceph osd pool create mypool 100 100
pool 'mypool' created

root@~# rbd ls -p mypool
odm-kvm-img

root@~# rbd --image odm-kvm-img info
rbd: error opening image 2013-04-24 10:43:42.800917 7fdb47d76780 -1
librbd::ImageCtx: error finding header: (2) No such file or
directoryodm-kvm-img:
(2) No such file or directory

So I tried those steps followed according the goolged:

root@~# rados ls -p mypool
odm-kvm-img.rbd
rbd_directory
root@~# rbd info odm-kvm-img.rbd
rbd: error opening image 2013-04-24 10:54:19.468770 7f8332dea780 -1
librbd::ImageCtx: error finding header: (2) No such file or directory
odm-kvm-img.rbd: (2) No such file or directory

odm-kvm-img.rbd is showed by 'rados ls' command and it's there, but why
I get an error when run the 'rbd info' command upon odm-kvm-img.rbd?
does anybody can be help about this?

BRs,
Dennis
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] rbd command error librbd::ImageCtx: error finding header

2013-04-23 Thread Dennis Chen

specify the -p mypool will create another error msg looks like:
root@~# rbd --image odm-kvm-img -p mypool info
2013-04-24 10:44:29.442715 7f8d9134b780 -1 rbd: error opening image 
librbd: Error listing snapshots: (95) Operation not supportedodm-kvm-img

: (95) Operation not supported

BRs,
Dennis

On 04/24/2013 11:29 AM, Michael Lowe wrote:

My initial reaction is that you should use -p pool because rbd defaults to 
the rbd pool.  You are in effect trying to get info about mypool/odm-kvm-img from 
rbd/odm-kvm-img which doesn't exist.

Sent from my iPad

On Apr 23, 2013, at 11:24 PM, Dennis Chen xsc...@tnsoft.com.cn wrote:


Hi list,

I am using a ceph cluster (version 0.56.4) with all nodes (mon, mds, osd...) 
deployed in the RHEL 6 distro, the client is based on Ubuntu 12.10.
Now I am confused by a strange issue, seems the issue has been asked before by 
google but no a clear answer for it. The specific details as below--
in the client side, I want to create a rbd image, so I run the commands:

root@~# ceph osd pool create mypool 100 100
pool 'mypool' created

root@~# rbd ls -p mypool
odm-kvm-img

root@~# rbd --image odm-kvm-img info
rbd: error opening image 2013-04-24 10:43:42.800917 7fdb47d76780 -1 
librbd::ImageCtx: error finding header: (2) No such file or 
directoryodm-kvm-img:
(2) No such file or directory

So I tried those steps followed according the goolged:

root@~# rados ls -p mypool
odm-kvm-img.rbd
rbd_directory
root@~# rbd info odm-kvm-img.rbd
rbd: error opening image 2013-04-24 10:54:19.468770 7f8332dea780 -1 
librbd::ImageCtx: error finding header: (2) No such file or directory
odm-kvm-img.rbd: (2) No such file or directory

odm-kvm-img.rbd is showed by 'rados ls' command and it's there, but why I get 
an error when run the 'rbd info' command upon odm-kvm-img.rbd? does anybody can 
be help about this?

BRs,
Dennis
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com