[OpenIndiana-discuss] ISCSI SSD Performance

Sašo Kiselkov skiselkov.ml at gmail.com
Sun Feb 17 12:02:54 UTC 2013


On 02/17/2013 04:38 AM, Grant Albitz wrote:
> I just wanted to add that when I create a pool it is using ashift 9. Arent all ssds 4k drives at this point?

In file-based datasets, ZFS uses a variable block size which
automatically adjusts to the size of the write operation (from 512-bytes
to 128k). If multiple writes happen in succession, ZFS coalesces them
into as big a block as possible. Volume datasets, on the other hand, use
a fixed block size (typically 8k).

Now the filesystem on the source file system is also block oriented, so
it never writes less than its minimum block size, but will also never
tend to want to write any more (most filesystems in the world are
fixed-blocksize, certainly NTFS and Ext3/4 are). If you know the virtual
guest's filesystem block size, you can enforce an upper bound on ZFS in
your filesystem (if your VMDKs are disk-backed) or zvols (if your VMDKs
are volume-backed) like so:

# zfs set recordsize=<blocksize> <existing_fs_name>

or:

# zfs create -V <volsize> -o volblocksize=<blocksize> <new_zvol_name>

You said you use iSCSI, so you are most likely using zvols exported via
COMSTAR. In that case, you'll need to make sure the volblocksize on your
zvols matches the blocksize of your VMDKs at creation time -
unfortunately this can't be altered later on. You can view the
volblocksize of your zvol like this:

# zfs get volblocksize <zvol_name>

HTH.

--
Saso



More information about the OpenIndiana-discuss mailing list