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 _______________________________________________ OpenIndiana-discuss mailing list [email protected] http://openindiana.org/mailman/listinfo/openindiana-discuss
