Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
parkverbot(8)		    Parkverbot User Reference		   parkverbot(8)

Name
     parkverbot -- daemon to inhibit hard disk head parking

Synopsis
     parkverbot [-r kbytes] [-t secs] device...

Introduction
     Rotational hard disks have a controversial (mis)feature which automatically
     unloads the read/write heads during perceived inactivity, usually within 10
     seconds. Western Digital calls it "Intellipark", but the problem is present
     in  other	manufacturers'	disks  as  well,  and  goes back to at least the
     mid-2000s.

     Frequent parking leads to noticable latency on wakeup, and the hard retrac-
     tion is seen as an impediment to disk life.  Even with various utility pro-
     grams, this parking feature is not reliably deactivatable.  (See  "Compari-
     son" section below.)

Description
     The  "parkverbot"	daemon	will issue small read requests periodically to a
     random location on disk in an effort to reset the inactivity timer  in  the
     hardware  and so prevent the dreaded head unloading. As such, its operation
     is non-destructive and interoperable across different brands of hard drives
     and transports.

     The current block reading algorithm works reasonably well in practice:  the
     worst observed head parking rate was about 3 unloads/day (0.125/hour); best
     figures hover around 0.5 unloads/day (0.021/hour).

Options
     -b size
	    The size of a read request, in kilobytes (defaults to 64 KB).

     -r size
	    The  guard	window size (defaults to 16 MB). When requesting a block
	    off the disk, the hardware might choose to cache more  parts,  since
	    it has to hover anyways and wait over a particular track for the de-
	    sired  sector.  If the next random block we choose happens to be al-
	    ready cached because of that, the head unload timer will not be  re-
	    set.  To  avoid  this,  if the new random location falls within size
	    kilobytes, we shuffle out a new location and retry.

     -t secs
	    The interval in which to request blocks. The default is  4	seconds,
	    and  is  sort of the lowest denominator across all the disks person-
	    ally encountered not to go into sleep.

     The defaults for -b and -t have little effect on energy use,  the	prospect
     here is just +1% energy use for a 2.5' disk. (For details, feel free to see
     the source file of this manpage.)

Configuration
     You can choose between running one parkverbot instance per disk, or one in-
     stance for all disks (reading them is serialized however).

     Two  systemd service files are shipped with the package. One is the service
     template file "parkverbot@.service", which allows to start  one  parkverbot
     daemon instance per disk by way of:
       systemctl enable/start/stop/status/disable parkverbot@dev-sda.service

     The other is the normal service file "parkverbot.service" for a single dae-
     mon  for  one or more disks, the list of which is to be set in /etc/syscon-
     fig/parkverbot in the PARKVERBOT_DISKS variable.

     If you do not have systemd, you can still start the  daemon  in  any  other
     fashion, such as from sysvinit's /etc/init.d/boot.local.

Naming
     The name is the German word for a "no parking" zone.

S.M.A.R.T. info
     Unloading	of the heads is measurable by S.M.A.R.T. attribute(s). Some disk
     models used number 193, others 225. Both are labeled "Load_Cycle_Count".

Comparison with other utilities
     The "wdidle3" proprietary utility uses a vendor-specific command  (VSC)  to
     change  the - infamous - "idle3" timer which controls the parking time. How
     well this works  with  non-WD  drives  is	unknown;  if  the  VSC	modifies
     firmware, it is probably a very bad idea. The program also requires MS-DOS,
     which  is	increasingly hard to run on contemporary x86-PC systems, and to-
     tally inacceptable on non-x86/non-PC systems. Its effectiveness from within
     a virtual machine or emulator using disk/block device  passthrough  is  not
     known either.

     The  `hdparm  -B`	Linux command may be used to set the APM (Advanced Power
     Management) level. However, disks often report to not support this setting,
     or if they do, have no effect on unloading, but only acoustic settings. hd-
     parm also does not work with SCSI disks, SAS disks, disks in enclosures at-
     tached through USB translation layer, or SATA disks on a SAS plane.  (There
     are dumps for developers in the source distribution.)

     "idle3-tools" is something that I only found  recently  (2014),  though  it
     seems  to	exist for slightly longer than parkverbot. Like wdidle3, it uses
     the VSC.  (http://idle3-tools.sf.net/)

     "wdantiparkd" WD anti-intellipark daemon says it uses a write operation  on
     a	file. That is somewhat unfortunate, as layers of caching in both the op-
     erating system and disk may  lead	to  an	inactivity  beyond  the  parking
     threshold on the actual head. (http://sagaforce.com/sound/wdantiparkd/)

     parkverbot  -  this daemon - does normal read requests on the raw block de-
     vice.  This means there will be no destructive  operations,  no  additional
     degradation of the medium, and allows it to be usable with all kinds of ro-
     tating  hard disks no matter the manufacturer or interface type. Chunks are
     read from random new locations far enough from the old one in an attempt to
     evade caches. This will manifest in a short flash of the disk LED	(if  you
     have  one)  every	now  and then.	By default, one chunk is requested every
     four seconds, so that two are within 8 seconds (the common WD idle3 time).

Parkverbot project		   2012-05-14			   parkverbot(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=parkverbot&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help