Skip to content

Commit 5061b31

Browse files
authored
Merge pull request ceph#60821 from Matan-B/wip-matanb-crimson-seastore-deafult
crimson: switch to SeaStore as default object store Reviewed-by: Samuel Just <[email protected]> Reviewed-by: Yingxin Cheng <[email protected]>
2 parents 610a87a + 15e746b commit 5061b31

File tree

23 files changed

+167
-126
lines changed

23 files changed

+167
-126
lines changed

doc/dev/crimson/crimson.rst

Lines changed: 82 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -43,82 +43,6 @@ use a Crimson build:
4343
You'll likely need to supply the ``--allow-mismatched-release`` flag to
4444
use a non-release branch.
4545

46-
Configure Crimson with Bluestore
47-
================================
48-
49-
As Bluestore is not a Crimson native `object store backend`_,
50-
deploying Crimson with Bluestore as the back end requires setting
51-
one of the two following configuration options:
52-
53-
.. note::
54-
55-
#. These two options, along with ``crimson_alien_op_num_threads``,
56-
can't be changed after deployment.
57-
#. `vstart.sh`_ sets these options using the ``--crimson-smp`` flag.
58-
59-
60-
1) ``crimson_seastar_num_threads``
61-
62-
In order to allow easier cluster deployments, this option can be used
63-
instead of setting the CPU mask manually for each OSD.
64-
65-
It's recommended to let the **number of OSDs on each host** multiplied by
66-
``crimson_seastar_num_threads`` to be less than the node's number of CPU
67-
cores (``nproc``).
68-
69-
For example, for deploying two nodes with eight CPU cores and two OSDs each:
70-
71-
.. code-block:: yaml
72-
73-
conf:
74-
# Global to all OSDs
75-
osd:
76-
crimson seastar num threads: 3
77-
78-
.. note::
79-
80-
#. For optimal performance ``crimson_seastar_cpu_cores`` should be set instead.
81-
82-
2) ``crimson_seastar_cpu_cores`` and ``crimson_alien_thread_cpu_cores``.
83-
84-
Explicitly set the CPU core allocation for each ``crimson-osd``
85-
and for the BlueStore back end. It's recommended for each set to be mutually exclusive.
86-
87-
For example, for deploying two nodes with eight CPU cores and two OSDs each:
88-
89-
.. code-block:: yaml
90-
91-
conf:
92-
# Both nodes
93-
osd:
94-
crimson alien thread cpu cores: 6-7
95-
96-
# First node
97-
osd.0:
98-
crimson seastar cpu cores: 0-2
99-
osd.1:
100-
crimson seastar cpu cores: 3-5
101-
102-
# Second node
103-
osd.2:
104-
crimson seastar cpu cores: 0-2
105-
osd.3:
106-
crimson seastar cpu cores: 3-5
107-
108-
For a single node with eight node and three OSDs:
109-
110-
.. code-block:: yaml
111-
112-
conf:
113-
osd:
114-
crimson alien thread cpu cores: 6-7
115-
osd.0:
116-
crimson seastar cpu cores: 0-1
117-
osd.1:
118-
crimson seastar cpu cores: 2-3
119-
osd.2:
120-
crimson seastar cpu cores: 4-5
121-
12246
Running Crimson
12347
===============
12448

@@ -182,7 +106,7 @@ The following options can be used with ``vstart.sh``.
182106
(as determined by `nproc`) will be assigned to the object store.
183107

184108
``--bluestore``
185-
Use the alienized BlueStore as the object store backend. This is the default (see below section on the `object store backend`_ for more details)
109+
Use alienized BlueStore as the object store backend.
186110

187111
``--cyanstore``
188112
Use CyanStore as the object store backend.
@@ -191,7 +115,7 @@ The following options can be used with ``vstart.sh``.
191115
Use the alienized MemStore as the object store backend.
192116

193117
``--seastore``
194-
Use SeaStore as the back end object store.
118+
Use SeaStore as the back end object store. This is the default (see below section on the `object store backend`_ for more details)
195119

196120
``--seastore-devs``
197121
Specify the block device used by SeaStore.
@@ -207,20 +131,11 @@ The following options can be used with ``vstart.sh``.
207131
Valid types include ``HDD``, ``SSD``(default), ``ZNS``, and ``RANDOM_BLOCK_SSD``
208132
Note secondary devices should not be faster than the main device.
209133

210-
To start a cluster with a single Crimson node, run::
211-
212-
$ MGR=1 MON=1 OSD=1 MDS=0 RGW=0 ../src/vstart.sh \
213-
--without-dashboard --bluestore --crimson \
214-
--redirect-output
215134

216-
Another SeaStore example::
135+
To start a simple cluster with a single core Crimson OSD, run::
217136

218-
$ MGR=1 MON=1 OSD=1 MDS=0 RGW=0 ../src/vstart.sh -n -x \
219-
--without-dashboard --seastore \
220-
--crimson --redirect-output \
221-
--seastore-devs /dev/sda \
222-
--seastore-secondary-devs /dev/sdb \
223-
--seastore-secondary-devs-type HDD
137+
$ MGR=1 MON=1 OSD=1 MDS=0 RGW=0 ../src/vstart.sh -n \
138+
--without-dashboard --seastore --crimson
224139

225140
Stop this ``vstart`` cluster by running::
226141

@@ -239,7 +154,7 @@ They are:
239154

240155
.. describe:: seastore
241156

242-
Seastore is still under active development.
157+
Seastore is the default Crimson backend and is still under active development.
243158

244159
The alienized object store backends are backed by a thread pool, which
245160
is a proxy of the alienstore adaptor running in Seastar. The proxy issues
@@ -254,6 +169,82 @@ managed by the Seastar framework. They are:
254169

255170
The object store used by the classic ``ceph-osd``
256171

172+
Configure Crimson with Bluestore
173+
================================
174+
175+
As Bluestore is not a Crimson native `object store backend`_,
176+
deploying Crimson with Bluestore as the back end requires setting
177+
one of the two following configuration options:
178+
179+
.. note::
180+
181+
#. These two options, along with ``crimson_alien_op_num_threads``,
182+
can't be changed after deployment.
183+
#. `vstart.sh`_ sets these options using the ``--crimson-smp`` flag.
184+
185+
186+
1) ``crimson_seastar_num_threads``
187+
188+
In order to allow easier cluster deployments, this option can be used
189+
instead of setting the CPU mask manually for each OSD.
190+
191+
It's recommended to set the **number of OSDs on each host** multiplied by
192+
``crimson_seastar_num_threads`` to be less than the node's number of CPU
193+
cores (``nproc``).
194+
195+
For example, for deploying two nodes with eight CPU cores and two OSDs each:
196+
197+
.. code-block:: yaml
198+
199+
conf:
200+
# Global to all OSDs
201+
osd:
202+
crimson seastar num threads: 3
203+
204+
.. note::
205+
206+
#. For optimal performance ``crimson_seastar_cpu_cores`` should be set instead.
207+
208+
2) ``crimson_seastar_cpu_cores`` and ``crimson_alien_thread_cpu_cores``.
209+
210+
Explicitly set the CPU core allocation for each ``crimson-osd``
211+
and for the BlueStore back end. It's recommended for each set to be mutually exclusive.
212+
213+
For example, for deploying two nodes with eight CPU cores and two OSDs each:
214+
215+
.. code-block:: yaml
216+
217+
conf:
218+
# Both nodes
219+
osd:
220+
crimson alien thread cpu cores: 6-7
221+
222+
# First node
223+
osd.0:
224+
crimson seastar cpu cores: 0-2
225+
osd.1:
226+
crimson seastar cpu cores: 3-5
227+
228+
# Second node
229+
osd.2:
230+
crimson seastar cpu cores: 0-2
231+
osd.3:
232+
crimson seastar cpu cores: 3-5
233+
234+
For a single node with eight node and three OSDs:
235+
236+
.. code-block:: yaml
237+
238+
conf:
239+
osd:
240+
crimson alien thread cpu cores: 6-7
241+
osd.0:
242+
crimson seastar cpu cores: 0-1
243+
osd.1:
244+
crimson seastar cpu cores: 2-3
245+
osd.2:
246+
crimson seastar cpu cores: 4-5
247+
257248
daemonize
258249
---------
259250

qa/config/crimson_bluestore.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
overrides:
2+
ceph:
3+
fs: xfs
4+
conf:
5+
osd:
6+
# crimson's osd objectstore option
7+
crimson osd objectstore: bluestore
8+
debug alienstore: 20
9+
bluestore block size: 96636764160
10+
debug bluestore: 20
11+
debug bluefs: 20
12+
debug rocksdb: 10
13+
bluestore compression mode: aggressive
14+
bluestore fsck on mount: true
15+
bluestore compression algorithm: snappy
16+
# lower the full ratios since we can fill up a 100gb osd so quickly
17+
mon osd full ratio: .9
18+
mon osd backfillfull_ratio: .85
19+
mon osd nearfull ratio: .8
20+
osd failsafe full ratio: .95
21+
bluestore rocksdb cf: false
22+
log to stderr: true
23+
err to stderr: true
24+
log flush on exit: true
25+
log to file: false

qa/config/crimson_qa_overrides.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ overrides:
99
osd pool default crimson: true
1010
osd:
1111
crimson osd obc lru size: 10
12-
debug alienstore: 20
1312
debug ms: 20
1413
flavor: crimson
1514
workunit:
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
overrides:
22
ceph:
3-
fs: xfs
43
conf:
54
osd:
6-
osd objectstore: seastore
5+
# crimson's osd objectstore option
6+
crimson osd objectstore: seastore
77
debug seastore: 20
88
debug seastore onode: 20
99
debug seastore odata: 20
10-
debug seastore ompap: 20
10+
debug seastore omap: 20
1111
debug seastore tm: 20
1212
debug seastore t: 20
1313
debug seastore cleaner: 20
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.qa/config/crimson_seastore.yaml

qa/suites/crimson-rados-experimental/seastore/basic/objectstore/seastore.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.qa/config/bluestore.yaml
1+
.qa/config/crimson_bluestore.yaml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.qa/config/seastore.yaml
1+
.qa/config/crimson_seastore.yaml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.qa/config/bluestore.yaml
1+
.qa/config/crimson_bluestore.yaml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.qa/config/seastore.yaml
1+
.qa/config/crimson_seastore.yaml

0 commit comments

Comments
 (0)