Commit Graph

764 Commits

Author SHA1 Message Date
Dimitri Savineau
96d84acf5a ceph-volume: support no_systemd with lvm migrate
The `ceph-volume lvm migrate/new-db/new-wal` commands don't support
running on non systemd systems or within containers.
Like other ceph-volume commands (lvm activate/batch/zap or raw activate)
we also need to be able to use the --no-systemd flag.

Fixes: https://tracker.ceph.com/issues/51854

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-09-03 12:53:03 -04:00
Daniel Gryniewicz
9c213a0d08
Merge pull request #42948 from llamerada-jp/fix-radosgw-admin-document
rgw: fix document

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2021-09-01 08:40:04 -04:00
Ushitora Anqou
0800567d83 rgw: fix document
add the description of --show-config option in radosgw-admin

Signed-off-by: Ushitora Anqou <ushitora@anqou.net>
2021-08-27 07:44:43 +00:00
Mykola Golub
8ecae46345 doc: add crushdiff(8) man page
Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
2021-08-24 11:09:08 +03:00
Stephan Müller
0c8cb21d5e
Merge pull request #41380 from Devp00l/wip-rgw-multisite-doc
doc: Improve RGW multisite documentation

Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Alex Settle <asettle@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-08-23 15:52:57 +02:00
J. Eric Ivancich
8e975ba9fd doc: clarify use of rados rm command
The man page did not make it clear that multiple objects could be
specified, nor did it describe use of "--force-full".

Info displayed about "rm" with `rados --help` was poorly formatted and
the wording was adjusted.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2021-08-16 18:28:07 -04:00
Gabriel BenHanokh
272160ab5e [BlueStore]: [Remove Allocations from RocksDB]
Currently BlueStore keeps its allocation info inside RocksDB.
BlueStore is committing all allocation information (alloc/release) into RocksDB (column-family B) before the client Write is performed causing a delay in write path and adding significant load to the CPU/Memory/Disk.
Committing all state into RocksDB allows Ceph to survive failures without losing the allocation state.

The new code skips the RocksDB updates on allocation time and instead perform a full desatge of the allocator object with all the OSD allocation state in a single step during umount().
This results with an 25% increase in IOPS and reduced latency in small random-write workloads, but exposes the system to losing allocation info in failure cases where we don't call umount.
We added code to perform a full allocation-map rebuild from information stored inside the ONode which is used in failure cases.
When we perform a graceful shutdown there is no need for recovery and we simply read the allocation-map from a flat file where the allocation-map was stored during umount() (in fact this mode is faster and shaves few seconds from boot time since reading a flat file is faster than iterating over RocksDB)

Open Issues:

There is a bug in the src/stop.sh script killing ceph without invoking umount() which means anyone using it will always invoke the recovery path.
Adam Kupczyk is fixing this issue in a separate PR.
A simple workaround is to add a call to 'killall -15 ceph-osd' before calling src/stop.sh

Fast-Shutdown and Ceph Suicide (done when the system underperforms) stop the system without a proper drain and a call to umount.
This will trigger a full recovery which can be long( 3 minutes in my testing, but your your mileage may vary).
We plan on adding a follow up PR doing the following in Fast-Shutdown and Ceph Suicide:

Block the OSD queues from accepting any new request
Delete all items in queue which we didn't start yet
Drain all in-flight tasks
call umount (and destage the allocation-map)
If drain didn't complete within a predefined time-limit (say 3 minutes) -> kill the OSD
Signed-off-by: Gabriel Benhanokh <gbenhano@redhat.com>

create allocator from on-disk onodes and BlueFS inodes
change allocator + add stat counters + report illegal physical-extents
compare allocator after rebuild from ONodes
prevent collection from being open twice
removed FSCK repo check for null-fm
Bug-Fix: don't add BlueFS allocation to shared allocator
add configuration option to commit to No-Column-B
Only invalidate allocation file after opening rocksdb in read-write mode
fix tests not to expect failure in cases unapplicable to null-allocator
accept non-existing allocation file and don't fail the invaladtion as it could happen legally
don't commit to null-fm when db is opened in repair-mode
add a reverse mechanism from null_fm to real_fm (using RocksDB)
Using Ceph encode/decode, adding more info to header/trailer, add crc protection
Code cleanup

some changes requested by Adam (cleanup and style changes)

Signed-off-by: Gabriel Benhanokh <gbenhano@redhat.com>
2021-08-11 16:53:09 +03:00
Stephan Müller
b9c61ecaee doc: Improve RGW multisite documentation
Signed-off-by: Stephan Müller <smueller@suse.com>
2021-08-10 14:59:00 +02:00
Kefu Chai
42aa5b56e0
Merge pull request #42672 from aclamk/wip-bluestore-tool-conf
tools/ceph-bluestore-tool: Enable configuration options from monitor/ceph.conf

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2021-08-10 12:16:19 +08:00
Guillaume Abrioux
32b2c57bf6 doc/cephadm: update documentation
This commit fixes a couple of typos in the cephadm documentation.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2021-08-05 12:06:05 +02:00
Adam Kupczyk
46603dab36 tools/ceph-bluestore-tool: Enable configuration options from monitor/ceph.conf
Added option -i that allows to operate as specific osd.
It reads configuration options from monitor or ceph.conf.
In addition providing configuration option not accepted by OSD or ceph-bluestore-tool is now an error.

Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
2021-08-05 11:51:37 +02:00
Kefu Chai
70f05e42a3 doc/man/8/cephfs-shell: s/virtualenv/python3 -m venv/
so user does not have to use virtualenv python package for creating a
virtualenv, the "venv" module in Python3 would suffice.

see also https://docs.python.org/3/library/venv.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-31 21:16:56 +08:00
wangyingbin
51c27cdb16 doc/man: add missing right parenthesis in manpage.
Signed-off-by: wangyingbin <ybwang0211@163.com>
2021-07-28 10:29:38 +08:00
Kefu Chai
f54574d1ac doc/man/8/ceph-volume: specify "program" for subcommands
as per
https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html

> Like py:currentmodule, this directive produces no output. Instead, it
> serves to notify Sphinx that all following option directives document
> options for the program called name.
> ...
> The program name may contain spaces (in case you want to document
> subcommands like svn add and svn commit separately).

and to avoid the warnings like:

doc/man/8/ceph-volume.rst:424: WARNING: Duplicate explicit target name:
"cmdoption-ceph-volume-h".

we should specify different "program" for different set of options.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 01:13:54 +08:00
Dimitri Savineau
99166e1044 doc/man/8/radosgw-admin: fix typo on max entries
This fixes a typo for the --max-entries option.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-20 10:49:41 -04:00
Sage Weil
9a49a5819e doc/man/8/cephadm: add --log-to-file (and --single-host-defaults)
Signed-off-by: Sage Weil <sage@newdream.net>
2021-07-12 13:45:35 -04:00
Ilya Dryomov
a408347e14
Merge pull request #41954 from pkalever/notrim
rbd-nbd: support notrim option with map command

Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2021-06-30 14:02:10 +02:00
Prasanna Kumar Kalever
688f0c5fb0 rbd-nbd: support notrim option with map command
currently --notrim option works for rbd kernel mounter, but fails with rbd-nbd

$ rbd device --options notrim map rbd-pool/image0
/dev/rbd0
$ rbd device list
id  pool      namespace  image   snap  device
0   rbd-pool             image0  -     /dev/rbd0

$ rbd device --device-type nbd --options try-netlink,notrim map rbd-pool/image0
rbd-nbd: unknown args: --notrim
rbd: rbd-nbd failed with error: /data/ceph/build/bin/rbd-nbd: exit status: 1

With this changes:
$ rbd device --device-type nbd --options try-netlink,notrim map rbd-pool/image0
/dev/nbd0
$ rbd-nbd list-mapped
id    pool      namespace  image   snap  device
6945  rbd-pool             image0  -     /dev/nbd0
$ ps -eo "cmd" |grep [r]bd-nbd
/data/ceph/build/bin/rbd-nbd map rbd-pool/image0 --try-netlink --notrim

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2021-06-28 13:46:43 +05:30
Kefu Chai
c4fbf39d2e cmake,deb,rpm: drop ceph-deploy manpage
ceph-deploy is not actively maintained anymore, and it was replaced by
ceph-volume and other high-level tools.

so there is no point to package its manpage anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-24 12:13:17 +08:00
Jan "Yenya" Kasprzak
bf5863baf5 doc/rbd: document cp versus deep cp
I found that the difference between "rbd cp" and "rbd deep cp",
i.e. what "deep" means in this context, is documented only in
the mailing list archive and in the Mimic reelase notes.

Let's make the difference explicit in the manpage and in rbd --help.

Signed-off-by: Jan "Yenya" Kasprzak <kas@fi.muni.cz>
2021-05-27 13:47:16 +02:00
Prasanna Kumar Kalever
35e5352f71 rbd: promote rbd-nbd attach and detach at rbd integrated cli
Example:
$ rbd device attach rbd-pool/image --device /dev/nbd0 --device-type nbd --force
$ rbd device detach rpool/image --device-type nbd

for now returning EOPNOTSUPP with krbd, ggate and wnbd

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2021-05-26 10:17:12 +05:30
Rishabh Dave
72478a585c
Merge pull request #39580 from ifed01/wip-ifed-migrate
ceph-volume: implement bluefs volume migration.
2021-05-18 18:20:43 +05:30
Kefu Chai
1c04ce6f3a doc/man: build and install cephfs-shell manpage
otherwise the manpage of cephfs-shell is not built and installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-05-05 14:41:50 +08:00
Patrick Donnelly
52faaf848e
Revert "Merge PR #41134 into master"
This reverts commit 93bca2d0e9, reversing
changes made to 7e70b15c43.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2021-05-04 14:46:47 -07:00
Kefu Chai
5191008aa4 doc/man: build and install cephfs-shell manpage
otherwise the manpage of cephfs-shell is not built and installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-05-04 15:11:22 +08:00
Igor Fedotov
58efeb9151 ceph-volume: implement bluefs volume migration.
This is a wrapper over ceph-bluestore-tool's bluefs-bdev-migrate command.
Primarily intended to introduce LVM tags manipulation which
ceph-bluestore-tool is lacking.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2021-04-29 02:09:51 +03:00
Kefu Chai
2041207674 doc/man/8/ceph-authtool: fix the indent of option
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-19 22:09:52 +08:00
Xiubo Li
0b4807aefb cephfs-top: improve the output
When adding more metrics the top line will be too long and maybe
wrapped with serval lines, which will make it hard to read.

Signed-off-by: Xiubo Li <xiubli@redhat.com>
2021-04-15 16:27:34 +08:00
Kefu Chai
792c2f878f doc/man/8/ceph-volume: fix formatting
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-25 01:03:34 +08:00
Kefu Chai
5757c69b06 doc/man: replace http://ceph.com/docs with https://docs.ceph.com
the former brings us to a 404 page

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-22 01:41:53 +08:00
Kefu Chai
7e4eb6d801 doc/man/8/mount.ceph: fix the formatting
* fix the indent of item
* add an empty line before code block

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-10 12:28:28 +08:00
Sage Weil
a16e46ef05 Revert "Merge PR #39482 into master"
This reverts commit 9200b1ea8e, reversing
changes made to e42bbba9ca.

For running tests to narrow down the root cause of:
https://tracker.ceph.com/issues/49237

Signed-off-by: Michael Fritch <mfritch@suse.com>
2021-03-01 11:27:18 -05:00
Sage Weil
5e197a21e6 Merge PR #39455 into master
* refs/pull/39455/head:
	doc/man/8/ceph: document --max option
	src/test/osd/safe-to-destroy: adjust test
	ceph: print command output to stdout even on error
	mgr/DaemonServer: include details in 'osd ok-to-stop' output
	mgr: add --max <n> to 'osd ok-to-stop' command
	mgr: relax osd ok-to-stop condition on degraded pgs

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-02-27 10:15:27 -05:00
Sage Weil
98f1be85d9 doc/man/8/ceph: document --max option
Signed-off-by: Sage Weil <sage@newdream.net>
2021-02-26 13:11:43 -06:00
Rishabh Dave
cd760804a0 doc/ceph-fuse: add some options to man page
Add description for options --id and --client_fs to the ceph-fuse manual
and move description for -d closer to -f since both options are similar.

Signed-off-by: Rishabh Dave <ridave@redhat.com>
2021-02-22 17:25:03 +05:30
Sage Weil
1303bf252c Merge PR #39394 into master
* refs/pull/39394/head:
	tools/kvstore-tool: implement 'dissect' command
	kv/KeyValueHistogram: make Bluestore's DBHistogram class reusable.

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>
2021-02-21 11:51:32 -05:00
Jason Dillaman
0dc74ee027
Merge pull request #39478 from orozery/rbd-encryption-doc
doc/rbd: rbd encryption

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-02-21 09:15:00 -05:00
Or Ozeri
e45cd83af1 doc/rbd: rbd encryption
This commit adds documentation of the new rbd encryption feature

Signed-off-by: Or Ozeri <oro@il.ibm.com>
2021-02-21 07:31:24 +02:00
Sage Weil
c896292d58 Revert "Merge pull request #37764 from mgfritch/cephadm-no-container-init"
This reverts commit f635555fe7, reversing
changes made to d4d3d17b23.

This PR seems to be (indirectly?) responsible for
  https://tracker.ceph.com/issues/49237

Also, it was causing the rados.py task's follow-up step to wait
for snap trimming to fail: it would time out a 'ceph osd dump --format=json'
command.  :/

Signed-off-by: Sage Weil <sage@newdream.net>
2021-02-15 12:40:39 -05:00
Igor Fedotov
b437f7141c tools/kvstore-tool: implement 'dissect' command
This command shows information on key/value counts and lengths for KV
DB.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2021-02-12 16:55:13 +03:00
Michael Fritch
9ac2ab85cb
cephadm: run containers using --init by default
generally all ceph containers need an init process to both reap any
zombie pids and/or perform signal handling (e.g. coredumps, etc.)

Signed-off-by: Michael Fritch <mfritch@suse.com>
2021-02-05 08:03:49 -07:00
Michael Fritch
d89fae5c9d
doc/man/cephadm: add missing --container-init flag
adopt command allows for the `--container-init` flag

Signed-off-by: Michael Fritch <mfritch@suse.com>
2021-02-05 08:03:43 -07:00
Ilya Dryomov
fcb0334156
Merge pull request #39064 from idryomov/wip-doc-osdtimeout
doc: don't mention osdtimeout option in mount.ceph man page

Reviewed-by: Jeff Layton <jlayton@redhat.com>
2021-01-26 13:37:10 +01:00
Ilya Dryomov
4cbd952916
Merge pull request #39060 from idryomov/wip-krbd-msgr2
krbd: add support for msgr2 (kernel 5.11)

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-01-26 11:46:08 +01:00
Ilya Dryomov
fd5f5722a2 doc: deprecate [no]cephx_require_signatures map options
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-01-25 21:17:44 +01:00
Ilya Dryomov
08f714964b krbd: add support for msgr2
Recognize ms_mode map option and filter initial monitor addresses
accordingly: if ms_mode is not given or ms_mode=legacy, discard v2
addresses, otherwise discard v1 addresses.

Note that nothing was discarded (i.e. v2 addresses were passed to
the kernel) previously.  The intent was to preserve that behaviour
in case ms_mode is not given, allowing to change the kernel default
in the future.  However, it turns out that mount.ceph helper has
been misguidedly discarding v2 addresses since commit eae0127513
("mount.ceph: fork a child to get info from local configuration"),
so that ship has sailed.

Fixes: https://tracker.ceph.com/issues/48976
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-01-25 21:17:44 +01:00
Ilya Dryomov
ed3913f02c doc: don't mention osdtimeout option in mount.ceph man page
It was deprecated over 8 years ago and will be entirely removed in
kernel 5.12.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2021-01-25 18:44:56 +01:00
Adam Kupczyk
882714e0c9 tools/bluestore: Add command 'show-sharding' to ceph-bluestore-tool
Add command 'show-sharding' to ceph-bluestore-tool.

Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
2021-01-19 15:07:16 +01:00
Jason Dillaman
45addcbd2e
Merge pull request #38838 from orozery/rbd-encryption-cli
librbd: rbd encryption cli

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2021-01-13 19:49:23 -05:00
Patrick Donnelly
72c3b5e6a3
Merge PR #37876 into master
* refs/pull/37876/head:
	systemd: cephfs-mirror systemd unit files
	doc, man: man page for `cephfs-mirror` tool
	doc: document mirror daemon internals
	cephfs-mirror: switch to using PeerReplayer class
	cephfs-mirror: cancel ongoing snapshot syncs on dir removal
	cephfs-mirror: display peer snapshot sync stats
	cephfs-mirror: carve out (and implement) mirroring snapshots to peers
	cephfs-mirror: remove `cephfs_mirror_directory_choose_policy` option
	cephfs-mirror: include helper routines to separate source
	cephfs-mirror: remove peer only when peer is tracked
	cephfs-mirror: typedef ceph_mount_info as MountRef shared pointer
	cephfs-mirror: enclose json dump in object section
	cephfs-mirror: note current peer set
	cephfs-mirror: fix option typo and document certain options
	cephfs-mirror: remove unnecessary command line options
	cephfs-mirror: default log level 0/5

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-01-13 08:26:05 -08:00