LAMIGO_PROG_INTV=${LAMIGO_PROG_INTV:-""}
LAMIGO_CACHE=${LAMIGO_CACHE:-""}
LAMIGO_MIRROR_CMD=${LAMIGO_MIRROR_CMD:-""}
-LAMIGO_DEBUG=${LAMIGO_DEBUG:-false}
+LAMIGO_DEBUG=${LAMIGO_DEBUG:-true}
LAMIGO_RESCAN=${LAMIGO_RESCAN:-false}
LAMIGO_VERBOSE=${LAMIGO_VERBOSE:-false}
LAMIGO_DUMP=${LAMIGO_DUMP:-""}
LPURGE_SCAN_THREADS=${LPURGE_SCAN_THREADS:-""}
LPURGE_INTV=${LPURGE_INTV:-"30"}
LPURGE_SLOT_SIZE=${LPURGE_SLOT_SIZE:-""}
-LPURGE_DEBUG=${LPURGE_DEBUG:-false}
+LPURGE_DEBUG=${LPURGE_DEBUG:-true}
LPURGE_DUMP=${LPURGE_DUMP:-""}
LPURGE_DUMP_FIDS=${LPURGE_DUMP_FIDS:-""}
LPURGE_EXTRA=${LPURGE_EXTRA:-""}
$MOUNT"
}
+hot_pools_logfile() {
+ local facet="$1"
+ local tool="${2:-hot_pools}"
+ local host="$(facet_active_host $facet)"
+
+ local prefix=$TESTLOG_PREFIX
+ [[ -z "$TESTNAME" ]] || prefix+=".$TESTNAME"
+
+ printf "${prefix}.${tool}_log.${host}.log"
+}
+
+lamigo_logfile() {
+ local facet="$1"
+ hot_pools_logfile $facet lamigo
+}
+
+lpurge_logfile() {
+ local facet="$1"
+ hot_pools_logfile $facet lpurge
+}
+
build_test_filter
check_and_setup_lustre
! $LAMIGO_VERBOSE || cmd+=" -v"
echo "Start lamigo on MDS $(facet_active_host $facet): $cmd"
- do_facet $facet "$cmd" &
+ do_facet $facet "$cmd &> $(lamigo_logfile $facet)" &
sleep 2
}
cmd+=" -f $cfg_file"
echo "Start lamigo on MDS $(facet_active_host $facet): $cmd"
- do_facet $facet "$cmd" &
+ do_facet $facet "$cmd &> $(lamigo_logfile $facet)" &
sleep 2
}
stack_trap "do_facet $facet \"[[ -e ${srv_file}.saved ]] &&
mv $srv_file{.saved,} || rm -f $srv_file\""
- do_facet $facet "cat > $srv_file <<'EOF'
+ do_facet $facet "lamigo=\\\$(which lamigo);
+cat > $srv_file <<EOF
[Unit]
Description=lamigo, userspace daemon to monitor MDT via client and replicate files out of pool
[Service]
Restart=always
RestartSec=1
-ExecStart=/usr/sbin/lamigo -f $cfg_file
+ExecStart=\\\$lamigo -f $cfg_file
[Install]
WantedBy=multi-user.target
local pid_file=${LAMIGO_PIDFILE[i]}
local pid=$(do_facet $facet "cat $pid_file")
+ local jctl_cmd="journalctl -u lamigo-$mdt &> $(lamigo_logfile $facet)"
local stop_cmd="systemctl stop lamigo-$mdt"
[[ -n "$pid" ]] || { echo "cannot find lamigo PID"; return 0; }
+ do_facet $facet "$jctl_cmd"
do_facet $facet "$stop_cmd" || error "failed to stop lamigo"
echo "lamigo $pid stopped"
! $LPURGE_DEBUG || cmd+=" -b"
echo "Start lpurge on OSS $(facet_active_host $facet): $cmd"
- do_facet $facet "$cmd" &
+ do_facet $facet "$cmd &> $(lpurge_logfile $facet)" &
sleep 2
}
cmd+=" -f $cfg_file"
echo "Start lpurge on OSS $(facet_active_host $facet): $cmd"
- do_facet $facet "$cmd" &
+ do_facet $facet "$cmd &> $(lpurge_logfile $facet)" &
sleep 2
}
stack_trap "do_facet $facet \"[[ -e ${srv_file}.saved ]] &&
mv $srv_file{.saved,} || rm -f $srv_file\""
- do_facet $facet "cat > $srv_file <<'EOF'
+ do_facet $facet "lpurge=\\\$(which lpurge);
+cat > $srv_file <<EOF
[Unit]
Description=lpurge, userspace daemon to monitor free space of OST/pool and release space by removing replicas --config $cfg_file
Restart=always
RestartSec=1
Type=simple
-Environment="LPURGE_CONFIG=$cfg_file"
-ExecStart=/usr/sbin/lpurge -f $cfg_file
+Environment=\\\"LPURGE_CONFIG=$cfg_file\\\"
+ExecStart=\\\$lpurge -f $cfg_file
[Install]
WantedBy=multi-user.target
local pid_file=${LPURGE_PIDFILE[i]}
local pid=$(do_facet $facet "cat $pid_file")
+ local jctl_cmd="journalctl -u lpurge-$dev &> $(lpurge_logfile $facet)"
local stop_cmd="systemctl stop lpurge-$dev"
[[ -n "$pid" ]] || { echo "cannot find lpurge PID"; return 0; }
+ do_facet $facet "$jctl_cmd"
do_facet $facet "$stop_cmd" || error "failed to stop lpurge"
echo "lpurge $pid stopped"
run_test 3 "lamigo: start with system service"
test_4() {
- local unknown_param="foo"
- local stdout_file=$TMP/$tfile.debug.log
-
init_hot_pools_env
+ local unknown_param="foo"
+ local facet=${LAMIGO_MDT_FACET[0]}
+ local log_file=$(lamigo_logfile $facet)
+
LAMIGO_THREAD_NUM=2 LAMIGO_PROG_INTV=300 \
LAMIGO_CACHE="$((512 * 1048576)) #cache size"\
LAMIGO_EXTRA="$unknown_param" \
LAMIGO_MIRROR_CMD="lfs mirror extend -N -c -1" \
LAMIGO_DEBUG=true \
LAMIGO_DUMP=$TMP/lamigo.dump \
- start_one_lamigo_cfg &> $stdout_file
+ start_one_lamigo_cfg
check_one_lamigo_is_started || error "failed to start lamigo"
- stack_trap "[[ ! -e $stdout_file ]] || rm -f $stdout_file; \
- stop_one_lamigo_cfg"
+ stack_trap stop_one_lamigo_cfg
- cat $stdout_file
- grep -q "unknown tunable: $unknown_param" $stdout_file ||
+ grep -q "unknown tunable: $unknown_param" $log_file ||
error "failed to recognize unknown parameter '$unknown_param'"
LAMIGO_THREAD_NUM=2 LAMIGO_PROG_INTV=300 \
run_test 6 "lamigo: start with bad changelog user"
test_7() {
+ init_hot_pools_env
+
local src_pool="ddn_ssd"
local tgt_pool="ddn_hdd"
- local stdout_file=$TMP/$tfile.debug.log
-
- init_hot_pools_env
+ local facet=${LAMIGO_MDT_FACET[0]}
+ local log_file=$(lamigo_logfile $facet)
LAMIGO_AGT_NODES="$(facet_active_host ost1)" \
- LAMIGO_SRC= LAMIGO_TGT= start_one_lamigo_cmd &> $stdout_file
+ LAMIGO_SRC= LAMIGO_TGT= start_one_lamigo_cmd
check_one_lamigo_is_started || error "failed to start lamigo"
- stack_trap "[[ ! -e $stdout_file ]] || rm -f $stdout_file; \
- stop_one_lamigo_cmd"
+ stack_trap stop_one_lamigo_cmd
- cat $stdout_file
- grep -q "Target pool $tgt_pool is empty, waiting" $stdout_file ||
+ sleep $LAMIGO_AGE
+ grep -q "Target pool $tgt_pool is empty, waiting" $log_file ||
error "failed to use default pool '$tgt_pool'"
}
run_test 7 "lamigo: start with no OST pools"
test_8() {
+ init_hot_pools_env
+
local td=$DIR/$tdir
local tf=$td/$tfile
- local stdout_file=$TMP/$tfile.debug.log
-
- init_hot_pools_env
+ local facet=${LAMIGO_MDT_FACET[0]}
+ local log_file=$(lamigo_logfile $facet)
mkdir $td || error "mkdir $td failed"
$LFS setstripe -p $LAMIGO_SRC $td || error "$LFS setstripe $td failed"
- LAMIGO_DEBUG=true start_one_lamigo_cmd &> $stdout_file
+ LAMIGO_DEBUG=true start_one_lamigo_cmd
check_one_lamigo_is_started || error "failed to start lamigo"
- stack_trap "[[ ! -e $stdout_file ]] || rm -f $stdout_file; \
- stop_one_lamigo_cmd"
+ stack_trap stop_one_lamigo_cmd
yes "10M file"| dd bs=1M count=10 iflag=fullblock of=$tf ||
error "failed to create $tf"
wait_file_mirror $tf 2
- cat $stdout_file
- grep -q 'new job extend' $stdout_file ||
+ sleep $LAMIGO_AGE
+ grep -q 'new job extend' $log_file ||
error "no debug messages with -b option"
}
run_test 8 "lamigo: start with debug (-b) command line option"
run_test 9 "lamigo: replicate from source to target pool"
test_10() {
+ init_hot_pools_env
+
local td=$DIR/$tdir
local tf=$td/$tfile
- local stdout_file=$TMP/$tfile.debug.log
+ local facet=${LAMIGO_MDT_FACET[0]}
+ local log_file=$(lamigo_logfile $facet)
local cksum_orig
local cksum_new
local i
- init_hot_pools_env
-
- LAMIGO_DEBUG=true start_lamigo_cmd &> $stdout_file
- check_lamigo_is_started || error "failed to start lamigo"
- stack_trap "[[ ! -e $stdout_file ]] || rm -f $stdout_file; \
- stop_lamigo_cmd"
+ LAMIGO_DEBUG=true start_one_lamigo_cmd
+ check_one_lamigo_is_started || error "failed to start lamigo"
+ stack_trap stop_one_lamigo_cmd
# create parent directory
mkdir $td || error "mkdir $td failed"
cksum_orig=$(md5sum $tf)
for ((i = 0; i < $((LAMIGO_AGE * 2)); i++)); do
- ! grep -q 'new job extend' $stdout_file || break
+ ! grep -q 'new job extend' $log_file || break
sleep 1
done
# read from the file
cksum_new=$(md5sum $tf)
- dump_lamigo_stats
+ dump_one_lamigo_stats
[[ "$cksum_orig" = "$cksum_new" ]] ||
error "checksum mismatch: '$cksum_orig' != '$cksum_new'"