Applied, thanks! s On Tue, 17 Sep 2013, Alexandre Oliva wrote: > On btrfs, kb_used + kb_avail can be much smaller than total kb, and > what really matters to avoid filling up the disk is how much space is > available, not how much we've used. Thus, compute the ratio we use to > determine full or nearfull from kb_avail rather than from kb_used. > > Signed-off-by: Alexandre Oliva <oliva@xxxxxxx> > --- > src/osd/OSD.cc | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc > index 66364ec3..841f1c4 100644 > --- a/src/osd/OSD.cc > +++ b/src/osd/OSD.cc > @@ -2457,7 +2457,12 @@ void OSDService::check_nearfull_warning(const osd_stat_t &osd_stat) > > time_t now = ceph_clock_gettime(NULL); > > - float ratio = ((float)osd_stat.kb_used) / ((float)osd_stat.kb); > + // We base ratio on kb_avail rather than kb_used because they can > + // differ significantly e.g. on btrfs volumes with a large number of > + // chunks reserved for metadata, and for our purposes (avoiding > + // completely filling the disk) it's far more important to know how > + // much space is available to use than how much we've already used. > + float ratio = ((float)(osd_stat.kb - osd_stat.kb_avail)) / ((float)osd_stat.kb); > float nearfull_ratio = get_nearfull_ratio(); > float full_ratio = get_full_ratio(); > cur_ratio = ratio; > > -- > Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ > You must be the change you wish to see in the world. -- Gandhi > Be Free! -- http://FSFLA.org/ FSF Latin America board member > Free Software Evangelist Red Hat Brazil Compiler Engineer > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html