zpool parallel disk spinup daemon

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

geppi

New Member
Jan 24, 2013
17
6
3
Disk power management in Solaris is a nice feature for home servers to spare energy and cost but it is almost impractical for larger zpools. The problem is that the disks of a sleeping pool are powered up sequentially instead of all in parallel. While this staggered spinup of a zpool could be a most welcome behavior for systems with a small PSU it is annoying if you have sufficient peak power on hand.

As an example: a zpool with 8 x 3TB WD Red disks takes over 55 seconds to spinup.

I have written a small daemon that monitors device power up and initiates the parallel spinup of all disks belonging to a zpool if it detects the wake up of one member disk.
It is written in Perl and the monitoring is performed via dtrace and doesn’t have any measurable performance impact.

The spinup of the afore mentioned zpool takes under 7 seconds now.

The daemon is available at:

geppi/zpool_spinup · GitHub

The prerequisites are:

1. A PSU that is powerful enough to support the parallel spinup of all disks in your biggest zpool.
2. The sdparm utility (available at Linux sdparm utility ).
3. The ability to read the installation instructions and type on the command line.
 
  • Like
Reactions: MatrixMJK