User Tools

Site Tools


doc:appunti:hardware:raspberrypi_nas_smart_hard_disk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:hardware:raspberrypi_nas_smart_hard_disk [2021/03/10 15:25] niccolodoc:appunti:hardware:raspberrypi_nas_smart_hard_disk [2022/01/07 14: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 ======
 +
 +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>S.M.A.R.T.]]** capabilities of a disk. **hdparm** is a command line interface to the Linux kernel SATA subsystem, including Advanced Power Management.
  
 ===== smartctl ===== ===== smartctl =====
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 /usr/share/smartmontools/smartd-runner #DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
- 
-# Send an email test to <root@localhost> on daemon start. 
-/dev/sda -d sat -m root@localhost -M test 
  
 # Use the suggedested subset of checks, instead of the '-a'. # Use the suggedested subset of checks, instead of the '-a'.
 +# 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 'failure' of any Usage Attributes     -f \                # Check for 'failure' of any Usage Attributes
     -n standby,336 \    # Skip smartd checks during standby (max 336 times, add ',q' for quiet)     -n standby,336 \    # Skip smartd checks during standby (max 336 times, add ',q' for quiet)
-    -W 0,50,60 \        # Report Temperature Celsius WARN=50, CRIT=60 (SMART attribute 194)+    -W 0,50,60 \        # Temperature (SMART att. 194): WARN=50 (log), CRIT=60 (mail)
     -s S/../../1/23 \   # Schedule a short Self-Test at 23:00 of every monday.     -s S/../../1/23 \   # Schedule a short Self-Test at 23:00 of every monday.
 +    -s O/../.././21 \   # Schedule an Offline Immediate Test every day at 21:00.
     -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 63: Line 70:
   * **Long Self-Test**: like short test, but with no time restriction and Read/Verify spans the entire disk. It requires tens of minutes to several hours to complete, can be given during normal system operation.   * **Long Self-Test**: like short test, but with no time restriction and Read/Verify spans the entire disk. It requires tens of minutes to several hours to complete, can be given during normal system operation.
   * **Conveyance Test** (ATA only): a few minutes to check for damages incurred during transporting of the device. It requires a few minutes to complete.   * **Conveyance Test** (ATA only): a few minutes to check for damages incurred during transporting of the device. It requires a few minutes to complete.
 +  * **Offline Immediate  Test**: The results of this test is actually the data collection reflected in the values of the SMART Attributes. Thus, if problems or errors are detected, the values of these Attributes will go below their failure thresholds; some types of errors may also appear in the SMART error log. These are visible with the ''-A'' and ''-l error'' options respectively.
 +
 +If you want to display the log e.g. of self-test executed, run:
 +
 +<code>
 +smartctl -d sat -l selftest /dev/sda
 +</code>
 +
 +The output is something like this:
 +
 +<code>
 +=== START OF READ SMART DATA SECTION ===
 +SMART Self-test log structure revision number 1
 +Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
 +# 1  Short offline       Completed without error       00%       525         -
 +# 2  Short offline       Completed without error       00%       377         -
 +# 3  Short offline       Completed without error       00%       252         -
 +# 4  Conveyance offline  Completed without error       00%       252         -
 +</code>
 +
  
 ===== hdparm ===== ===== hdparm =====
Line 72: Line 99:
 </code> </code>
  
-Regardless of the APM level, we can set the hard disk **Standby timer** (spindown) after 30 minutes of inactivity. See **man hdparm** for explanation of the number following the **%%-S%%** option (it seems that there is not way to know the timeout once you have set it):+Regardless of the APM level, we can set the hard disk **Standby timer** (spindown) after 30 minutes of inactivity. See **man hdparm** for explanation of the number following the **%%-S%%** option (the granularity of the timer up to 20 minutes is 5 seconds, above that threshold it is 30 minutes). It seems that there is not way to know the timeout once you have set it.
  
 <code> <code>
Line 92: 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 131: Line 160:
  
   * **updatedb** - Execute by the **/etc/cron.daily/mlocate** cronjob, will update the database of files stored on hard disk. Add the directory to be skipped into **/etc/updatedb.conf**.   * **updatedb** - Execute by the **/etc/cron.daily/mlocate** cronjob, will update the database of files stored on hard disk. Add the directory to be skipped into **/etc/updatedb.conf**.
-  * **smartctl** - Reading SMART attributes (e.g. disk temperature, errors log) awake the disk. Hou may have periodic checks executed by **snmpd**, etc.+  * **smartctl** - Reading SMART attributes (e.g. disk temperature, errors log) awake the disk. You may have periodic checks executed by **snmpd**, etc.
  
 ===== Web References ===== ===== Web References =====
  
   * **[[https://www.thomas-krenn.com/en/wiki/SMART_tests_with_smartctl|SMART tests with smartctl]]**   * **[[https://www.thomas-krenn.com/en/wiki/SMART_tests_with_smartctl|SMART tests with smartctl]]**
 +  * **[[https://serverfault.com/questions/275364/get-drive-power-state-without-waking-it-up/|Get drive power state without waking it up]]** 
 +  * **[[https://unix.stackexchange.com/questions/366438/hard-disk-not-going-to-standby-automatically|Hard disk not going to standby automatically]]** 
 +  * **[[https://serverfault.com/questions/305847/how-to-determine-disc-spindown-time|How to determine disc spindown time]]**
  
doc/appunti/hardware/raspberrypi_nas_smart_hard_disk.1615389910.txt.gz · Last modified: 2021/03/10 15:25 by niccolo