Will Murnane wrote:
> On Tue, Sep 30, 2008 at 21:48, Tim <[EMAIL PROTECTED]> wrote:
>   
>>> why ZFS can do this and hardware solutions can't (being several
>>> unreliable subsystems away from the data).
>>>       
>> So how is a Server running Solaris with a QLogic HBA connected to an FC JBOD
>> any different than a NetApp filer, running ONTAP with a QLogic HBA directly
>> connected to an FC JBOD?  How is it "several unreliable subsystems away from
>> the data"?
>>
>> That's a great talking point but it's far from accurate.
>>     
> Do your applications run on the NetApp filer?  The idea of ZFS as I
> see it is to checksum the data from when the application puts the data
> into memory until it reads it out of memory again.  Separate filers
> can checksum from when data is written into their buffers until they
> receive the request for that data, but to get from the filer to the
> machine running the application the data must be sent across an
> unreliable medium.  If data is corrupted between the filer and the
> host, the corruption cannot be detected.  Perhaps the filer could use
> a special protocol and include the checksum for each block, but then
> the host must verify the checksum for it to be useful.
>
> Contrast this with ZFS.  It takes the application data, checksums it,
> and writes the data and the checksum out across the (unreliable) wire
> to the (unreliable) disk.  Then when a read request comes, it reads
> the data and checksum across the (unreliable) wire, and verifies the
> checksum on the *host* side of the wire.  If the data is corrupted any
> time between the checksum being calculated on the host and checked on
> the host, it can be detected.  This adds a couple more layers of
> verifiability than filer-based checksums.
>
> Will
>   

To make Will's argument more succinct (<wink>), with a NetApp, 
undetectable (by the NetApp) errors can be introduced at the HBA and 
transport layer (FC Switch, slightly damage cable) levels.   ZFS will 
detect such errors, and fix them (if properly configured). NetApp has no 
such ability.

Also, I'm not sure that a NetApp (or EMC) has the ability to find 
bit-rot.  That is, they can determine if a block is written correctly, 
but I don't know if they keep the block checksum around permanently, 
and, how redundant that stored block checksum is.  If they don't 
permanently write the block checksum somewhere, then the NetApp has no 
way to determine if a READ block is OK, and hasn't suffered from bit-rot 
(aka disk block failure).  And, if it's not either multiply stored, then 
they have the potential to lose the ability to do READ verification.  
Neither are problems of ZFS.


In many of my production environments, I've got at least 2 different FC 
switches between my hosts and disks.  And, with longer cables, comes 
more of the chance that something gets bent a bit too much. Finally, 
HBAs are not the most reliable things I've seen (sadly).

-- 
Erik Trimble
Java System Support
Mailstop:  usca22-123
Phone:  x17195
Santa Clara, CA
Timezone: US/Pacific (GMT-0800)

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to