Ross Walker writes:

 > On Aug 3, 2010, at 12:13 PM, Roch Bourbonnais <roch.bourbonn...@sun.com> 
 > wrote:
 > 
 > > 
 > > Le 27 mai 2010 à 07:03, Brent Jones a écrit :
 > > 
 > >> On Wed, May 26, 2010 at 5:08 AM, Matt Connolly
 > >> <matt.connolly...@gmail.com> wrote:
 > >>> I've set up an iScsi volume on OpenSolaris (snv_134) with these commands:
 > >>> 
 > >>> sh-4.0# zfs create rpool/iscsi
 > >>> sh-4.0# zfs set shareiscsi=on rpool/iscsi
 > >>> sh-4.0# zfs create -s -V 10g rpool/iscsi/test
 > >>> 
 > >>> The underlying zpool is a mirror of two SATA drives. I'm connecting from 
 > >>> a Mac client with global SAN initiator software, connected via Gigabit 
 > >>> LAN. It connects fine, and I've initialiased a mac format volume on that 
 > >>> iScsi volume.
 > >>> 
 > >>> Performance, however, is terribly slow, about 10 times slower than an 
 > >>> SMB share on the same pool. I expected it would be very similar, if not 
 > >>> faster than SMB.
 > >>> 
 > >>> Here's my test results copying 3GB data:
 > >>> 
 > >>> iScsi:                  44m01s          1.185MB/s
 > >>> SMB share:              4m27            11.73MB/s
 > >>> 
 > >>> Reading (the same 3GB) is also worse than SMB, but only by a factor of 
 > >>> about 3:
 > >>> 
 > >>> iScsi:                  4m36            11.34MB/s
 > >>> SMB share:              1m45            29.81MB/s
 > >>> 
 > > 
 > > <cleaning up some old mail> 
 > > 
 > > Not unexpected. Filesystems have readahead code to prefetch enough to 
 > > cover the latency of the read request. iSCSI only responds to the request.
 > > Put a filesystem on top of iscsi and try again.
 > > 
 > > For writes, iSCSI is synchronous and SMB is not. 
 > 
 > It may be with ZFS, but iSCSI is neither synchronous nor asynchronous is is 
 > simply SCSI over IP.
 > 

Hey Ross,

Nothing to do with ZFS here, but you're right to point out
that iSCSI is neither. It was just that in the context of
this test (and 99+% of iSCSI usage) it will be. SMB is
not. Thus a large discrepancy on the write test.

Resilient storage, by default, should expose iSCSI channels
with write caches disabled.

 > It is the application using the iSCSI protocol that
determines whether it is synchronous, issue a flush after
write, or asynchronous, wait until target flushes.
 > 

True.

 > I think the ZFS developers didn't quite understand that
and wanted strict guidelines like NFS has, but iSCSI doesn't
have those, it is a lower level protocol than NFS is, so
they forced guidelines on it and violated the standard. 
 > 
 > -Ross
 > 

Not True. 


ZFS exposes LUNS (or ZVOL) and while at first we didn't support
DKIOCSETWCE, we now do. So a ZFS LUN can be whatever you
need it to be.

Now in the context of iSCSI luns hosted by a resilient
storage system, enabling write caches is to be used only in
very specific circumstances. The situation is not symmetrical
with WCE in disks of a JBOD since that can be setup with
enough redundancy to deal with potential data loss. When
using a resilient storage, you need to trust the storage for
persistence of SCSI commands and building a resilient system
on top of write cache enabled SCSI channels is not trivial.





Then Matts points out

  As I indicated above, there is a mac filesystem on the iscsi volume.
  Matt. 


On the read side, single threaded performance is just very much controled by
the readahead. Each filesystem will implement something
different, the fact that you got 3X more throughput with SMB
that with the Mac (HSFS+?) simply means that SMB had a 3X
larger readahead buffer than HSFS.

-r

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

Reply via email to