This commit is contained in:
Wenchao Hao 2023-09-14 11:31:13 +08:00
parent 0212b9930c
commit bc1917c8bb
3 changed files with 13 additions and 6 deletions

View File

@ -5,6 +5,6 @@ source ./error_inject.sh
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'` for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do do
echo clear error $(basename $dev) echo clear error $(basename $dev)
clear_error $(basename $dev) clear_disk_error $(basename $dev)
done done

View File

@ -1,4 +1,4 @@
function clear_error() function clear_disk_error()
{ {
local str=$(lsscsi | grep scsi_debug | grep $1 | awk '{print $1}') local str=$(lsscsi | grep scsi_debug | grep $1 | awk '{print $1}')
local scsi_id=${str#*\[} local scsi_id=${str#*\[}

15
loop.sh
View File

@ -7,14 +7,14 @@ function add_fio()
while : while :
do do
fio_cnt=$(ps aux | grep fio -c) fio_cnt=$(ps aux | grep fio -c)
if [ $fio_cnt -gt 50 ]; then if [ $fio_cnt -gt 150 ]; then
echo "$fio_cnt larger than 50, do not add" echo "$fio_cnt larger than 50, do not add"
continue continue
fi fi
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'` for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do do
inject=$[RANDOM%3] inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then if [ $inject -eq 0 ] || [ $inject -eq 1 ] ; then
disk=$(basename $dev) disk=$(basename $dev)
threads=$[RANDOM%31+1] threads=$[RANDOM%31+1]
echo "add $threads fio for $disk" echo "add $threads fio for $disk"
@ -71,7 +71,7 @@ function clear_error()
inject=$[RANDOM%3] inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then if [ $inject -eq 0 ]; then
echo clear error $(basename $dev) echo clear error $(basename $dev)
clear_error $(basename $dev) clear_disk_error $(basename $dev)
fi fi
done done
@ -85,7 +85,14 @@ function set_running()
do do
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'` for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do do
echo "running" > /sys/block/$(basename $dev)/device/state disk=$(basename $dev)
state=$(cat /sys/block/$disk/device/state)
if [ "$state" == "offline" ]; then
echo clear error $disk
clear_disk_error $disk 2>&1 > /dev/null
echo "set $disk running"
echo "running" > /sys/block/$disk/device/state
fi
done done
sleep 1 sleep 1