Talk about a brief history of the development of iSCSI storage protocols
The full name of iSCSI is The Internet Small System Computer Interface, and you can see that iSCSI is Ethernet-based SCSI. The full name of SCSI is The Small Computer System Interface, which is the interface of a small computer system. Many devices are based on SCSI to interact with computers, such as hard drives, floppy drives, optical drives, printers, scanners, and so on.
Let's move on to iSCSI-related content.
1. SCSI protocol
SCSI was first invented in 1982 and has been followed by several different standards, such as SCSI-1, SCSI-2 and SCSI-3. The interfaces of the hardware vary from standard to standard. The figure is a different SCSI interface.
SCSI is not only an interface, but also a complete set of protocols, which implement the protocol of communication between the computer's host and peripherals. This allows the computer host to interact with these peripherals. This compares typical interactive data such as hard drives and optical drives.
2. iSCSI Protocol Using this thick benzene cable to transmit data is not a way, so iSCSI is available. iSCSI transmits SCSI instructions based on Ethernet, which is very convenient for connection and easy access to natural devices.
How does Ethernet carry SCSI instructions? In fact, the principle is very simple, that is, the SCSI instructions are encapsulated as packets, and then transmitted through the TCP protocol. As shown in the figure, the so-called iSCSI protocol can be understood as an application layer protocol, the content of which is a variety of SCSI instructions.
We know that the TCP protocol is CS architecture, iSCSI protocol is naturally CS architecture, iSCSI's overall architecture as shown in the figure. iSCSI is typically used to access storage devices, which are server-side and compute servers client-side. There are proper nouns in iSCSI, and client software is often referred to as intiator, i.e. launcher; The service-side software is called target, the targeter. Based on the iSCSI protocol, when a host connects to storage, a disk can be seen on the host, which is no different from the local disk.
This allows the file system to be formatted on the host side and the data to be placed on disk. When a disk is accessed, such as reading and writing, the read and write request is converted by the initiator into SCSI instructions sent to the server side, which parses and processes it and returns an answer to the initiator side.
Because protocols are Ethernet-based, a very complex network can be formed between hosts and storage through switches. Host access to storage resources becomes very flexible.
3. ISCSI based on RDMA The iSCSI protocol is already very good, but because Ethernet-based protocols require copy memory in both user and kernel states, this not only consumes CPU resources, but also leads to increased IO latency. To further improve the performance of iSCSI, an iSCSI based on RDMA, or iSER, is available.
The full name of iSER is iSCSI Extensions for RDMA, which can be seen as an iSCSI extension protocol based on RDMA. It mainly uses RDMA technology, essentially encapsulated SCSI instructions. As shown in the figure, when data is written on the initiator side, the data is sent directly from that end's memory to the CPU on the target side for processing, which is eventually persisted into the targeter's persistent storage. That is, the processing of the initiator-side CPU is skipped.
Based on the above technology, the delay of the launcher access target has been greatly reduced, and the performance will naturally be improved accordingly.
4. Performance comparisonThere's a lot of crap ahead, what's the performance like? Let's look at the test data for SNIA. The following is data for IO response latency, which can be seen to significantly decrease the delay based on iSER.
In terms of bandwidth, iSER-based increases significantly. Therefore, the current iSCSI based on RDMA technology has a very clear advantage in terms of performance.
This paper briefly introduces the history of iSCSI, from SCSI to Ethernet-based iSCSI, and finally introduces iSCSI based on RDMA technology. Through the introduction of this article, I hope you have some understanding of iSCSI.