ZFS - Building, Testing, and Benchmarkingby Matt Breitbach on October 5, 2010 4:33 PM EST
Other Cool ZFS Features
There are many items that we have not touched on in this article, and those are worthy of mentioning at this time simply because they are enterprise features that are available with OpenSolaris and with Nexenta. These are features that the Promise M610i cannot compete with in any way.
Block Level Deduplication - ZFS can employ block level deduplication, which is to say it can detect identical blocks, and simply keep one copy of the data. This can significantly reduce storage costs, and possibly improve performance when the circumstances allow. One group that recently deployed a Nexenta instance had originally configured the system for 2TB of storage. They were using 1.4TB at the time and wanted to have room to grow. By enabling deduplication they were able to shrink the actual used space on the drives to just under 800GB. This also has implications when randomly accessing data. If you have multiple copies of the same data spread out all over a hard drive, it has to seek to find that data. If it's actually only stored in one place, you can potentially reduce the number of seeks that your drives have to do to retrieve the data.
Compression - ZFS also offers native compression similar to gzip compression. This allows you to save space at the expense of CPU and memory usage. For a system that is simply used for archiving data, this could be a great money and space saver. For a system that is being actively used as a database server, compression may not be the best idea.
Snapshot Shipping - OpenSolaris and Nexenta also offer snapshot shipping. This allows you to snapshot the entire storage array and back it up via SSH to a remote server. Once you ship the initial snapshot, only incremental data changes are shipped, so you can conserve bandwidth while still replicating your data to a remote location. Keep in mind that this is not a block level replication, but a point in time snapshot, so as soon as the snapshot is taken, any new data is not shipped to the remote system.