Adds an exclusive stage for obtaining projected usage as well as an
unordered one for submitting ool writes. This should allow for a
straightforward wait-list when io is blocked while still allowing
concurrent submission of ool writes otherwise.
Fixes: https://tracker.ceph.com/issues/52698
Signed-off-by: Samuel Just <sjust@redhat.com>
We're going to want to permit multiple transactions to be writing
concurrently. Replace await_hard_limits() with a mechanism that
remembers bytes that will be used by in-progress operations.
Signed-off-by: Samuel Just <sjust@redhat.com>
Agent was not getting removed from hosts with _no_schedule label
since it was using all hosts rather than _schedulable hosts. Added
a _non_draining hosts function to return a prope list of hosts agent
is okay to schedule on.
Was stuck between using a daemon to report which daemons are on the
host and wanting to remove all the daemons on the host when draining.
Now using ssh to confirm all the daemons have left the host.
Signed-off-by: Adam King <adking@redhat.com>
* refs/pull/43177/head:
osd/PrimaryLogPG: drop ops when pool has EIO flag
osdc/Objecter: set SUPPORTSPOOLEIO flag on all ops
ceph_test_rados_api_aio: test pool EIO flag
osdc/Objecter: return EIO for new linger ops
osdc/Objecter: return EIO for existing ops and linger ops
osdc/Objecter: return EIO for new ops
osd,mon: add EIO pool flag
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
otherwise we could have failures like
scrub : stat mismatch, got 3/4 objects, 1/2 clones, 3/4 dirty, 3/4 omap, 0/0 pinned, 0/0 hit_set_archive, 0/0 whiteouts, 49/56 bytes, 0/0 manifest objects, 0/0 hit_set_archive bytes."
where the numbers of scrubbed object, clones, dirty and omap are always
less than the total number of corresponding numbers, if the PG contains
object(s) whose hash happens to be 0xffffffff.
in this change, if the calculated hash of the upper bound is greater
than the maximum possible number represented by uint32_t, in addition to
setting the hash of the upper bound hobj to 0xffffffff, we also set the
nspace of hobj of the upper bound to "\xff", so that the upper bound
is greater than an hobj whose hash happens to be 0xfffffff. please note,
the nspace of "\xff" is not an ascii string, so it's not likely to be
less than a real-world nspace of an hobj.
with this new *greater* upper bound, we are able to include the previous
missing hobj when listing the objects in a PG. so the scrub won't be
annoyed when the number of objects does not match.
Fixes: https://tracker.ceph.com/issues/52705
Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
* The number of ool records written;
* Write overhead from journal/ool records;
* Wasted writes from invalided ool records;
* Wasted writes from erased inline extents;
* Distinguish ool and inline extents from metrics;
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
PR #17744 allows eio for _do_read in bluestore, but didn't leave it as
an option. Since we can choose to fail for filestore on eio, maybe bluestore
can also have an option.
Signed-off-by: haoyixing <haoyixing@kuaishou.com>
Iscsi gateways do not show "UP" in dashboard without this
fixes: https://tracker.ceph.com/issues/52692
Signed-off-by: Daniel Pivonka <dpivonka@redhat.com>
This commit changes the rgw daemon service name format from
rgw.<realm name>.<zone name> to rgw.<resource_name> and changes the daemon
removal in the QA accordingly. This also gets rid of the Rook API when
describing services.
Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
This commit takes care of the edge case where a completely empty
placement spec is passed to the function.
Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
This commit changes orch rm to no longer use the rook api to delete the daemon
but instead directly delete the corresponding CR using the kubernetes api.
Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
This commit fixes the issue where the cluster deletion hangs in the QA
while a CephObjectStore CR is still up by removing all rgw/nfs/mds/rbd-mirror
daemons before tearing down the rest of the cluster.
Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
This commit changes `orch apply rgw` to use the osd_pool_default_size
when setting the replication size for the data pool and metadata pool
of the rgw daemon. This commit also adds `orch apply rgw` to the Rook
QA.
Signed-off-by: Joseph Sawaya <jsawaya@redhat.com>
the current test is wrong because it generates the tcmu-runner part two
times.
given the function `deploy_daemon_units()` in cephadm already writes a
first time the tcmu-runner command, calling a second time
`get_tcmu_runner_container()` from the test makes `deploy_daemon_units()`
write the same command again.
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
In check_pg_num function, finding the corresponding osd according to the
current pool's crush rule, and calculating whether the average value of
pg_num on these osd will exceed the value of 'mon_max_pg_per_osd'. Make
the pg_num check more accurate by counting all the pgs on the osd used
by the new pool.
Fixes: https://tracker.ceph.com/issues/47062
Signed-off-by: Jerry Luo <luojierui@chinatelecom.cn>
mgr/dashboard: make modified API endpoints backward compatible
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
tcmu-runner logs in `/var/log/tcmu-runner.log`, there's no option to
make it log to stdout/stderr so the log is only available from the
container.
Modifying the bindmount from `-v /var/log/ceph/<fsid>/:/var/log/rbd-target-api:z`
to `-v /var/log/ceph/<fsid>/:/var/log:z` makes it at least available
from the host.
Fixes: https://tracker.ceph.com/issues/47480
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>