]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/vstart.sh: support specify the type of secondary device
authorZhang Song <zhangsong325@gmail.com>
Tue, 10 Jan 2023 09:59:21 +0000 (17:59 +0800)
committerZhang Song <zhangsong325@gmail.com>
Wed, 15 Mar 2023 01:22:31 +0000 (09:22 +0800)
doc/crimson: add options and example about SeaStore

Signed-off-by: Zhang Song <zhangsong325@gmail.com>
doc/dev/crimson/crimson.rst
src/vstart.sh

index 9695019b8099da6c4a94da07fb39b29da56d8bef..4e24c9d3a4e35b94acc085a6fef8979876bd2a15 100644 (file)
@@ -154,16 +154,16 @@ To facilitate the development of crimson, following options would be handy when
 using ``vstart.sh``,
 
 ``--crimson``
-    start ``crimson-osd`` instead of ``ceph-osd``
+    Start ``crimson-osd`` instead of ``ceph-osd``.
 
 ``--nodaemon``
-    do not daemonize the service
+    Do not daemonize the service.
 
 ``--redirect-output``
-    redirect the stdout and stderr of service to ``out/$type.$num.stdout``.
+    Tedirect the stdout and stderr of service to ``out/$type.$num.stdout``.
 
 ``--osd-args``
-    pass extra command line options to crimson-osd or ceph-osd. It's quite
+    Pass extra command line options to crimson-osd or ceph-osd. It's quite
     useful for passing Seastar options to crimson-osd. For instance, you could
     use ``--osd-args "--memory 2G"`` to set the memory to use. Please refer
     the output of::
@@ -173,14 +173,31 @@ using ``vstart.sh``,
     for more Seastar specific command line options.
 
 ``--cyanstore``
-    use CyanStore as the object store backend.
+    Use CyanStore as the object store backend.
 
 ``--bluestore``
-    use the alienized BlueStore as the object store backend. This is the default
+    Use the alienized BlueStore as the object store backend. This is the default
     setting, if not specified otherwise.
 
 ``--memstore``
-    use the alienized MemStore as the object store backend.
+    Use the alienized MemStore as the object store backend.
+
+``--seastore``
+    Use SeaStore as the back end object store.
+
+``--seastore-devs``
+    Specify the block device used by SeaStore.
+
+``--seastore-secondary-devs``
+    Optional.  SeaStore supports multiple devices.  Enable this feature by
+    passing the block device to this option.
+
+``--seastore-secondary-devs-type``
+    Optional.  Specify device type of secondary devices.  When the secondary
+    device is slower than main device passed to ``--seastore-devs``, the cold
+    data in faster device will be evicted to the slower devices over time.
+    Valid types include ``HDD``, ``SSD``(default), ``ZNS``, and ``RANDOM_BLOCK_SSD``
+    Note secondary devices should not be faster than the main device.
 
 ``--seastore``
     use SeaStore as the object store backend.
@@ -194,6 +211,15 @@ So, a typical command to start a single-crimson-node cluster is::
 
 Where we assign 4 GiB memory, a single thread running on core-0 to crimson-osd.
 
+Another SeaStore example::
+
+  $  MGR=1 MON=1 OSD=1 MDS=0 RGW=0 ../src/vstart.sh -n -x \
+    --without-dashboard --seastore \
+    --crimson --redirect-output \
+    --seastore-devs /dev/sda \
+    --seastore-secondary-devs /dev/sdb \
+    --seastore-secondary-devs-type HDD
+
 You could stop the vstart cluster using::
 
   $ ../src/stop.sh --crimson
index 96d93f76dff69b280c50e25d6af88a795765c76b..8d16c630a6622b6f2a0378adf84ce05d70c41b22 100755 (executable)
@@ -187,6 +187,7 @@ filestore_path=
 kstore_path=
 declare -a block_devs
 declare -a secondary_block_devs
+secondary_block_devs_type="SSD"
 
 VSTART_SEC="client.vstart.sh"
 
@@ -255,7 +256,8 @@ options:
        --no-restart: dont restart process when using ceph-run
        --jaeger: use jaegertracing for tracing
        --seastore-devs: comma-separated list of blockdevs to use for seastore
-       --seastore-secondary-des: comma-separated list of secondary blockdevs to use for seastore
+       --seastore-secondary-devs: comma-separated list of secondary blockdevs to use for seastore
+       --seastore-secondary-devs-type: device type of all secondary blockdevs. HDD, SSD(default), ZNS or RANDOM_BLOCK_SSD
        --crimson-smp: number of cores to use for crimson
 \n
 EOF
@@ -516,6 +518,10 @@ case $1 in
         parse_secondary_devs --seastore-devs "$2"
         shift
         ;;
+    --seastore-secondary-devs-type)
+        secondary_block_devs_type="$2"
+        shift
+        ;;
     --crimson-smp)
         crimson_smp=$2
         shift
@@ -1037,7 +1043,8 @@ EOF
                 fi
                 if [ -n "${secondary_block_devs[$osd]}" ]; then
                     dd if=/dev/zero of=${secondary_block_devs[$osd]} bs=1M count=1
-                    ln -s ${secondary_block_devs[$osd]} $CEPH_DEV_DIR/osd$osd/block.segmented.1
+                    mkdir -p $CEPH_DEV_DIR/osd$osd/block.${secondary_block_devs_type}.1
+                    ln -s ${secondary_block_devs[$osd]} $CEPH_DEV_DIR/osd$osd/block.${secondary_block_devs_type}.1/block
                 fi
             fi
             if [ "$objectstore" == "bluestore" ]; then