cephadm, ceph-volume: deploy crimson OSDs using cephadm#66811
cephadm, ceph-volume: deploy crimson OSDs using cephadm#66811shraddhaag merged 2 commits intoceph:mainfrom
Conversation
168cf2a to
8a66d63
Compare
phlogistonjohn
left a comment
There was a problem hiding this comment.
typo in commit message subject: add osd_type to orchestratory
I also generally recommend prefixing the subject with a directoy/topic like nearly all the existing ceph commits do eg. cephadm: add osd_type to orchestrator
1888d7a to
9c784b5
Compare
Matan-B
left a comment
There was a problem hiding this comment.
Once ready, can you please update the Crimson user docs with how a Crimson OSD could be added (command example)?
9c784b5 to
818b453
Compare
|
jenkins ceph-volume unit tests |
afa11f0 to
9302a65
Compare
|
jenkins ceph-volume unit tests |
|
@shraddhaag should this test be updated ? ceph/src/pybind/mgr/cephadm/tests/test_cephadm.py Lines 1177 to 1184 in af3ff2b --osd-type flag ?)
|
151cf17 to
1521dcb
Compare
1521dcb to
346a396
Compare
This commit enables us to deploy both classic and crimson type OSDs using cephadm. To enable the same, a new feature, osd_type is added to DriverGroupSpec. The default value for the same is classic, but can also be set to crimson. When this value is read by cephadm, the entrypoint is changed from /usr/bin/ceph-osd to /usr/bin/ceph-osd-crimson. Fixes: https://tracker.ceph.com/issues/74081 Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
Prior to this commit, ceph-volume was using hardcoded OSD binary to issue commands (eg - to perform mkfs, etc). This commit enables ceph-volume to start supporting crimson OSDs. A new argument, --osd-type is introduced with the default value classic. When this parameter is set to 'crimson', ceph-osd-crimson binary will be used to execute OSD commands. Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
346a396 to
585992a
Compare
| [ | ||
| # no preview and only one disk, prepare is used due the hack that is in place. | ||
| (['/dev/sda'], False, ["lvm batch --no-auto /dev/sda --objectstore bluestore --yes --no-systemd"]), | ||
| (['/dev/sda'], False, ["lvm batch --no-auto /dev/sda --objectstore bluestore --osd-type classic --yes --no-systemd"]), |
There was a problem hiding this comment.
Can we keep classic as the default to avoid passing it in the test files?
There was a problem hiding this comment.
I've added classic as the default in both cephadm and ceph-volume.
- https://github.com/ceph/ceph/pull/66811/changes#diff-6b4e0db0cd759015d29f327cd90efa79030025319c317c449efc06841c6e120bR95
- https://github.com/ceph/ceph/pull/66811/changes#diff-809b1c074086d65e7f527ec569e94a1ebba49a7e2774b15a3987793f78456444R295
The reason we have to supply the commands this way is because DriveGroupSpec injects these arguments. Also, in future when we have to make crimson as the default, we won't have to make much changes, only change the default value.
|
jenkins test rook e2e |
|
jenkins test make check |
|
Some context about why ceph-volume changes were needed: While testing out these changes 0fdc81b, OSDs were getting killed in the boot process itself. Looking at the debug logs for OSD boot process (post #67090), the final error looked something like this: ie., crimson OSD was failing when trying to open the superblock. The error being From the above log, while the superblock is indeed getting created, this log is not coming from crimson OSD, but instead from classic OSD. (ref: https://github.com/shraddhaag/ceph/blob/main/src/osd/OSD.cc#L2134). The problem being, the first command to do mkfs was being issued by the classic OSD binary and the OSD boot was being done by crimson OSD. In cephadm, mkfs is done by ceph-volume. Looking at the code, the OSD binary used was hardcoded (). To fix this, a new flag is introduced in ceph-volume |
|
The PR has been tested with KCLI. Both a classic and a crimson cluster came up successfully with Docs to follow in a follow-up PR. |
|
jenkins ceph-volume unit tests |
Dismissing the review for merging this PR. Will add the default value in a followup PR.
|
This is an automated message by src/script/redmine-upkeep.py. I have resolved the following tracker ticket due to the merge of this PR: No backports are pending for the ticket. If this is incorrect, please update the tracker Update Log: https://github.com/ceph/ceph/actions/runs/21669492167 |
This commit adds support for deploying crimson OSDs using cephadm with the method raw. Support for lvm crimson OSD was added previously in: ceph#66811. Fixes: https://tracker.ceph.com/issues/74960 Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
This commit adds support for deploying crimson OSDs using cephadm with the method raw. Support for lvm crimson OSD was added previously in: ceph#66811. Fixes: https://tracker.ceph.com/issues/74960 Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
This commit adds support for deploying crimson OSDs using cephadm with the method raw. Support for lvm crimson OSD was added previously in: ceph#66811. Fixes: https://tracker.ceph.com/issues/74960 Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
This commit enables us to deploy both classic and crimson type OSDs using cephadm. To enable the same, a new feature, osd_type is added to DriverGroupSpec. The default value for the same is classic, but can also be set to crimson. When this value is read by cephadm, the entrypoint is changed from /usr/bin/ceph-osd to /usr/bin/ceph-osd-crimson.
Fixes: https://tracker.ceph.com/issues/74081
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job DefinitionYou must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.