3 source $
(dirname $0)/..
/detect-build-env-vars.sh
4 source $CEPH_ROOT/qa
/workunits
/ceph-helpers.sh
10 export CEPH_MON
="127.0.0.1:7146" # git grep '\<7146\>' : there must be only one
12 CEPH_ARGS
+="--fsid=$(uuidgen) --auth-supported=none "
13 CEPH_ARGS
+="--mon-host=$CEPH_MON "
14 # avoid running out of fds in rados bench
15 CEPH_ARGS
+="--filestore_wbthrottle_xfs_ios_hard_limit=900 "
16 CEPH_ARGS
+="--filestore_wbthrottle_btrfs_ios_hard_limit=900 "
17 local funcs
=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
18 for func
in $funcs ; do
19 setup
$dir ||
return 1
20 $func $dir ||
return 1
21 teardown
$dir ||
return 1
25 function TEST_filestore_to_bluestore
() {
28 local flimit
=$
(ulimit -n)
29 if [ $flimit -lt 1536 ]; then
30 echo "Low open file limit ($flimit), test may fail. Increase to 1536 or higher and retry if that happens."
33 run_mon
$dir a ||
return 1
34 run_mgr
$dir x ||
return 1
35 run_osd
$dir 0 ||
return 1
36 osd_pid
=$
(cat $dir/osd
.0.pid
)
37 run_osd
$dir 1 ||
return 1
38 run_osd
$dir 2 ||
return 1
42 ceph osd pool create foo
16
45 rados bench
-p foo
10 write -b 4096 --no-cleanup ||
return 1
48 while kill $osd_pid; do sleep 1 ; done
51 mv $dir/0 $dir/0.old ||
return 1
52 mkdir
$dir/0 ||
return 1
53 ofsid
=$
(cat $dir/0.old
/fsid
)
54 echo "osd fsid $ofsid"
56 CEPH_ARGS
+="--log-file $dir/cot.log --log-max-recent 0 "
57 ceph-objectstore-tool
--type bluestore
--data-path $dir/0 --fsid $ofsid \
59 ceph-objectstore-tool
--data-path $dir/0.old
--target-data-path $dir/0 \
63 run_osd_bluestore
$dir 0 ||
return 1
65 while ! ceph osd stat |
grep '3 up' ; do sleep 1 ; done
66 ceph osd metadata
0 |
grep bluestore ||
return 1
72 # and make sure mon is sync'ed
75 wait_for_clean ||
return 1
81 # compile-command: "cd ../.. ; make -j4 && test/osd/osd-dup.sh"