Quote:
Originally Posted by DraconianTimes
About six months ago I applied the ZFS config I described above to the actual hardware, running FreeBSD 8.1. Current usage is:
Code:
Filesystem Size Used Avail Capacity Mounted on
/dev/ad1s1a 3.9G 266M 3.3G 7% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad1s1d 9.7G 12K 8.9G 0% /tmp
/dev/ad1s1e 58G 410M 53G 1% /usr
/dev/ad1s1f 150G 116G 22G 84% /var
tank 689G 22K 689G 0% /tank
tank/Backups 689G 18K 689G 0% /tank/Backups
tank/MyStuff 690G 1.1G 689G 0% /tank/MyStuff
tank/Warehouse 1.6T 909G 689G 57% /tank/Warehouse
My experience with the setup has been very good, with NFS access provided to a variety of machines over my network. The only thing I have found is that the system can be quite slow at times, I think that this is down to it being ZFS overhead etc but I am investigating this. That said, I've had no crashes or errors. I have been keeping monthly rsync'd backups to several large external hard disks just in case.
|
NFS uses a lot of synchronous writes. It's just the nature of the protocol. In order to speed up sync writes, you need to add a separate log device (SLOG or "log" vdev) to the pool. That way, sync writes are written to the log; the log says "written" and ZFS carries on; later, the data in the log is written out to the pool.
The only time data is read from the log device is during the boot process, to check for data that has not yet been written out to the pool.
Note: ZFS versions prior to v19 could not import a pool with a dead/missing log device, nor could they remove a log device, so you
MUST use a mirrored log device in FreeBSD 7.x/8.x (which only have ZFSv15).
If you add a single log device to a ZFSv15 pool, and that log device dies, your pool will be unimportable. All the data is there, but you can no longer access it.