run_osd $dir 2 || return 1
create_rbd_pool || return 1
ceph osd dump | grep "pool 1 'rbd'" || return 1
- local size=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path mon.a) \
+ local mona=$(get_asok_path mon.a)
+ local size=$(CEPH_ARGS='' ceph --format=json daemon $mona \
config get osd_pool_default_size)
test "$size" = '{"osd_pool_default_size":"3"}' || return 1
kill_daemons $dir || return 1
run_mon $dir a --osd_pool_default_size=1 --mon_allow_pool_size_one=true || return 1
- local size=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path mon.a) \
+ local size=$(CEPH_ARGS='' ceph --format=json daemon $mona \
config get osd_pool_default_size)
test "$size" = '{"osd_pool_default_size":"1"}' || return 1
kill_daemons $dir || return 1
CEPH_ARGS="$CEPH_ARGS --osd_pool_default_size=2" \
run_mon $dir a || return 1
- local size=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path mon.a) \
+ local size=$(CEPH_ARGS='' ceph --format=json daemon $mona \
config get osd_pool_default_size)
test "$size" = '{"osd_pool_default_size":"2"}' || return 1
kill_daemons $dir || return 1
run_mgr $dir x || return 1
run_osd $dir 0 || return 1
- local backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local osd0=$(get_asok_path osd.0)
+ local backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills)
echo "$backfills" | grep --quiet 'osd_max_backfills' || return 1
wait_for_osd down 0 || return 1
activate_osd $dir 0 --osd-max-backfills 20 || return 1
- local backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills)
test "$backfills" = '{"osd_max_backfills":"20"}' || return 1
run_mon $dir a || return 1
run_mgr $dir x || return 1
+ local osd0=$(get_asok_path osd.0)
# Skip the osd benchmark during first osd bring-up.
run_osd $dir 0 --osd-op-queue=mclock_scheduler \
--osd-mclock-skip-benchmark=true || return 1
local max_iops_hdd_def=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_max_capacity_iops_hdd)
+ $osd0 config get osd_mclock_max_capacity_iops_hdd)
local max_iops_ssd_def=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_max_capacity_iops_ssd)
+ $osd0 config get osd_mclock_max_capacity_iops_ssd)
kill_daemons $dir TERM osd || return 1
ceph osd down 0 || return 1
activate_osd $dir 0 --osd-op-queue=mclock_scheduler \
--osd-mclock-skip-benchmark=true || return 1
local max_iops_hdd_after_boot=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_max_capacity_iops_hdd)
+ $osd0 config get osd_mclock_max_capacity_iops_hdd)
local max_iops_ssd_after_boot=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_max_capacity_iops_ssd)
+ $osd0 config get osd_mclock_max_capacity_iops_ssd)
test "$max_iops_hdd_def" = "$max_iops_hdd_after_boot" || return 1
test "$max_iops_ssd_def" = "$max_iops_ssd_after_boot" || return 1
local id=$2
local config=$3
+ local daemon_asok=$(get_asok_path $daemon.$id)
CEPH_ARGS='' \
- ceph --format json daemon $(get_asok_path $daemon.$id) \
+ ceph --format json daemon $daemon_asok \
config get $config 2> /dev/null | \
jq -r ".$config"
}
local config=$3
local value=$4
- test $(env CEPH_ARGS='' ceph --format json daemon $(get_asok_path $daemon.$id) \
+ local daemon_asok=$(get_asok_path $daemon.$id)
+ test $(env CEPH_ARGS='' ceph --format json daemon $daemon_asok \
config set $config $value 2> /dev/null | \
jq 'has("success")') == true
}
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) \
+ local osd_asok=$(get_asok_path osd.$osd_id)
+ while ( CEPH_ARGS='' ceph --admin-daemon $osd_asok \
inject${which}err $poolname $objname $shard_id | grep -q Invalid ); do
loop=$(expr $loop + 1)
if [ $loop = "10" ]; then
local mclock_profile=$(ceph config get osd.0 osd_mclock_profile)
test "$mclock_profile" = "balanced" || return 1
+ local osd0=$(get_asok_path osd.0)
# Verify the running mClock profile
mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_profile |\
+ $osd0 config get osd_mclock_profile |\
jq .osd_mclock_profile)
mclock_profile=$(eval echo $mclock_profile)
test "$mclock_profile" = "high_recovery_ops" || return 1
ceph tell osd.0 config set osd_mclock_profile custom || return 1
# Verify that the mclock profile is set to 'custom' on the OSDs
- mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_profile | jq .osd_mclock_profile)
+ mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_profile | jq .osd_mclock_profile)
mclock_profile=$(eval echo $mclock_profile)
test "$mclock_profile" = "custom" || return 1
# Change a mclock config param and confirm the change
- local client_res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ local client_res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
echo "client_res = $client_res"
local client_res_new=$(echo "$client_res + 0.1" | bc -l)
return 1
fi
# Check value in the in-memory 'values' map
- res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
if (( $(echo "$res != $client_res_new" | bc -l) )); then
return 1
def_mclock_profile=$(ceph config get osd.0 osd_mclock_profile)
test "$def_mclock_profile" = "balanced" || return 1
+ local osd0=$(get_asok_path osd.0)
# Verify the running mClock profile
local orig_mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_profile |\
+ $osd0 config get osd_mclock_profile |\
jq .osd_mclock_profile)
orig_mclock_profile=$(eval echo $orig_mclock_profile)
test $orig_mclock_profile = "high_recovery_ops" || return 1
# Verify that the mclock profile is set to 'custom' on the OSDs
local mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_profile | \
+ $osd0 config get osd_mclock_profile | \
jq .osd_mclock_profile)
mclock_profile=$(eval echo $mclock_profile)
test $mclock_profile = "custom" || return 1
# Save the original client reservations allocated to the OSDs
local client_res
- client_res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ client_res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
echo "Original client_res for osd.0 = $client_res"
return 1
fi
# Check value in the in-memory 'values' map
- res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
if (( $(echo "$res != $client_res_new" | bc -l) )); then
return 1
ceph tell osd.0 config set osd_mclock_profile $orig_mclock_profile || return 1
# Verify that the mclock profile is set back to the original on the OSD
eval mclock_profile=$(CEPH_ARGS='' ceph --format=json daemon \
- $(get_asok_path osd.0) config get osd_mclock_profile | \
+ $osd0 config get osd_mclock_profile | \
jq .osd_mclock_profile)
#mclock_profile=$(ceph config get osd.0 osd_mclock_profile)
test "$mclock_profile" = "$orig_mclock_profile" || return 1
return 1
fi
# Check value in the in-memory 'values' map
- res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
if (( $(echo "$res != $client_res_new" | bc -l) )); then
return 1
fi
# Check value in the in-memory 'values' map
- res=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path \
- osd.0) config get osd_mclock_scheduler_client_res | \
+ res=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
+ config get osd_mclock_scheduler_client_res | \
jq .osd_mclock_scheduler_client_res | bc)
if (( $(echo "$res != $client_res" | bc -l) )); then
return 1
run_mgr $dir x || return 1
run_osd $dir 0 --osd_op_queue=mclock_scheduler || return 1
- local recoveries=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local osd0=$(get_asok_path osd.0)
+ local recoveries=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_recovery_max_active)
# Get default value
echo "$recoveries" | grep --quiet 'osd_recovery_max_active' || return 1
# limit is retained at its default value.
ceph config set osd.0 osd_recovery_max_active 10 || return 1
sleep 2 # Allow time for change to take effect
- local max_recoveries=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local max_recoveries=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_recovery_max_active)
test "$max_recoveries" = "$recoveries" || return 1
ceph config set osd.0 osd_mclock_override_recovery_settings true || return 1
ceph config set osd.0 osd_recovery_max_active 10 || return 1
sleep 2 # Allow time for change to take effect
- max_recoveries=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_recoveries=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_recovery_max_active)
test "$max_recoveries" = '{"osd_recovery_max_active":"10"}' || return 1
run_mgr $dir x || return 1
run_osd $dir 0 --osd_op_queue=mclock_scheduler || return 1
- local backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local osd0=$(get_asok_path osd.0)
+ local backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills | jq .osd_max_backfills | bc)
# Get default value
echo "osd_max_backfills: $backfills" || return 1
# limit is retained at its default value.
ceph config set osd.0 osd_max_backfills 20 || return 1
sleep 2 # Allow time for change to take effect
- local max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ local max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills | jq .osd_max_backfills | bc)
test $max_backfills = $backfills || return 1
# Verify local and async reserver settings are not changed
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .local_reservations.max_allowed | bc)
test $max_backfills = $backfills || return 1
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .remote_reservations.max_allowed | bc)
test $max_backfills = $backfills || return 1
ceph config set osd.0 osd_mclock_override_recovery_settings true || return 1
ceph config set osd.0 osd_max_backfills 20 || return 1
sleep 2 # Allow time for change to take effect
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills | jq .osd_max_backfills | bc)
test $max_backfills = 20 || return 1
# Verify local and async reserver settings are changed
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .local_reservations.max_allowed | bc)
test $max_backfills = 20 || return 1
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .remote_reservations.max_allowed | bc)
test $max_backfills = 20 || return 1
wait_for_osd down 0 || return 1
activate_osd $dir 0 --osd-op-queue=mclock_scheduler || return 1
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
config get osd_max_backfills | jq .osd_max_backfills | bc)
test $max_backfills = 20 || return 1
# Verify local and async reserver settings are changed
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .local_reservations.max_allowed | bc)
test $max_backfills = 20 || return 1
- max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $(get_asok_path osd.0) \
+ max_backfills=$(CEPH_ARGS='' ceph --format=json daemon $osd0 \
dump_recovery_reservations | jq .remote_reservations.max_allowed | bc)
test $max_backfills = 20 || return 1