iATA Kulveer Singh Kulveer.email@example.com
ATA Concepts • At the highest level, ATA is a family of interfaces for requesting services from I/O devices, including hard drives, tape drives, CD and DVD drives, printers, and scanners. • In ATA parlance, an individual I/O device is called a "logical unit" (LU). • ATA’s main advantage is using a logical addressing of data-blocks instead of the physical addressing of cylinders, head and sector. • This allow storage apps to be developed faster and to be reused when a new type of disk entered the market.
ATA Concepts(cont.) • ATA is a client-server architecture. • Clients of a ATA interface are called "clients". • clients issue ATA "commands" to request service from a logical unit( LU ). • The "device server" on the logical unit accepts ATA commands and executes them.
ATA Concepts(cont.) • A “ATA transport" maps the client-server ATA protocol to a specific interconnect. • clients are one endpoint of a ATA transport. The "server" is the other endpoint. • A server can have multiple Logical Units behind it. • Each Logical Unit has an address within a server called a Logical Unit Number( LUN )
ATA Concepts(cont.) • Command Descriptor Blocks (CDB) is the data structure used to contain the command parameters that are to be handed by an client to a server. • The CDB content and structure is defined by [SAM] and device-type specific ATA standards.
Parallel ATA • Traditional ATA coupled the protocol with the transport layer i.e. ATA commands were sent to ATA devices via the ATA-bus. • … a few years later, storage controllers in the “Open-Systems” arena have supported the ATA protocol, and have been attached to computers through the ATA parallel bus. • The ATA parallel bus gave a very high bandwidth for bursting writes for a number of ATA devices connected through the bus. • But, as things advanced in the storage world the Parallel ATA becomes a limiting factor.
Parallel ATA Limitation • Parallel ATA has very restrictive distance capabilities( a few meters only ). • Parallel ATA also limits the number of the connected devices( 8-16 ) • And like any other parallel bus interconnect the ATA parallel bus, has bandwidth limitations when more than one device try to get hold of the bus.
Parallel ATA Limitation • While all those limitations might seem acceptable when considering a work-station or a small server, they are very restricting limitations when considering an enterprise Storage Network where a few hundreds of storage devices are shared between many computers.
Fibre Channel • The protocol was developed at the late 80’ to be a very flexible, high-speed, scalable networking technology. • Many protocols were remapped to FC including: IP, ATM, ATA, Escon(Ficon) … • But, only the ATA mapping was widely adopted • In the mid 90’ it entered the storage world as a serial transport layer for ATA (fcp).
FC Problems: • Price is too high( 1000$ for a FC nic ) • Limited distance ( 10-50 KM ) • Interoperability – Products of different FC vendors don’t play together. • Isolated from IP network, a special(and expensive) switch is needed to connect • Another network to maintain( assuming the organization already have an IP network ) • Reinvents the wheel - a totally different set of protocols for communication, addressing, name-servers, managements
iATA • iATA is a mapping of ATA-3 to TCP, as a “ATA transport”. • It behaves as a Serial ATA transporter transferring ATA packets( read/write, data, status and control messages ) over a TCP stream. • The idea is extremely simple, use existing building blocks( ATA, TCP ) to implement another service.
iATA & IP Network • The protocol will use the existing ATA architecture and commands, and the existing TCP/IP transport layer. • Both these protocols are widely-deployed and well-understood. The thought is that using these mature protocols will entail a minimum of new invention, the most rapid possible adoption, and the greatest compatibility with Internet architecture, protocols, and equipment. • The iATA protocol MUST NOT require modifications to the current IP and Ethernet infrastructure to support storage traffic over TCP. • Nevertheless, the performance and security requirements ( not to mention the budget) of storage creates opportunities for improvement in security protocols and QoS implementations.
iATA and ATA • The iATA protocol MUST NOT require changes to the ATA-3 command sets and ATA client code except to reflect lengthier iATA server names and potentially lengthier timeouts. • All ATA devices types SHOULD be supported, but iATA main interest are disk and tape controllers • The iATA protocol MUST reliably transport ATA commands from the client to the server.
Request/Reply Fields • Features: Parameters for the command • Sector Count: Number of sectors that will be used • LBA: Logical Block Address of the starting sector that will be used • Device: Device selection and additional bits are reserved for future usage. • Command: Command code • Error: Bits indicating different errors • Status: Bits indicating status of the action
ATA Commands Control Commands Identify Device Flush cache: Set features Data Commands Read sectors Write Sectors
Identify Device IDENTIFY-DEVICE: This command is used to gather information from the device. Features ﬁeld in the request packet is used to specify the type of information requested. If the information cannot be returned within the Status ﬁeld of reply packet, a string for example, a data stream should be returned after the packet and the size of the data must be given in the Sector Count ﬁeld of the reply packet.
Flush Cache FLUSH-CACHE: This command is used to force the device to ﬂush its cache. If there is any data that needs to be written physically, the device should perform the writing of the data. This cache is nothing to do with the buﬀering mechanism of iATA protocol. The cache is device speciﬁc and thus any device that does not have an inner cache must reply to this command by saying that it is successfully completed.
Features SET-FEATURES: This command is used to modify device parameters. Features ﬁeld in the request packet is used to specify the parameter that will be modiﬁed. Similarly, Sector Count and LBA ﬁelds are used to specify the value of that parameter.
Read Command READ-SECTORS: This command is used to read one or more sectors from the device. After the reply packet, the device must send the data sector by sector as a stream. Size of the data stream can be calculated from the Sector Count ﬁeld.
Write Command WRITE-SECTORS: This command is used to write one or more sectors to the device. After the request packet, the host must send the data sector by sector as a stream. Size of the data stream can be calculated from the Sector Count ﬁeld.