doc:appunti:hardware:raspberrypi_nas_smart_hard_disk
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:hardware:raspberrypi_nas_smart_hard_disk [2021/03/10 08:29] – niccolo | doc:appunti:hardware:raspberrypi_nas_smart_hard_disk [2022/01/07 15:04] (current) – [Letting the hard drive to remain in standby mode] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Raspberry Pi NAS: Hard disk management ====== | ====== Raspberry Pi NAS: Hard disk management ====== | ||
- | ===== smartctl | + | This page is about configuring the **hard disk power management** on a Raspberry Pi, to be used as NAS and mediacenter. The hard disk is connected via a **[[raspberrypi_nas_x835_sata_board|SupTronics X835 shield]]**. See the main index at **[[raspberrypi_nas]]**. |
+ | |||
+ | There are two tools to manage SATA disks in GNU/Linux. **smartctl** is designed to interact with the **[[wp> | ||
+ | |||
+ | ===== smartctl ===== | ||
The **smartctl** tool from the **smartmontools** package requires the **%%-d sat%%** option to access the hard disk through the USB bridge with the right protocol. | The **smartctl** tool from the **smartmontools** package requires the **%%-d sat%%** option to access the hard disk through the USB bridge with the right protocol. | ||
Line 16: | Line 20: | ||
# Disable DEVICESCAN, which does not work in our environment. | # Disable DEVICESCAN, which does not work in our environment. | ||
#DEVICESCAN -d removable -n standby -m root -M exec / | #DEVICESCAN -d removable -n standby -m root -M exec / | ||
- | |||
- | # Send an email test to < | ||
- | /dev/sda -d sat -m root@localhost -M test | ||
# Use the suggedested subset of checks, instead of the ' | # Use the suggedested subset of checks, instead of the ' | ||
+ | # NOTICE: We are running smartd with option --interval=3600 instead of the | ||
+ | # 1800 default, i.e. device polling occurs every 1 our instead of 30 minutes. | ||
+ | # The number of skipped checks (option -n) must be multipled by that value | ||
+ | # to obtain the maximum time that checks will be skipped: | ||
+ | # 336 * 3600 seconds = 14 days. | ||
/dev/sda -d sat \ | /dev/sda -d sat \ | ||
-H \ # Check the health with the SMART RETURN STATUS command | -H \ # Check the health with the SMART RETURN STATUS command | ||
Line 27: | Line 33: | ||
-f \ # Check for ' | -f \ # Check for ' | ||
-n standby,336 \ # Skip smartd checks during standby (max 336 times, add ', | -n standby,336 \ # Skip smartd checks during standby (max 336 times, add ', | ||
- | -W 0,50,60 \ # Report | + | -W 0,50,60 \ # Temperature |
-s S/ | -s S/ | ||
+ | -s O/ | ||
-m root@localhost \ # Send a warning email on failures and errors | -m root@localhost \ # Send a warning email on failures and errors | ||
-M daily \ # Repeat email warnings daily | -M daily \ # Repeat email warnings daily | ||
Line 42: | Line 49: | ||
Restart the **smartd.service** and verify that the **smartd** program is running with that paramter (3600 seconds, i.e. one hour, instead of 30 minutes). | Restart the **smartd.service** and verify that the **smartd** program is running with that paramter (3600 seconds, i.e. one hour, instead of 30 minutes). | ||
- | To set the **Advanced Power Management** level use the **%%-B%%** option, the maximum performance level which **permits spin-down** of the drive is 127: | + | At each cycle, all the **%%-s%%** options are check for a match, the first match will be executed and the remaining are ignored. |
+ | |||
+ | The syntax for the **%%-s%%** option (test scheduling) | ||
< | < | ||
- | hdparm | + | -s T/MM/DD/d/HH |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | (C)onveyance Self-Test, (O)ffline | ||
</ | </ | ||
- | Regardless of the APM level, we can set the hard disk **Standby timer** (spindown) after 30 minutes of inactivity. See **man hdparm** for explanation | + | We should use the **background test mode**, which does not interrupt normal |
+ | |||
+ | | ||
+ | * **Long Self-Test**: | ||
+ | | ||
+ | | ||
+ | |||
+ | If you want to display the log e.g. of self-test executed, run: | ||
< | < | ||
- | hdparm | + | smartctl |
</ | </ | ||
- | **WARNING**: | + | The output |
- | + | ||
- | Enable the **most quiet acoustic management** (it is **not supported** in my case: 4 Tb Seagate IronWolf): | + | |
< | < | ||
- | hdparm | + | === START OF READ SMART DATA SECTION === |
+ | SMART Self-test log structure revision number 1 | ||
+ | Num Test_Description | ||
+ | # 1 Short offline | ||
+ | # 2 Short offline | ||
+ | # 3 Short offline | ||
+ | # 4 Conveyance offline | ||
</ | </ | ||
- | **Check** whether | + | |
+ | ===== hdparm ===== | ||
+ | |||
+ | To set the **Advanced Power Management** level use the **%%-B%%** option, the maximum performance level which **permits spin-down** of the drive is 127: | ||
< | < | ||
- | smartctl | + | hdparm |
</ | </ | ||
- | The meaning | + | Regardless |
< | < | ||
- | Device is in ACTIVE or IDLE mode | + | hdparm -S 241 /dev/sda |
</ | </ | ||
+ | |||
+ | **WARNING**: | ||
+ | |||
+ | Enable the **most quiet acoustic management** (it is **not supported** in my case: 4 Tb Seagate IronWolf): | ||
< | < | ||
- | Device is in STANDBY mode, exit(3) | + | hdparm -M 128 /dev/sda |
</ | </ | ||
- | |||
- | **WARNING**: | ||
Debian provides the file **/ | Debian provides the file **/ | ||
Line 86: | Line 119: | ||
# It is advisable to disable write cache in this case. | # It is advisable to disable write cache in this case. | ||
# See man hdparm(8), -S and -W options. | # See man hdparm(8), -S and -W options. | ||
+ | # The granularity of the spindown_time up to 20 minutes is 5 | ||
+ | # seconds, above that threshold it is 30 minutes. | ||
/dev/sda { | /dev/sda { | ||
write_cache = off | write_cache = off | ||
Line 97: | Line 132: | ||
DEVNAME=/ | DEVNAME=/ | ||
</ | </ | ||
+ | |||
+ | ===== Querying the disk status ===== | ||
+ | |||
+ | **Check** whether the drive is in **standby** mode, without waking it up: | ||
+ | |||
+ | < | ||
+ | smartctl -d sat --nocheck=standby, | ||
+ | </ | ||
+ | |||
+ | The meaning of **standby, | ||
+ | |||
+ | < | ||
+ | Device is in ACTIVE or IDLE mode | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Device is in STANDBY mode, exit(3) | ||
+ | </ | ||
+ | |||
+ | **WARNING**: | ||
**WARNING**: | **WARNING**: | ||
Line 105: | Line 160: | ||
* **updatedb** - Execute by the **/ | * **updatedb** - Execute by the **/ | ||
- | * **smartctl** - Reading SMART attributes (e.g. disk temperature, | + | * **smartctl** - Reading SMART attributes (e.g. disk temperature, |
+ | |||
+ | ===== Web References ===== | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
doc/appunti/hardware/raspberrypi_nas_smart_hard_disk.txt · Last modified: 2022/01/07 15:04 by niccolo