All of lore.kernel.org
 help / color / mirror / Atom feed
* Finding out via librados if a cluster is near full
@ 2013-05-29  8:14 Wido den Hollander
  2013-05-29  8:24 ` Wido den Hollander
  0 siblings, 1 reply; 3+ messages in thread
From: Wido den Hollander @ 2013-05-29  8:14 UTC (permalink / raw)
  To: ceph-devel@vger.kernel.org

Hi,

Is there a way to find out if a cluster is near full via librados?

The reason I'm asking is that I'm working on a deployment of the RADOS 
Gateway and one of the potential problems I see is that the RADOS 
Gateway can keep writing and filling up the whole cluster.

It's obvious that it's the admin's responsibility to make sure that 
doesn't happen, but what I'd like to do is make the RADOS Gateway deny 
PUT requests when the cluster is near full.

That way normal meta data operations (thus writes) can continue, but new 
objects won't be accepted until the cluster has enough space available.

This might also be useful for librbd. Refuse the creation of new RBD 
images so that existing images can continue operating.

-- 
Wido den Hollander
42on B.V.

Phone: +31 (0)20 700 9902
Skype: contact42on

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Finding out via librados if a cluster is near full
  2013-05-29  8:14 Finding out via librados if a cluster is near full Wido den Hollander
@ 2013-05-29  8:24 ` Wido den Hollander
  2013-05-31 22:18   ` Dan Mick
  0 siblings, 1 reply; 3+ messages in thread
From: Wido den Hollander @ 2013-05-29  8:24 UTC (permalink / raw)
  To: ceph-devel@vger.kernel.org

On 05/29/2013 10:14 AM, Wido den Hollander wrote:
> Hi,
>
> Is there a way to find out if a cluster is near full via librados?
>

Yes, there is. (Thanks tnt on IRC!)

There is ofcourse rados_cluster_stat which will give you:

struct rados_cluster_stat_t {
   uint64_t kb, kb_used, kb_avail;
   uint64_t num_objects;
};


One thing here is however that you don't know to what the (near)full 
ratio has been set to. So you have to do your own guessing.

> The reason I'm asking is that I'm working on a deployment of the RADOS
> Gateway and one of the potential problems I see is that the RADOS
> Gateway can keep writing and filling up the whole cluster.
>

So, with the cluster stat information we could implement:

rgw_refuse_write_above_ratio DOUBLE 0.90

> It's obvious that it's the admin's responsibility to make sure that
> doesn't happen, but what I'd like to do is make the RADOS Gateway deny
> PUT requests when the cluster is near full.
>
> That way normal meta data operations (thus writes) can continue, but new
> objects won't be accepted until the cluster has enough space available.
>
> This might also be useful for librbd. Refuse the creation of new RBD
> images so that existing images can continue operating.
>


-- 
Wido den Hollander
42on B.V.

Phone: +31 (0)20 700 9902
Skype: contact42on

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Finding out via librados if a cluster is near full
  2013-05-29  8:24 ` Wido den Hollander
@ 2013-05-31 22:18   ` Dan Mick
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Mick @ 2013-05-31 22:18 UTC (permalink / raw)
  To: Wido den Hollander; +Cc: ceph-devel@vger.kernel.org



On 05/29/2013 01:24 AM, Wido den Hollander wrote:
> On 05/29/2013 10:14 AM, Wido den Hollander wrote:
>> Hi,
>>
>> Is there a way to find out if a cluster is near full via librados?
>>
>
> Yes, there is. (Thanks tnt on IRC!)
>
> There is ofcourse rados_cluster_stat which will give you:
>
> struct rados_cluster_stat_t {
>    uint64_t kb, kb_used, kb_avail;
>    uint64_t num_objects;
> };
>
>
> One thing here is however that you don't know to what the (near)full
> ratio has been set to. So you have to do your own guessing.

Aside: Soon there will be a librados interface for issuing commands like
ceph pg dump and getting the response (in JSON if desired), if that's
going to be helpful.

>
>> The reason I'm asking is that I'm working on a deployment of the RADOS
>> Gateway and one of the potential problems I see is that the RADOS
>> Gateway can keep writing and filling up the whole cluster.
>>
>
> So, with the cluster stat information we could implement:
>
> rgw_refuse_write_above_ratio DOUBLE 0.90
>
>> It's obvious that it's the admin's responsibility to make sure that
>> doesn't happen, but what I'd like to do is make the RADOS Gateway deny
>> PUT requests when the cluster is near full.
>>
>> That way normal meta data operations (thus writes) can continue, but new
>> objects won't be accepted until the cluster has enough space available.
>>
>> This might also be useful for librbd. Refuse the creation of new RBD
>> images so that existing images can continue operating.
>>
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-05-31 22:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-29  8:14 Finding out via librados if a cluster is near full Wido den Hollander
2013-05-29  8:24 ` Wido den Hollander
2013-05-31 22:18   ` Dan Mick

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.