I have a 2.5Tb Solaris (nv71x) box, and the five disks which create the primary pool are joined together in RAID-Z. On that pool I have created five filesystems:
- default – just a vanilla filesystem
- copies-2 – set copies=2 for data dittoblocks
- copies-3 – copies=3
- compress-gzip – use gzip compression
- compress-lzjb – use lzjb compression
…and I have exported them all over my gigabit subnet. On the G5 iMac (MacOS 10.4.10) I mount the filesystems by means of the following script:
NFSROOT=/NFS
test -d $NFSROOT || mkdir $NFSROOT || exit 1
chmod 755 $NFSROOT
NFSOPTS="-o soft,intr,nfsv3,resvport,tcp,rwsize=32768,readahead=8"
while read NFSMOUNT
do
MOUNTPOINT="$NFSROOT/`basename $NFSMOUNT`"
test -d $MOUNTPOINT || mkdir $MOUNTPOINT || exit 1
chmod 755 $MOUNTPOINT
mount_nfs $NFSOPTS $NFSMOUNT $MOUNTPOINT || exit 1
done <<EOF
192.168.1.4:/export/compress-gzip
192.168.1.4:/export/compress-lzjb
192.168.1.4:/export/copies-2
192.168.1.4:/export/copies-3
192.168.1.4:/export/default
EOF
…and then opening “/NFS” on my Mac gives me a nice series of volume/mountpoints on my desktop.
In order to try and improve performance, I have edited /System/Library/StartupItems/NFS/NFS and increased the number of nfsiod from 4 to 6, but that is all I have done so far.
Here’s the thing: taking a sizeable test file (a 700Mb Ubuntu “.iso” file) from my desktop and dragging it to each of the volumes in turn, I get differing results:
| filesystem | success? | error |
|---|---|---|
| default | yes | – |
| compress-gzip | no | aborts after 24Mb, gives Finder “Error Code -36” |
| compress-lzjb | yes | – |
| copies-2 | yes | – |
| copies-3 | yes | – |
I shall post some speed-tests later, but for the moment was wondering whether anyone knew what this particular error message might mean? A scan of the Apple website suggests a pile of stuff to do with SMB authentication, but I am presuming that some manner of asynchronous I/O failure would be a better bet?
In the meantime it looks like I should avoid GZIP mountpoints; presumably either the delays are too long, or there is something different showing up in the I/O semantics to a GZIP filesystem?
The funny thing is: the Ubuntu “.iso” file is not really very compressible, so in theory ZFS should have given up and just copied the darned thing…
Update: I just got 70-odd megabytes of the .ISO file to copy to the GZIP partition by doing it whilst a copy to another filesystem was ongoing; when I manually aborted the latter then the former died with “Error -36” again, a few seconds later.
This smells like a time-race.
Leave a Reply