init_hot_pools_env
- # start lamigo
- start_lamigo_service
- check_lamigo_is_started || error "failed to start lamigo"
- stack_trap stop_lamigo_service
-
- # start lpurge
- LPURGE_FREELO=$freelo LPURGE_FREEHI=$freehi start_lpurge_service
- check_lpurge_is_started || error "failed to start lpurge"
- stack_trap stop_lpurge_service
+ # create a regular file in source pool
+ mkdir $td || error "mkdir $td failed"
+ $LFS setstripe -c -1 -p $LAMIGO_SRC $tf || error "cannot create file"
+ $LFS mirror extend -N -c -1 -p $LAMIGO_TGT $tf || error "cannot create mirror"
$LFS df -h
free_MB=$(($(lfs_df -p $LAMIGO_SRC $DIR |
awk '/summary/{print $4}') / 1024))
size_MB=$((free_MB * (100 - freelo + 1) / 100))
- # create a regular file in source pool
- mkdir $td || error "mkdir $td failed"
- cmd="$LFS setstripe -c -1 -p $LAMIGO_SRC $td"
- echo $cmd
- $cmd || error "'$cmd' failed"
-
- cmd="$MULTIOP $tf oO_CREAT:O_RDWR:eRE+eU"
- echo $cmd
- $cmd || error "'$cmd' failed"
-
- cancel_lru_locks osc
- cancel_lru_locks mdc
- sleep $((LAMIGO_AGE * 2))
-
- # verify the file replicated in target pool
- $LFS getstripe $tf
- verify_one_lamigo_param 0 replicated 1
- verify_file_mirror $tf 2
-
# fill in data
yes "${size_MB}M file"|
dd bs=1M count=$size_MB iflag=fullblock of=$tf ||
error "failed to write to $tf"
- cmd="$MULTIOP $tf oO_RDWR:eR_E-eUc"
+ ids=($($LFS getstripe $tf | awk '/lcme_id/{print $2}' | tr '\n' ' '))
+ verify_comp_attr lcme_flags "$tf" "${ids[0]}" init,^stale
+ verify_comp_attr lcme_flags "$tf" "${ids[1]}" init,stale
+
+ # open, apply read lease, pause, expect lease to exist, drop lease, close.
+ cmd="$MULTIOP $tf oO_RDWR:eR_E+eUc"
echo $cmd
$cmd &
pid=$!
+ # start lpurge
+ LPURGE_FREELO=$freelo LPURGE_FREEHI=$freehi start_lpurge_service
+ check_lpurge_is_started || error "failed to start lpurge"
+ stack_trap stop_lpurge_service
+
echo "Before purging:"
$LFS df -h
$LFS getstripe $tf
# since the mirror in source pool is the last non-stale mirror,
# it cannot be purged because 'lfs mirror split' cannot get WRITE lease.
ids=($($LFS getstripe $tf | awk '/lcme_id/{print $2}' | tr '\n' ' '))
- verify_comp_attr lcme_flags $tf ${ids[0]} init,prefer
+ verify_comp_attr lcme_flags $tf ${ids[0]} init,^stale
verify_comp_attr lcme_flags $tf ${ids[1]} init,stale
# release the lease lock
kill -USR1 $pid && wait $pid || error "$MULTIOP failed"
- wait_file_resync $tf
+ $LFS mirror resync $tf || error "cannot resync mirror"
sleep $((LPURGE_INTV * 2))