New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

luminous: mon, osd: per pool space-full flag support #17730

Merged
merged 2 commits into from Oct 19, 2017

Conversation

Projects
None yet
2 participants
@xiexingguo
Member

xiexingguo commented Sep 14, 2017

The newly introduced 'device-class' can be used to separate
different type of devices into different pools, e.g, hdd-pool
for backup data and all-flash-pool for DB applications.

However, if any osd of the cluster is currently running out
of space (exceeding the predefined 'full' threshold), Ceph
will mark the whole cluster as full and prevent writes to all pools,
which turns out to be very wrong.

This patch instead makes the space 'full' control at pool granularity,
which exactly leverages the pool quota logic but shall solve
the above problem.

Signed-off-by: xie xingguo xie.xingguo@zte.com.cn
(cherry picked from commit b4ca5ae)

Conflicts:
slight confilicts in src/osd/OSDMap.h because
e716267 removes get_full_osd_util().

xiexingguo added some commits Aug 28, 2017

mon, osd: per pool space-full flag support
The newly introduced 'device-class' can be used to separate
different type of devices into different pools, e.g, hdd-pool
for backup data and all-flash-pool for DB applications.

However, if any osd of the cluster is currently running out
of space (exceeding the predefined 'full' threshold), Ceph
will mark the whole cluster as full and prevent writes to all pools,
which turns out to be very wrong.

This patch instead makes the space 'full' control at pool granularity,
which exactly leverages the pool quota logic but shall solve
the above problem.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit b4ca5ae)

Conflicts:
slight confilicts in src/osd/OSDMap.h because
e716267 removed get_full_osd_util().
qa: fix pool-quota related tests
#17371 introduces support of
per-pool space-full flag, which turns out to set both
full and full_no_quota flags now if a pool is currently running out
of quota.

Actually this test is fragile as long as we keep appending new flags
at pool granularity, but let's not bother with that complexity now.

Fixes: http://tracker.ceph.com/issues/21409
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 5dd3458)

@liewegas liewegas merged commit 17c6f35 into ceph:luminous Oct 19, 2017

4 checks passed

Docs: build check OK - docs built
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details

@xiexingguo xiexingguo deleted the xiexingguo:wip-pr-17371 branch Oct 20, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment