]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/seastore: add --seastore-devs in vstart.sh 41541/head
authorchunmei-liu <chunmei.liu@intel.com>
Tue, 25 May 2021 20:34:00 +0000 (13:34 -0700)
committerchunmei-liu <chunmei.liu@intel.com>
Tue, 25 May 2021 22:41:24 +0000 (15:41 -0700)
to support /dev/xxx as seastore device

Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
src/vstart.sh

index ed5602931d24b524ca5304733da9a21b19e68218..59dbf62b4b62c20c8e4250dc90dfc42251360d88 100755 (executable)
@@ -178,6 +178,7 @@ fi
 filestore_path=
 kstore_path=
 bluestore_dev=
+seastore_dev=
 
 VSTART_SEC="client.vstart.sh"
 
@@ -239,6 +240,7 @@ usage=$usage"\t--inc-osd: append some more osds into existing vcluster\n"
 usage=$usage"\t--cephadm: enable cephadm orchestrator with ~/.ssh/id_rsa[.pub]\n"
 usage=$usage"\t--no-parallel: dont start all OSDs in parallel\n"
 usage=$usage"\t--jaeger: use jaegertracing for tracing\n"
+usage=$usage"\t--seastore-devs: comma-separated list of blockdevs to use for seastore\n"
 
 usage_exit() {
     printf "$usage"
@@ -433,6 +435,16 @@ case $1 in
     --without-dashboard)
         with_mgr_dashboard=false
         ;;
+    --seastore-devs)
+        IFS=',' read -r -a seastore_dev <<< "$2"
+        for dev in "${seastore_dev[@]}"; do
+            if [ ! -b $dev -o ! -w $dev ]; then
+                echo "All --seastore-devs must refer to writable block devices"
+                exit 1
+            fi
+        done
+        shift
+        ;;
     --bluestore-spdk)
         [ -z "$2" ] && usage_exit
         IFS=',' read -r -a bluestore_spdk_dev <<< "$2"
@@ -903,6 +915,10 @@ EOF
                 ln -s $filestore_path $CEPH_DEV_DIR/osd$osd
             elif [ -n "$kstore_path" ]; then
                 ln -s $kstore_path $CEPH_DEV_DIR/osd$osd
+            elif [ -n "${seastore_dev[$osd]}" ]; then
+                mkdir -p $CEPH_DEV_DIR/osd$osd
+                dd if=/dev/zero of=${seastore_dev[$osd]} bs=1M count=1
+                ln -s ${seastore_dev[$osd]} $CEPH_DEV_DIR/osd$osd/block
             else
                 mkdir -p $CEPH_DEV_DIR/osd$osd
                 if [ -n "${bluestore_dev[$osd]}" ]; then