The easiest way using ZFS for a Share is to create an iSCSI target. With iSCSI you can have all the ZFS advantages in Windows. In this post I will show you how to create it on FreeBSD and use it in Windows.

At first you have to create a ZFS block device for the LUN. This is needed because iSCSI is accessing the disk block based.

zfs create -V 3T tank/backup  

For exporting this filesystem via iSCSi you have to install istgt from ports. At first you should update your ports collection and then run the installation.

portsnap fetch && portsnap update  
cd /usr/ports/net/istgt  
make install clean  

After the installation successfully finished you have to create the config files and edit them. You actually don’t have to create them, you can simply copy the samples.

cd /usr/local/etc/istgt/  
cp auth.conf.sample auth.conf  
cp istgt.conf.sample istgt.conf  
cp istgtcontrol.conf.sample istgtcontrol.conf  

Now change your servers IP address and the path to the created ZFS in the istgt.conf

[PortalGroup1]
…
Portal DA1 192.168.10.1:3269 <= Change to your IP  
…
[InitiatorGroup1]
…
Netmask 10.101.230.16/24 <= Change to your IP and Netmask  
…
[LogicalUnit0]
…
LUN0 Storage /dev/zvol/tank/bankup  
…

Finally lets start the is daemon

/usr/local/etc/rc.d/istgt start

If you are using Windows Server 2003 you have to install first the iSCSI Initiator.