SAS, SATA, and iSCSI – A Tutorial

Share on Google+Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestEmail this to someone

Yesterday there was a great piece over at TechRepublic on the confusing intersection of SAS, SATA and iSCSI arrays. For anyone who has ever had a difficult time understanding and differentiating these technologies, this is a very valuable resource. Excerpts are cross-posted below.

SATA and SAS are storage interface and bus types designed to aid in the movement of data from one place to another. Think of SAS and SATA as different kinds of computer interfaces, such as PCI Express, but there are actually multiple components that make up the overall SAS architecture.

  • Initiators. The initiator is the SAS controller to which SAS expanders or targets can be connected.
  • Expanders. Expanders sit between initiators and targets, but can also connect to other expanders, as you can see in Figure A. Expanders are sort of like network switches in that they can direct traffic and they provide the ability to scale the SAS architecture beyond single port limits.
  • Targets. A target is either a SAS drive or a SATA disk. SATA disks can be connected to SAS expanders and initiators, but do not perform quite as well as SAS disks.

Flowchart Outlining a SAS Setup

Each drive has its own host interface (SAS or SATA) which are connected to an initiator or an expander. The initiator, functioning as the system controller, communicates with the SSD using the appropriate commands as dictated by the host interface (again, SAS or SATA.)

In other words, the SSD functions no differently than a hard-disk in terms of how it the interfaces (SAS or SATA) work. It simply utilizes a different method of storing the data.

Now… let’s introduce iSCSI

Image of SAS and SATA Disks with iSCSI Storage Array

The above image includes an iSCSI initiator in the host server:

It’s either hardware- or software-based and controls communications with the Ethernet-based storage array. By virtue of the fact that the system is using Ethernet for storage traffic, speeds of both 1 Gbps and 10 Gbps are supported. In an iSCSI storage network, SCSI commands originate on the host, at which point, they are encapsulated inside TCP/IP packets. These TCP/IP packets then traverse the Ethernet network just like any other network traffic. At the storage array side of the equation, these packets are received and the SCSI commands are extracted from the TCP/IP packet and passed on to the storage device for execution. Data that is transmitted back to the host undergoes this same encapsulation process.

Basically, iSCSI adds some extra processor load because of the encapsulation process which takes time. We can think of iSCSI as a “storage transportation method.” In that sense, they resemble SATA and SAS in dealing with how the data is moved around (vs. SSD which deals with how the data is stored.) While this adds resource consumption, the author notes that it also provides a good method to decouple storage from the host, allowing for the share of storage among multiple hosts, as shown below:

Diagram Showing Storage Share Among Multiple Hosts with iSCSI

However, you might be wondering exactly how does iSCSI compare to SATA and SAS. The author begins to address this.

iSCSI is the storage transport but, at present, there is no such thing as an “iSCSI disk.” iSCSI arrays use SAS and SATA disks (which can also be SSDs) for storage, but the data is transported to hosts using iSCSI.

While SAS and SATA or networking interfaces, iSCSI is a networking protocol that can run across the infrastructure. In that sense, iSCSI is complementary, not contradictory, to SAS and SATA.


Check out the original article over at TechRepublic.

Comments

  1. MySchizoBuddy says:

    What is the difference between your second diagram and a NAS device.

  2. Colin Cronin says:

    The hardware setup is not much different. The primary difference is in how the data as stored. As you probably know, NAS stores in a file format, while iSCSI-based solutions are SAN which store data in block format. A SAN is typically better suited for enterprise environments that require greater scalability and performance. You can imagine that if you were a large organization needing lots of storage (let’s say 20+TB) that attempting to install and manage a large number of NAS devices wouldn’t be the best option. In this case, you could look at using a single SAN disk array and connect that to your host server.

    There is lots of information out there on SAN (and specifically iSCSI-based SAN) vs. NAS

Leave a Reply