Hi all,
I have written a couple dozen scripts to completely automate the entire "Drive Burn-In" process down to a simple bash script that you run locally which will bundle the scripts into a ZIP, upload them to your server, unzip them and then execute burn-in on either a list of drives you provide or all drives available. This process will automatically setup a TMUX session and split the window for each drive to burn-in individually in parallel. It will also discern between HDD and SSD to run different steps. This Burn-In process was derived from over two dozen articles and processes including all the resources already created here. It has taken me a few weeks to test it out properly (from MacOS but should also work for Linux). Please note that there are likely to be a few minor changes required to process this Bash script from Windows such as installing "Git Bash", etc.
If there is an appetite for a completely automated Burn-In script, I'll go through the effort to create a resource and upload them to GitHub, etc. for consumption.
High-Level Burn-In Process:
In parallel on all HDD/SSD/NVME drives, run sequentially:
All Params: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> <DRIVE_LIST:all available drives> <ZERO_DRIVES:false> <TMUX_SESSION_SUFFIX:""> <END_TMUX_SESSION_ON_DETACH:false>
All Drives With Defaults: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT>
All Drives With Defaults Specified: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "<DRIVE_LIST>" false "" false
Drive List: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "/dev/da0 /dev/da1 /dev/da2"
Drive List With Zeros After Testing (SMR Performance Adjustment): bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "/dev/da0 /dev/da1 /dev/da2" true
Note: This is still an ongoing work-in-progress and the SMART reports above may be replaced by something more specific to the previous test, etc.
Please "Like" this post if you'd like these scripts to be made available.
Thanks!
I have written a couple dozen scripts to completely automate the entire "Drive Burn-In" process down to a simple bash script that you run locally which will bundle the scripts into a ZIP, upload them to your server, unzip them and then execute burn-in on either a list of drives you provide or all drives available. This process will automatically setup a TMUX session and split the window for each drive to burn-in individually in parallel. It will also discern between HDD and SSD to run different steps. This Burn-In process was derived from over two dozen articles and processes including all the resources already created here. It has taken me a few weeks to test it out properly (from MacOS but should also work for Linux). Please note that there are likely to be a few minor changes required to process this Bash script from Windows such as installing "Git Bash", etc.
If there is an appetite for a completely automated Burn-In script, I'll go through the effort to create a resource and upload them to GitHub, etc. for consumption.
High-Level Burn-In Process:
In parallel on all HDD/SSD/NVME drives, run sequentially:
- General Tests Part One
- Manufacturer's conveyance test (smartctl -t conveyance /dev/adaX)
- SMART short test (smartctl -t short /dev/adaX)
- SMART long test (smartctl -t long /dev/adaX)
- Print Result (smartctl -A /dev/adaX)
- Basic Imaging write test (dd if=/dev/zero of=/dev/da${n} bs=1048576)
- Print Result (smartctl -A /dev/adaX)
- Basic Imaging Read Test (dd if=/dev/da${n} of=/dev/null bs=1048576)
- Print Result (smartctl -A /dev/adaX)
- SSD Tests
- No unique steps at this time
- HDD Tests
- Basic Imaging Write and Read Tests in parallel (dd if=/dev/zero of=/dev/da${n} bs=1048576 / dd if=/dev/da${n} of=/dev/null bs=1048576)
- Print Result (smartctl -A /dev/adaX)
- BadBlocks Destructive Read-Write test (badblocks -b 4096 -wsv /dev/adaX)
- Print Result (smartctl -A /dev/adaX)
- General Tests Part Two
- Manufacturer's conveyance test (smartctl -t conveyance /dev/adaX)
- SMART short test (smartctl -t short /dev/adaX)
- SMART long test (smartctl -t long /dev/adaX)
- Print Result (smartctl -A /dev/adaX)
All Params: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> <DRIVE_LIST:all available drives> <ZERO_DRIVES:false> <TMUX_SESSION_SUFFIX:""> <END_TMUX_SESSION_ON_DETACH:false>
All Drives With Defaults: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT>
All Drives With Defaults Specified: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "<DRIVE_LIST>" false "" false
Drive List: bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "/dev/da0 /dev/da1 /dev/da2"
Drive List With Zeros After Testing (SMR Performance Adjustment): bash ./upload_to_freenas_and_run_burnin.sh <HOST_IP_ADDR> <PORT> "/dev/da0 /dev/da1 /dev/da2" true
Note: This is still an ongoing work-in-progress and the SMART reports above may be replaced by something more specific to the previous test, etc.
Please "Like" this post if you'd like these scripts to be made available.
Thanks!
Last edited: