ATA over Ethernet
From Wikipedia, the free encyclopedia
ATA over Ethernet (AoE) is a network protocol developed by the Brantley Coile Company[1], designed for simple, high-performance access of SATA storage devices over Ethernet networks. It gives the possibility to build SANs with low-cost, standard technologies.
AoE does not rely on network layers above Ethernet, such as IP and TCP. In this regard it is more comparable to Fibre Channel over Ethernet than iSCSI. While the non-routability means AoE cannot be accessed over the Internet or other IP networks, the feature makes AoE more lightweight (with less load on the host), easier to implement, provides a layer of inherent security, and offers higher performance. The AoE specification is 8 pages[1] compared with iSCSI's 257 pages[2].
Contents |
[edit] Operating system support
The following operating systems provide ATA over Ethernet (AoE) support:
OS | Support | Third-party drivers |
---|---|---|
Linux | Native (2.6.11+) | Coraid [2] |
Windows | Third-party | StarPort [3] WinAoE [4] |
Mac OS X 10.4 and up | Third-party | 2DegreesFrost [5] Small Tree Communications [6] |
Solaris | Third-party | Coraid [7] |
FreeBSD | Third-party | Coraid [8] |
OpenBSD | Native (4.5-current) | |
Plan 9 from Bell Labs [9] | Native |
[edit] Hardware Support
The Coraid [10] company offers an array of AoE SAN appliances under the EtherDrive brand, along with diskless gateways that add network-attached storage functionality, using the NFS or SMB protocols, to one or more AoE appliances.
In 2007 LayerWalker [11] announced the world's first single-chip AoE hardware solution called miniSAN running at both Fast and Gigabit Ethernet grades. The miniSAN product family offers standard AoE server functions plus other management features that targets PC, consumer and SMB markets.
A commodity Linux server can function as an AoE target using a software AoE target. Three independently developed AoE target implementations exist: the userspace vblade[12], which is part of the aoetools package; one, kvblade, implemented as a Linux kernel module; and ggaoed, which runs in userspace but takes advantage of Linux-specific performance features.
[edit] Protocol Description
[edit] ATA Encapsulation
SATA (and older PATA) hard drives use the Advanced Technology Attachment (ATA) protocol to issue commands, such as read, write, and status. AoE encapsulates those commands inside Ethernet frames and lets them travel over an Ethernet network instead of a SATA or 40-pin ribbon cable. By using an AoE driver, the host operating system is able to access a remote disk as if it were directly attached.
The encapsulation of ATA provided by AoE is simple and low-level, allowing the translation to happen either at high performance or inside a small, embedded device, or both.
[edit] Routability
AoE runs directly on top of Ethernet, instead of an intermediate protocol such as TCP/IP. This reduces the significant CPU overhead of TCP/IP. However, this means that routers cannot be used to route a packet across disparate networks (such as the Internet). Instead, AoE packets can travel within a single local Ethernet storage area network (such as one created by a switch or VLAN).
[edit] Security
The non-routability of AoE is a source of inherent security (ie, an intruder can't connect through a router. He must physically plug into the local Ethernet switch). However, there are no AoE-specific mechanisms for password verification or encryption. Additional security may be implemented at the file-system level. Certain AoE targets, GGAOED [13] for example, support access lists allowing connections only from specific MAC addresses.
[edit] Config String
The AoE protocol provides a mechanism for host-based cooperative locking. When more than one AoE initiator is using an AoE target, they must communicate. The hosts need a way to avoid interfering with one another as they use and modify the data on the shared AoE device.
One option provided by AoE is to use the storage device itself as the mechanism for determining the access of particular hosts. The AoE protocol includes a "config string" feature. The config string can record who is using the device. (It can also record any other information.) If more than one host tries to set the config string simultaneously, only one succeeds. The other host is informed of the conflict.
[edit] Related Concepts
Although AoE is a simple network protocol, it opens up a complex realm of storage possibilities. To understand and evaluate these storage scenarios, it helps to be familiar with a few concepts.
[edit] Storage Area Networks
The purpose of Storage Area Networks (SANs) is often not to make files and directories available to multiple users, as is the purpose of Network Attached Storage (NAS). Instead, a SAN allows the physical hard drive to be removed from the server that uses it, and placed on the network. A SAN interface is thus similar in principle to non-networked interfaces such as SATA or SCSI. Most users will not use a SAN interface directly. Instead, they will connect to a server that uses a SAN disk instead of a local disk. Direct connection, however, can also be used.
When using a SAN network to access storage, there are several potential advantages over a local disk:
- It is easier to add storage capacity and the amount of storage is practically unlimited.
- It is easier to reallocate storage capacity.
- Data may be shared.
- Additionally, compared to other forms of networked storage, SANs are low-level and high performance
[edit] Utilizing Storage Area Networks
To utilize a SAN disk, the host must format it with a filesystem. However, unlike a SATA or SCSI disk a SAN hard drive may be accessed by multiple machines. This is a source of both danger and opportunity.
Traditional filesystems (such as FAT or ext3) are designed to be accessed by a single host, and will cause unpredictable behavior if accessed by multiple machines. Such filesystems may be used, and AoE provides mechanisms whereby an AoE target can be guarded against simultaneous access (see: Config String).
Shared disk filesystems allow multiple machines to use a single hard disk safely by coordinating simultaneous access to individual files. They are slightly similar to network filesystems. These filesystems can be used to allow multiple machines access to the same AoE target without an intermediate server or filesystem (and at higher performance). Examples of shared disk filesystems are GFS, GPFS, MetaSAN, and OCFS2.
[edit] See also
[edit] References
- S. Hopkins, B. Coile. ATA over Ethernet Specification. Technical Report The Brantley Coile Company, Inc..
- Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler and Robert S. Fabry. A Fast File System for UNIX. Technical Report Computer Systems Research Group, Computer Science Division, Department of Electrical Engineering and Computer Science, University of California, Berkeley, Berkeley, CA 94720.
[edit] External links
- Articles:
- ATA Over Ethernet: Putting Hard Drives on the LAN — Linux Journal (28 April 2005)
- ATA-over-Ethernet enables low-cost Linux-oriented SAN — LinuxDevices.com (23 June 2004)
- The ATA over Ethernet (AoE) Protocol — Linux Magazine (June 15, 2005)
- Protocol:
- Implementations and Tools:
- ATA Over Ethernet Tools and vblade vblade is an AoE target that runs in userspace, and kvblade is an alpha in-kernel AoE target
- vblade, implemented as a kernel module this is faster than the userspace vblade
- qaoed - Mulithreaded ATA over Ethernet storage target Runs in userspace
- Aoeserver - Mulithreaded ATA over Ethernet storage target Implemented as a kernel module
- ggaoed - AoE target implementation for Linux
- Live CD:
- Slax Frodo with vblade and ATA Over Ethernet Tools this is useful for testing and backup
- HowTos: