|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI/VI/TCPI have sent out a proposal (draft-csapuntz-iscsivi-00.txt) that argues for running iSCSI on top of the VI/TCP protocol. I argue that there are a couple principal reasons for doing this. 1) Generic RDMA infrastructure. A single NIC that support VI/TCP RDMA acceleration could accelerate SCSI, DAFS (http://www.dafscollaborative.org/), Oracle, and other message+RDMA protocols w/o the need for specific protocol processing in the NIC. 2) Reduce the need for TCP reassembly memory Why? For performance, TCP maintains a window at least as large as the application buffers awaiting data. The window buffer must be separate memory than the application buffers if the receiver cannot figure out which application buffers TCP payloads belongs to. Thus, buffering requirements are potentially up to 2x that of the base application. - VI/TCP could align its headers at the start of each TCP segment payload [D] This is not currently well discussed in the spec. However, there are a couple things techniques that could be used to indicate alignment. For one, a TCP option could be used to indicate that the sender will send aligned packets. As added check, each VI frame could end in a CRC. Failure of the CRC indicates loss of synchronization. Also, there are some fields in the VI/TCP header that should make sense (like the Segment Length < MTU). - The VI/TCP header, which appears in each segment, could direct the payload of the segment to the correct application-layer buffer (for both messages and data) 3) More exact flow control VI/TCP provides flow control on messages separate from data buffers. It is worthwhile to note that iSCSI could be modified to incorporate similar features to VI/TCP and do #2 and #3. Others have stated some valid concerns with iSCSI/VI: >- It adds another protocol layer (VI/TCP) >- it adds another dependency (VI/TCP is not a standard yet) > also heard, don't base new technology on new technology >- all SCSI class drivers and file systems that I'm aware of operate in kernel >space. So what advantage does VI bring when the app must enter kernel space >to perform the I/O anyway? RDMA can improve kernel I/O performance too. >- it adds more complexity to developing the iSCSI accelerator to add yet >another protocol layer. To this, I would answer that it allows the construction of a potentially simpler accelerator that handles more protocols. > There already is a SCSI/VI. Our group is looking for the best way to do SCSI over IP. For a long time, members of this group have though that some kind of RDMA layer would be valuable for building simpler NICs. VI/TCP provides just that sort of RDMA layer. SCSI/VI was born out of a different set of requirements than iSCSI. However, it may turn out that analysis of the problem brings us to a very similar solution. At the end of the day, this argument comes down to whether folks think that an RDMA mechanism is the right way to go and what RDMA scheme over IP is best. A suitably generic RDMA scheme allows innovation in protocol design, without worrying that the new protocol will be hopelessly slow in legacy hardware. It decreases the pressure to load features into old, hardware-supported protocols instead of introducing new ones. It destroy an artificial barrier (host overhead) that prevents IP from scaling to fit all our needs. -Costa
Home Last updated: Tue Sep 04 01:08:05 2001 6315 messages in chronological order |