}
-function run_osd_bluestore() {
+function run_osd_filestore() {
local dir=$1
shift
local id=$1
echo "{\"cephx_secret\": \"$OSD_SECRET\"}" > $osd_data/new.json
ceph osd new $uuid -i $osd_data/new.json
rm $osd_data/new.json
- ceph-osd -i $id $ceph_args --mkfs --key $OSD_SECRET --osd-uuid $uuid --osd-objectstore=bluestore
+ ceph-osd -i $id $ceph_args --mkfs --key $OSD_SECRET --osd-uuid $uuid --osd-objectstore=filestore
local key_fn=$osd_data/keyring
cat > $key_fn<<EOF
shift
local osd_data=$dir/$id
- local journal_args
- if [ "$objectstore_type" == "filestore" ]; then
- journal_args=" --journal-path $osd_data/journal"
- fi
ceph-objectstore-tool \
--data-path $osd_data \
- $journal_args \
"$@" || return 1
}
if [ "$pooltype" != "ec" ]; then
shard_id=""
fi
- set_config osd $osd_id filestore_debug_inject_read_err true || return 1
+ type=$(cat $dir/$osd_id/type)
+ set_config osd $osd_id ${type}_debug_inject_read_err true || return 1
local loop=0
while ( CEPH_ARGS='' ceph --admin-daemon $(get_asok_path osd.$osd_id) \
inject${which}err $poolname $objname $shard_id | grep -q Invalid ); do
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=$CEPH_MON "
- CEPH_ARGS+="--osd-objectstore=filestore "
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
for func in $funcs ; do
base_test=$CEPH_ROOT/qa/workunits/mon/test_mon_osdmap_prune.sh
-# We are going to open and close a lot of files, and generate a lot of maps
-# that the osds will need to process. If we don't increase the fd ulimit, we
-# risk having the osds asserting when handling filestore transactions.
-ulimit -n 4096
-
function run() {
local dir=$1
local dir=$1
setup $dir || return 1
- # disable pg dir merge
- CEPH_ARGS+="--osd-objectstore=filestore"
export CEPH_ARGS
run_mon $dir a || return 1
run_mgr $dir x || return 1
- run_osd $dir 0 || return 1
+ # disable pg dir merge
+ run_osd_filestore $dir 0 || return 1
ceph osd pool create rep_expected_num_objects 64 64 replicated replicated_rule 100000 || return 1
# wait for pg dir creating
export CEPH_MON="127.0.0.1:7132" # git grep '\<7132\>' : there must be only one
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
- CEPH_ARGS+="--mon-host=$CEPH_MON --osd-objectstore filestore"
+ CEPH_ARGS+="--mon-host=$CEPH_MON "
export margin=10
export objects=200
export poolname=test
run_mon $dir a || return 1
run_mgr $dir x || return 1
- run_osd_bluestore $dir 0 || return 1
+ run_osd $dir 0 || return 1
osd_pid0=$(cat $dir/osd.0.pid)
- run_osd_bluestore $dir 1 || return 1
+ run_osd $dir 1 || return 1
osd_pid1=$(cat $dir/osd.1.pid)
- run_osd_bluestore $dir 2 || return 1
+ run_osd $dir 2 || return 1
osd_pid2=$(cat $dir/osd.2.pid)
- run_osd_bluestore $dir 3 || return 1
+ run_osd $dir 3 || return 1
osd_pid3=$(cat $dir/osd.3.pid)
sleep 5
ceph-bluestore-tool --path $dir/3 fsck || return 1
- run_osd_bluestore $dir 0 || return 1
+ run_osd $dir 0 || return 1
osd_pid0=$(cat $dir/osd.0.pid)
- run_osd_bluestore $dir 1 || return 1
+ run_osd $dir 1 || return 1
osd_pid1=$(cat $dir/osd.1.pid)
- run_osd_bluestore $dir 2 || return 1
+ run_osd $dir 2 || return 1
osd_pid2=$(cat $dir/osd.2.pid)
- run_osd_bluestore $dir 3 || return 1
+ run_osd $dir 3 || return 1
osd_pid3=$(cat $dir/osd.3.pid)
wait_for_clean || return 1
ceph-bluestore-tool --path $dir/3 fsck || return 1
- run_osd_bluestore $dir 0 || return 1
+ run_osd $dir 0 || return 1
osd_pid0=$(cat $dir/osd.0.pid)
- run_osd_bluestore $dir 1 || return 1
+ run_osd $dir 1 || return 1
osd_pid1=$(cat $dir/osd.1.pid)
- run_osd_bluestore $dir 2 || return 1
+ run_osd $dir 2 || return 1
osd_pid2=$(cat $dir/osd.2.pid)
- run_osd_bluestore $dir 3 || return 1
+ run_osd $dir 3 || return 1
osd_pid3=$(cat $dir/osd.3.pid)
# write some objects
ceph-bluestore-tool --path $dir/3 fsck || return 1
- run_osd_bluestore $dir 0 || return 1
+ run_osd $dir 0 || return 1
osd_pid0=$(cat $dir/osd.0.pid)
- run_osd_bluestore $dir 1 || return 1
+ run_osd $dir 1 || return 1
osd_pid1=$(cat $dir/osd.1.pid)
- run_osd_bluestore $dir 2 || return 1
+ run_osd $dir 2 || return 1
osd_pid2=$(cat $dir/osd.2.pid)
- run_osd_bluestore $dir 3 || return 1
+ run_osd $dir 3 || return 1
osd_pid3=$(cat $dir/osd.3.pid)
# write some objects
run_mon $dir a || return 1
run_mgr $dir x || return 1
- run_osd $dir 0 || return 1
+ run_osd_filestore $dir 0 || return 1
osd_pid=$(cat $dir/osd.0.pid)
- run_osd $dir 1 || return 1
- run_osd $dir 2 || return 1
+ run_osd_filestore $dir 1 || return 1
+ run_osd_filestore $dir 2 || return 1
sleep 5
--op dup || return 1
CEPH_ARGS=$O
- run_osd_bluestore $dir 0 || return 1
+ run_osd $dir 0 || return 1
while ! ceph osd stat | grep '3 up' ; do sleep 1 ; done
ceph osd metadata 0 | grep bluestore || return 1
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=$CEPH_MON "
- CEPH_ARGS+="--osd-objectstore=filestore "
+
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
for func in $funcs ; do
function setup_osds() {
local count=$1
shift
+ local type=$1
for id in $(seq 0 $(expr $count - 1)) ; do
- run_osd $dir $id || return 1
+ run_osd${type} $dir $id || return 1
done
wait_for_clean || return 1
}
local dir=$1
local objname=myobject
- setup_osds 3 || return 1
+ setup_osds 3 _filestore || return 1
ceph osd pool delete foo foo --yes-i-really-really-mean-it || return 1
local poolname=test-pool
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=$CEPH_MON "
CEPH_ARGS+="--osd-skip-data-digest=false "
- CEPH_ARGS+="--osd-objectstore=filestore "
export -n CEPH_CLI_TEST_DUP_COMMAND
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 2) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
- else
run_osd $dir $id $ceph_osd_args || return 1
+ else
+ run_osd_filestore $dir $id $ceph_osd_args || return 1
fi
done
create_rbd_pool || return 1
--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 2) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
create_pool $poolname 1 1 || return 1
--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 2) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
create_pool $poolname 1 1 || return 1
--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 2) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
create_pool $poolname 1 1 || return 1
--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 2) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
create_pool $poolname 1 1 || return 1
local ceph_osd_args="--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 $(expr $OSDS - 1)) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
create_pool $poolname 1 1 || return 1
OSD=$(expr $i % 2)
_objectstore_tool_nodown $dir $OSD obj$i remove || return 1
done
- run_osd_bluestore $dir $primary $ceph_osd_args || return 1
- run_osd_bluestore $dir $other $ceph_osd_args || return 1
+ run_osd $dir $primary $ceph_osd_args || return 1
+ run_osd $dir $other $ceph_osd_args || return 1
wait_for_clean || return 1
repair $pgid
local ceph_osd_args="--osd_deep_scrub_randomize_ratio=0 \
--osd-scrub-interval-randomize-ratio=0"
for id in $(seq 0 $(expr $OSDS - 1)) ; do
- run_osd_bluestore $dir $id $ceph_osd_args || return 1
+ run_osd $dir $id $ceph_osd_args || return 1
done
# Create an EC pool
OSD=$(expr $i % 2)
_objectstore_tool_nodown $dir $OSD obj$i remove || return 1
done
- run_osd_bluestore $dir $primary $ceph_osd_args || return 1
- run_osd_bluestore $dir $other $ceph_osd_args || return 1
+ run_osd $dir $primary $ceph_osd_args || return 1
+ run_osd $dir $other $ceph_osd_args || return 1
wait_for_clean || return 1
repair $pgid
run_mgr $dir x || return 1
for id in $(seq 0 3) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id || return 1
- else
run_osd $dir $id || return 1
+ else
+ run_osd_filestore $dir $id || return 1
fi
done
create_rbd_pool || return 1
run_mgr $dir x || return 1
for id in $(seq 0 9) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id || return 1
- else
run_osd $dir $id || return 1
+ else
+ run_osd_filestore $dir $id || return 1
fi
done
create_rbd_pool || return 1
run_mgr $dir x || return 1
for id in $(seq 0 3) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id || return 1
- else
run_osd $dir $id || return 1
+ else
+ run_osd_filestore $dir $id || return 1
fi
done
run_mgr $dir x || return 1
for id in $(seq 0 2) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id || return 1
- else
run_osd $dir $id || return 1
+ else
+ run_osd_filestore $dir $id || return 1
fi
done
create_rbd_pool || return 1
run_mgr $dir x || return 1
for id in $(seq 0 2) ; do
if [ "$allow_overwrites" = "true" ]; then
- run_osd_bluestore $dir $id || return 1
- else
run_osd $dir $id || return 1
+ else
+ run_osd_filestore $dir $id || return 1
fi
done
create_rbd_pool || return 1
export CEPH_MON="127.0.0.1:7121" # git grep '\<7121\>' : there must be only one
export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
- CEPH_ARGS+="--mon-host=$CEPH_MON --osd-objectstore=filestore"
+ CEPH_ARGS+="--mon-host=$CEPH_MON "
export -n CEPH_CLI_TEST_DUP_COMMAND
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
JSON="$(ceph-objectstore-tool --data-path $dir/${osd} --op list obj5 | grep \"snapid\":1)"
OBJ5SAVE="$JSON"
# Starts with a snapmap
- ceph-osdomap-tool --no-mon-config --omap-path $dir/${osd}/current/omap --command dump-raw-keys > $dir/drk.log
- grep "_USER_[0-9]*_USER_,MAP_.*[.]1[.]obj5[.][.]" $dir/drk.log || return 1
+ ceph-kvstore-tool bluestore-kv $dir/${osd} list 2> /dev/null > $dir/drk.log
+ grep "^M.*MAP_.*[.]1[.]obj5[.][.]$" $dir/drk.log || return 1
ceph-objectstore-tool --data-path $dir/${osd} --rmtype nosnapmap "$JSON" remove || return 1
# Check that snapmap is stil there
- ceph-osdomap-tool --no-mon-config --omap-path $dir/${osd}/current/omap --command dump-raw-keys > $dir/drk.log
- grep "_USER_[0-9]*_USER_,MAP_.*[.]1[.]obj5[.][.]" $dir/drk.log || return 1
+ ceph-kvstore-tool bluestore-kv $dir/${osd} list 2> /dev/null > $dir/drk.log
+ grep "^M.*MAP_.*[.]1[.]obj5[.][.]$" $dir/drk.log || return 1
rm -f $dir/drk.log
JSON="$(ceph-objectstore-tool --data-path $dir/${osd} --op list obj5 | grep \"snapid\":4)"
ceph-objectstore-tool --data-path $dir/${osd} "$JSON" remove || return 1
# Starts with a snapmap
- ceph-osdomap-tool --no-mon-config --omap-path $dir/${osd}/current/omap --command dump-raw-keys > $dir/drk.log
- grep "_USER_[0-9]*_USER_,MAP_.*[.]7[.]obj16[.][.]" $dir/drk.log || return 1
+ ceph-kvstore-tool bluestore-kv $dir/${osd} list 2> /dev/null > $dir/drk.log
+ grep "^M.*MAP_.*[.]7[.]obj16[.][.]$" $dir/drk.log || return 1
JSON="$(ceph-objectstore-tool --data-path $dir/${osd} --op list obj16 | grep \"snapid\":7)"
ceph-objectstore-tool --data-path $dir/${osd} --rmtype snapmap "$JSON" remove || return 1
# Check that snapmap is now removed
- ceph-osdomap-tool --no-mon-config --omap-path $dir/${osd}/current/omap --command dump-raw-keys > $dir/drk.log
- ! grep "_USER_[0-9]*_USER_,MAP_.*[.]7[.]obj16[.][.]" $dir/drk.log || return 1
+ ceph-kvstore-tool bluestore-kv $dir/${osd} list 2> /dev/null > $dir/drk.log
+ ! grep "^M.*MAP_.*[.]7[.]obj16[.][.]$" $dir/drk.log || return 1
rm -f $dir/drk.log
JSON="$(ceph-objectstore-tool --data-path $dir/${osd} --head --op list obj2)"