ZFS pools & power loss - you won't lose data

Any vendor that causes a drive to lie in response to SYNCHRONIZE CACHE deserves to have their right to use any T10-controlled logos or marks (eg: SAS/SCSI/etc) pulled.

On a related note, the manufacturer that I still own a drive from that did that in the past is no longer in business, having filed for bankruptcy and their assets sold off. :wink:

The SYNCHRONIZE CACHE (10) command (see table 170) requests that the device server ensure that the specified logical blocks have their most recent data values recorded in non-volatile cache and/or on the medium, based on the SYNC_NV bit. Logical blocks include user data and, if the medium is formatted with protection information enabled, protection information.

HDDs report a “write OK” to a regular asynchronous write, but ZFS is specifically sending that SYNCHRONIZE CACHE and waiting for the OK response to certain bits. So we’ll let it handle async writes with the volatile cache and its own firmware spooling it down to disk, but ZFS will eventually force the issue of “hey if you haven’t flushed that by now we’re gonna sit here and wait until you do” when a transaction group is closed off.

3 Likes