mirror of
https://github.com/ceph/ceph
synced 2025-02-19 08:57:27 +00:00
Mon: show the pool quota info on ceph df detail command
Fixes: #14216 Signed-off-by: song baisen <song.baisen@zte.com.cn>
This commit is contained in:
parent
06cecb4b90
commit
07464701cd
@ -1335,7 +1335,7 @@ inline string percentify(const float& a) {
|
||||
//void PGMonitor::dump_object_stat_sum(stringstream& ss, Formatter *f,
|
||||
void PGMonitor::dump_object_stat_sum(TextTable &tbl, Formatter *f,
|
||||
object_stat_sum_t &sum, uint64_t avail,
|
||||
float raw_used_rate, bool verbose) const
|
||||
float raw_used_rate, bool verbose, const pg_pool_t *pool) const
|
||||
{
|
||||
float curr_object_copies_rate = 0.0;
|
||||
if (sum.num_object_copies > 0)
|
||||
@ -1347,6 +1347,8 @@ void PGMonitor::dump_object_stat_sum(TextTable &tbl, Formatter *f,
|
||||
f->dump_unsigned("max_avail", avail);
|
||||
f->dump_int("objects", sum.num_objects);
|
||||
if (verbose) {
|
||||
f->dump_int("quota_objects", pool->quota_max_objects);
|
||||
f->dump_int("quota_bytes", pool->quota_max_bytes);
|
||||
f->dump_int("dirty", sum.num_objects_dirty);
|
||||
f->dump_int("rd", sum.num_rd);
|
||||
f->dump_int("rd_bytes", sum.num_rd_kb * 1024ull);
|
||||
@ -1414,8 +1416,12 @@ void PGMonitor::dump_pool_stats(stringstream &ss, Formatter *f, bool verbose)
|
||||
} else {
|
||||
tbl.define_column("NAME", TextTable::LEFT, TextTable::LEFT);
|
||||
tbl.define_column("ID", TextTable::LEFT, TextTable::LEFT);
|
||||
if (verbose)
|
||||
if (verbose) {
|
||||
tbl.define_column("CATEGORY", TextTable::LEFT, TextTable::LEFT);
|
||||
tbl.define_column("QUOTA OBJECTS", TextTable::LEFT, TextTable::LEFT);
|
||||
tbl.define_column("QUOTA BYTES", TextTable::LEFT, TextTable::LEFT);
|
||||
}
|
||||
|
||||
tbl.define_column("USED", TextTable::LEFT, TextTable::RIGHT);
|
||||
tbl.define_column("%USED", TextTable::LEFT, TextTable::RIGHT);
|
||||
tbl.define_column("MAX AVAIL", TextTable::LEFT, TextTable::RIGHT);
|
||||
@ -1485,10 +1491,22 @@ void PGMonitor::dump_pool_stats(stringstream &ss, Formatter *f, bool verbose)
|
||||
} else {
|
||||
tbl << pool_name
|
||||
<< pool_id;
|
||||
if (verbose)
|
||||
if (verbose) {
|
||||
tbl << "-";
|
||||
|
||||
if (pool->quota_max_objects == 0)
|
||||
tbl << "N/A";
|
||||
else
|
||||
tbl << si_t(pool->quota_max_objects);
|
||||
|
||||
if (pool->quota_max_bytes == 0)
|
||||
tbl << "N/A";
|
||||
else
|
||||
tbl << si_t(pool->quota_max_bytes);
|
||||
}
|
||||
|
||||
}
|
||||
dump_object_stat_sum(tbl, f, stat.stats.sum, avail, raw_used_rate, verbose);
|
||||
dump_object_stat_sum(tbl, f, stat.stats.sum, avail, raw_used_rate, verbose, pool);
|
||||
if (f)
|
||||
f->close_section(); // stats
|
||||
else
|
||||
|
@ -157,7 +157,7 @@ private:
|
||||
object_stat_sum_t &sum,
|
||||
uint64_t avail,
|
||||
float raw_used_rate,
|
||||
bool verbose) const;
|
||||
bool verbose, const pg_pool_t *pool) const;
|
||||
|
||||
int64_t get_rule_avail(OSDMap& osdmap, int ruleno) const;
|
||||
|
||||
|
@ -79,6 +79,7 @@ check_SCRIPTS += \
|
||||
test/mon/osd-erasure-code-profile.sh \
|
||||
test/mon/mkfs.sh \
|
||||
test/mon/mon-scrub.sh \
|
||||
test/mon/test_pool_quota.sh \
|
||||
test/osd/osd-scrub-repair.sh \
|
||||
test/osd/osd-scrub-snaps.sh \
|
||||
test/osd/osd-config.sh \
|
||||
|
61
src/test/mon/test_pool_quota.sh
Executable file
61
src/test/mon/test_pool_quota.sh
Executable file
@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Generic pool quota test
|
||||
#
|
||||
|
||||
# Includes
|
||||
source ../qa/workunits/ceph-helpers.sh
|
||||
|
||||
function run() {
|
||||
local dir=$1
|
||||
shift
|
||||
|
||||
export CEPH_MON="127.0.0.1:17108"
|
||||
export CEPH_ARGS
|
||||
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
|
||||
CEPH_ARGS+="--mon-host=$CEPH_MON "
|
||||
|
||||
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
|
||||
for func in $funcs ; do
|
||||
$func $dir || return 1
|
||||
done
|
||||
}
|
||||
|
||||
function TEST_pool_quota() {
|
||||
local dir=$1
|
||||
setup $dir || return 1
|
||||
|
||||
run_mon $dir a || return 1
|
||||
run_osd $dir 0 || return 1
|
||||
run_osd $dir 1 || return 1
|
||||
run_osd $dir 2 || return 1
|
||||
|
||||
local poolname=testquoa
|
||||
ceph osd pool create $poolname 20
|
||||
local objects=`ceph df detail | grep -w $poolname|awk '{print $4}'`
|
||||
local bytes=`ceph df detail | grep -w $poolname|awk '{print $5}'`
|
||||
|
||||
echo $objects
|
||||
echo $bytes
|
||||
if [ $objects != 'N/A' ] || [ $bytes != 'N/A' ] ;
|
||||
then
|
||||
return 1
|
||||
fi
|
||||
|
||||
ceph osd pool set-quota $poolname max_objects 1000
|
||||
ceph osd pool set-quota $poolname max_bytes 1024
|
||||
|
||||
objects=`ceph df detail | grep -w $poolname|awk '{print $4}'`
|
||||
bytes=`ceph df detail | grep -w $poolname|awk '{print $5}'`
|
||||
|
||||
if [ $objects != '1000' ] || [ $bytes != '1024' ] ;
|
||||
then
|
||||
return 1
|
||||
fi
|
||||
|
||||
ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it
|
||||
teardown $dir || return 1
|
||||
}
|
||||
|
||||
main testpoolquota
|
Loading…
Reference in New Issue
Block a user