What is the difference between block I/O and file I/O and what are the advantages of both.
Block I/O is the basic mechanism for DISK access using the SCSI protocol as the command set. Block I/O is fast and data can be transmitted in various block sizes like 2K, 4K, 8K, 16K, 64K, 128K, etc. Block I/O can be done over various transports. Parallel SCSI cables, copper fiber, optical fiber and even encapsulated and transmitted over IP networks.
- Block I/O is what is used to talk to DISKS.
- File I/O is what is used to talk to FILES.
File I/O usually uses either NFS or CIFS/SMB access protocols over TCP/IP Ethernet. File I/O has locking mechanics so that data may be shared between different OS types. (Like Unix and NT) File I/O usually uses TCP/IP as the transport mechanism and thus must conform to the seven-layer "stack." This means each piece of data needing transport must traverse the entire IP stack before going "over the wire." This causes overhead and slows things down a bit. IP stack latency can be minimized by using a TOE- (TCP/IP offload engine) based network adapter card. The "TOE" offloads the CPU cycles needed to transmit the data through the IP stack from the server CPU to the NIC itself.
Advantages of file I/O are ease of implementation, cost and the ability to "share" files. The disadvantages are speed and latency and the fact that many applications cannot be "installed" on a network share.
Advantages of block I/O are speed, minimal latency and high availability. The disadvantages of block I/O are no inherent file sharing capability, complexity and cost.
This was first published in April 2002