ATA over Ethernet
AoE is a promising, simple Storage Area Network architecture.
The basic idea is to provide a translation layer between ethernet packets and ATA commands. Ethernet hardware (switches, hubs, NICs, and cables) are ubiquitous, dirt cheap, and getting very fast (gigabit ethernet is within reach of most organizations at the end of 2007, with 10GigE on the horizon). The loosely-coupled nature of an ethernet network also makes "hot swap"-like features available for free. It also opens the door to very interesting redundant services.
compatibility
The Linux kernel has had AoE client capabilities for a couple years. I've heard it's not as well developed on some of the proprietary OSes.
failure modes
With the Linux kernel (tested on 2.6.18
), it seems like if there's no response from an AoE device for 3 minutes (180 sec), the kernel stops waiting for it, and declares that the device is dead.
management of AoE devices
If you're running a GNU/Linux distro, and you want to export block devices as AoE devices, you'll probably be running vblade
from [aoetools. vblade
is a great, simple service that does exactly what it needs to do and no more, in the classic UNIX tradition.
If you want to manage a persistent set of vblade
-created exports, though, you might be interested in vblade-persist, a CMRG project.
links
- Some experiments combining xen with AoE.
- An attempt to merge Xen and AoE -- this doesn't seem very well documented.
- aoetools -- the project which combines tools for AoE client (block device consumer) and server (block device offerer) tools for Linux
- aoe.txt -- from the Linux kernel documentation.