I am unsure of which option to select when creating and attaching an ISCSI target to a Zvol in JovianDSS or creating a new ISCSI volume in DSS.
At the most basic level; with block-I/O, data is accessed by requesting a number of "blocks" from a device. With file-I/O, data is accessed by requesting a file from the file-system, using an index or table.
In most cases, File I/O provides some performance increase due to caching; however, when multiple hardware initiators are configured Block I/O can provide the highest Read/Write speed.
First, lets review options available to you in JovianDSS.When configuring a Zvol in JovianDSS and attaching a target you are presented with multiple options.
Write-through, Write-back, and Read-Only considerations
With the Write-through policy data is written to both RAM and disk simultaneously. This offers the most resiliency in the event of a power loss but suffers some performance impact.
With the Write-back policy, data is written only to RAM and then to DISK. I/O does not wait for or confirm data has been written to disk before processing then next command.
Data on this target will only be available for read operations.
Block I/O VS File I/O
Block I/O is a raw Logical Volume which is formatted only by the initiator side. I/O performance should be faster as there is no delay in accessing the file system layer.
File I/O delivers each file working on a formatted Logical Volume, this gives additional benefits of the filesystem caching part of the data. Not initialized, File I/O provides another benefit of “organized writing”.
With JovianDSS, it is not suggested to use File I/O for HA (Highly Available) clustered solutions, as this may put your data at risk and cause instability during failover operations.
When configuring DSSv7 ISCSI targets, you will be presented with File I/O vs Block I/O while configuring your ISCSI volume.
File IO without initialization
File IO with initialization