167 lines
4.8 KiB
Bash
167 lines
4.8 KiB
Bash
|
set -xe
|
||
|
|
||
|
function prepare_fio_cmd_tc1() {
|
||
|
print_test_fio_header
|
||
|
|
||
|
run_fio="$fio_bin --eta=never "
|
||
|
for vm_num in $1; do
|
||
|
cp $fio_job $tmp_detach_job
|
||
|
vm_dir=$VM_BASE_DIR/$vm_num
|
||
|
vm_check_scsi_location $vm_num
|
||
|
for disk in $SCSI_DISK; do
|
||
|
echo "[nvme-host$disk]" >> $tmp_detach_job
|
||
|
echo "filename=/dev/$disk" >> $tmp_detach_job
|
||
|
echo "size=100%" >> $tmp_detach_job
|
||
|
done
|
||
|
vm_scp "$vm_num" $tmp_detach_job 127.0.0.1:/root/default_integrity_2discs.job
|
||
|
run_fio+="--client=127.0.0.1,$(vm_fio_socket $vm_num) --remote-config /root/default_integrity_2discs.job "
|
||
|
rm $tmp_detach_job
|
||
|
done
|
||
|
}
|
||
|
|
||
|
function scsi_hotremove_tc1() {
|
||
|
echo "Scsi hotremove test case 1"
|
||
|
traddr=""
|
||
|
get_traddr "Nvme0"
|
||
|
delete_nvme "Nvme0n1"
|
||
|
sleep 1
|
||
|
add_nvme "HotInNvme0" "$traddr"
|
||
|
}
|
||
|
|
||
|
function scsi_hotremove_tc2() {
|
||
|
echo "Scsi hotremove test case 2"
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 HotInNvme0n1p0
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p1.0 0 Nvme1n1p0
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p2.1 0 HotInNvme0n1p1
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p3.1 0 Nvme1n1p1
|
||
|
vms_setup
|
||
|
vm_run_with_arg 0 1
|
||
|
vms_prepare "0 1"
|
||
|
|
||
|
vm_check_scsi_location "0"
|
||
|
local disks="$SCSI_DISK"
|
||
|
traddr=""
|
||
|
get_traddr "Nvme0"
|
||
|
prepare_fio_cmd_tc1 "0 1"
|
||
|
$run_fio &
|
||
|
local last_pid=$!
|
||
|
sleep 3
|
||
|
delete_nvme "HotInNvme0n1"
|
||
|
set +xe
|
||
|
wait $last_pid
|
||
|
check_fio_retcode "Scsi hotremove test case 2: Iteration 1." 1 $?
|
||
|
vm_check_scsi_location "0"
|
||
|
local new_disks="$SCSI_DISK"
|
||
|
check_disks "$disks" "$new_disks"
|
||
|
reboot_all_and_prepare "0 1"
|
||
|
$run_fio
|
||
|
check_fio_retcode "Scsi hotremove test case 2: Iteration 2." 1 $?
|
||
|
set -xe
|
||
|
vm_shutdown_all
|
||
|
add_nvme "HotInNvme1" "$traddr"
|
||
|
sleep 1
|
||
|
}
|
||
|
|
||
|
function scsi_hotremove_tc3() {
|
||
|
echo "Scsi hotremove test case 3"
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 HotInNvme1n1p0
|
||
|
vm_run_with_arg 0 1
|
||
|
vms_prepare "0 1"
|
||
|
vm_check_scsi_location "0"
|
||
|
local disks="$SCSI_DISK"
|
||
|
traddr=""
|
||
|
get_traddr "Nvme0"
|
||
|
prepare_fio_cmd_tc1 "0"
|
||
|
$run_fio &
|
||
|
local last_pid=$!
|
||
|
sleep 3
|
||
|
delete_nvme "HotInNvme1n1"
|
||
|
set +xe
|
||
|
wait $last_pid
|
||
|
check_fio_retcode "Scsi hotremove test case 3: Iteration 1." 1 $?
|
||
|
vm_check_scsi_location "0"
|
||
|
local new_disks="$SCSI_DISK"
|
||
|
check_disks "$disks" "$new_disks"
|
||
|
reboot_all_and_prepare "0 1"
|
||
|
$run_fio
|
||
|
check_fio_retcode "Scsi hotremove test case 3: Iteration 2." 1 $?
|
||
|
set -xe
|
||
|
vm_shutdown_all
|
||
|
add_nvme "HotInNvme2" "$traddr"
|
||
|
sleep 1
|
||
|
}
|
||
|
|
||
|
function scsi_hotremove_tc4() {
|
||
|
echo "Scsi hotremove test case 4"
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 HotInNvme2n1p0
|
||
|
$rpc_py add_vhost_scsi_lun naa.Nvme0n1p2.1 0 HotInNvme2n1p1
|
||
|
vm_run_with_arg 0 1
|
||
|
vms_prepare "0 1"
|
||
|
|
||
|
vm_check_scsi_location "0"
|
||
|
local disks_vm0="$SCSI_DISK"
|
||
|
prepare_fio_cmd_tc1 "0"
|
||
|
$run_fio &
|
||
|
last_pid_vm0=$!
|
||
|
vm_check_scsi_location "1"
|
||
|
local disks_vm1="$SCSI_DISK"
|
||
|
prepare_fio_cmd_tc1 "1"
|
||
|
$run_fio &
|
||
|
local last_pid_vm1=$!
|
||
|
prepare_fio_cmd_tc1 "0 1"
|
||
|
sleep 3
|
||
|
traddr=""
|
||
|
get_traddr "Nvme0"
|
||
|
delete_nvme "HotInNvme2n1"
|
||
|
set +xe
|
||
|
wait $last_pid_vm0
|
||
|
local retcode_vm0=$?
|
||
|
wait $last_pid_vm1
|
||
|
local retcode_vm1=$?
|
||
|
check_fio_retcode "Scsi hotremove test case 4: Iteration 1." 1 $retcode_vm0
|
||
|
|
||
|
vm_check_scsi_location "0"
|
||
|
local new_disks_vm0="$SCSI_DISK"
|
||
|
check_disks "$disks_vm0" "$new_disks_vm0"
|
||
|
check_fio_retcode "Scsi hotremove test case 4: Iteration 2." 1 $retcode_vm1
|
||
|
vm_check_scsi_location "1"
|
||
|
local new_disks_vm1="$SCSI_DISK"
|
||
|
check_disks "$disks_vm1" "$new_disks_vm1"
|
||
|
|
||
|
reboot_all_and_prepare "0 1"
|
||
|
$run_fio
|
||
|
check_fio_retcode "Scsi hotremove test case 4: Iteration 3." 1 $?
|
||
|
prepare_fio_cmd_tc1 "0 1"
|
||
|
$run_fio
|
||
|
check_fio_retcode "Scsi hotremove test case 4: Iteration 4." 0 $?
|
||
|
set -xe
|
||
|
vm_shutdown_all
|
||
|
add_nvme "HotInNvme3" "$traddr"
|
||
|
sleep 1
|
||
|
$rpc_py remove_vhost_scsi_target naa.Nvme0n1p1.0 0
|
||
|
$rpc_py remove_vhost_scsi_target naa.Nvme0n1p3.1 0
|
||
|
}
|
||
|
|
||
|
function pre_scsi_hotremove_test_case() {
|
||
|
$rpc_py construct_vhost_scsi_controller naa.Nvme0n1p0.0
|
||
|
$rpc_py construct_vhost_scsi_controller naa.Nvme0n1p1.0
|
||
|
$rpc_py construct_vhost_scsi_controller naa.Nvme0n1p2.1
|
||
|
$rpc_py construct_vhost_scsi_controller naa.Nvme0n1p3.1
|
||
|
}
|
||
|
|
||
|
function post_scsi_hotremove_test_case() {
|
||
|
$rpc_py remove_vhost_controller naa.Nvme0n1p0.0
|
||
|
$rpc_py remove_vhost_controller naa.Nvme0n1p1.0
|
||
|
$rpc_py remove_vhost_controller naa.Nvme0n1p2.1
|
||
|
$rpc_py remove_vhost_controller naa.Nvme0n1p3.1
|
||
|
}
|
||
|
|
||
|
trap "" ERR
|
||
|
pre_scsi_hotremove_test_case
|
||
|
scsi_hotremove_tc1
|
||
|
scsi_hotremove_tc2
|
||
|
scsi_hotremove_tc3
|
||
|
scsi_hotremove_tc4
|
||
|
post_scsi_hotremove_test_case
|
||
|
trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR
|