ATA over Ethernet

AoE协定（左半）与iSCSI协定（右半）的比较图，图中可明显看出AoE协定的堆叠层数少于iSCSI，因此在传输效益表现上AoE能够比iSCSI更具效率。
ATA over Ethernet（简称：AoE）是由Brantley Coile所提创的一种网路通讯协议，此协定可以在乙太网路上访问ATA标准的存储装置（多指硬碟），运用此协定的好处在于能以平价且标准的技术来实现一个储存区域网路环境。
AoE不倚赖乙太网路中网路层以上的协定，包括IP、UDP、TCP等都弃舍不用，这表示AoE不能通过在区域网路上进行路由、绕径，很明显AoE仅打算做为储存区域网路之用。
需要注意的是，AoE与iSCSI相同，皆强调自身是远比光纤渠道（Fibre Channel）低廉的储存区域网路布建方案，不过AoE标榜比iSCSI更简单、更低廉。单就标准规范的技术文件而言，AoE规格仅有8页，而iSCSI却为257页。

**作业系统支持**
以下是各式作业系统对AoE的支援程度：- Linux
** Linux自2.6.11版（2005年3月1日发布）之后的核心程式即具备AoE的功效机制。- FreeBSD
** FreeBSD自身并不支援AoE，但Coraid公司有提供FreeBSD之用的AoE驱动程式 （下载网址）date=20060902162642 - Solaris
** 无论是SPARC版的Solaris或x86版的Solaris，都已有外部测试（beta test）性的AoE驱动程式。- OpenBSD
**自4.5-Current版开始原生支援
其他作业系统如Windows、Mac OS X等并未内建支援，需要第三方的驱动程式方可使用。

**支援AoE的软、硬体**
在支援的硬体方面，有Coraid公司推出AoE用的硬碟柜，称为EtherDrive。
另外，LayerWalker也推出了AoE的SoC晶片。 实际测试的效能，在10/100Mbps乙太网路上可以达到最高11.5MB/s（约92Mbps）的速度。在Gigabit网路上，则可以达到最高65MB/s（约530Mbps）读取速度与55MB/s（约440 Mbps写入速度）。称为miniSAN的这个Soc解决方案，展现了AoE有足够的能力与稳定性以取代价格高昂的iSCSI与速度较慢的SAMBA，FTP等以TCP为基础的资料传输协定。
在软体方面，自由软体的专案网站SourceForge.net有提供vblade软体的 下载date=20060823131710 ，将vblade软体安装到Linux伺服器上，Linux伺服器就会透过网路去寻找AoE硬碟柜，找寻到后便可向硬碟柜提出储存服务的请求，进而使用硬碟柜内的储存空间、资源。vblade软体有两种型态与执行法，一种是以使用者空间（userspace）的执行程式（属aoetools工具程式包的一部份）来运作，另一种是以Linux的核心模组程式（kernel module）来运作。

**相关概念**
虽然AoE是简单的网路协定，但在储存的功效机制运作上却也增高了复杂性，因此有必要对AoE的进一步细节进行了解，如此才能切实依据场合、情境的需求来决定是否该采行AoE，同时此也有助于将一些新储存概念的普及推行。

**区块性的储存传输**
首先，ATA在AoE中被当成一种硬碟用的线路协定，资料写入硬碟后若要进行读出，则会以一个或一个以上的块状型态进行回传，且每块的容量尺寸大小（Block size）固定一致，此可称为传输区块（Block），AoE的技术基础即是此种「区块性传输」。
接着，AoE协定直接、简单地将ATA指令（ATA command）送入低阶网路封包内，此种方式使乙太网路线（ethernet cable）能有效取代ATA介面的接线（或称：排线，ribbon cable），AoE可以在乙太网路所及的各处进行资料区块的搬运与传输，而乙太网路上的各端点可以是硬碟（硬碟柜）或电脑。
对ATA标准中的ATA排线而言，它不用去理会自身所传输的是何种资料区块，这对AoE标准而言也是相同，AoE标准所用的乙太网路线不用去了解它所传输的是何种资料区块，用户可以读出、写入任何想要的区块资料，只不过在多数情况下，文件系统将比传输区块更适合用来进行资料的组织与结构化运用。

**区块传输上的档案系统**
就传统而言，使用者是以档案系统的方式来使用电脑中的硬碟，如ext3、XFS、以及NTFS等档案系统皆是以此种想定所设计、运用。
然而在使用AoE时，由于AoE运用乙太网路来取代ATA排线，这就有可能破坏此种想定用法，改以AoE方式运作对传统档案系统而言是一件危险的事，有可能导致档案系统的错乱，或造成作业系统的核心错愕（kernel panic）。
对此，AoE是用集群式的档案系统来避免这些问题，使AoE硬碟、硬碟柜的区块性储存、传输的装置设备，能够同时供多部电脑存取使用，跳脱过往ATA技术只能让硬碟、硬碟群专供单一部电脑存取使用的限制。若就实际的功效运作来说，能够存取AoE硬碟柜的伺服器自身就如同是加入丛集系统的一部丛集电脑，是以丛集的共享机制来共同取用储存资源，而AoE硬碟柜即是一个可供共享的区块性储存设备。
至于具丛集功效的档案系统有哪些，常见的有GFS、OCFS2等。

**硬碟**
AoE的目标端是个硬碟（集中放于AoE硬碟柜内），或者必须被视为一颗硬碟（用其他非硬碟的储存媒体来乔装顶替），对此有几项与与硬碟关连的要项必须关心留意：- 存取速度主要取决于碟片的转速，转速单位为RPM，RPM值愈高，硬碟读写头（head，俗称：磁头）的旋转等待时间（rotational latency）就愈短，硬碟性能就愈高。其次读写头的移动速度愈快，搜轨时间（seek time）就愈短，此也会影响硬碟的传输快慢，其他还有磁录密度（magnetic density）、磁头入轨的精准度、碟片上的资料配置分布情形、以及碟机上的数位信号处理器、介面控制电路等也都会影响硬碟的效能表现。- 硬碟的随机存取速度完全主导了搜寻时间
** 完整随机存取的时间比连续存取慢上1,000倍
** 就一般而言，单颗硬碟的连续存取速度为50MB/Sec—80MB/Sec。
** 运用磁碟阵列（RAID）技术多半可提高随机存取及连续存取的传输效能。
** 主控端作业系统及其档案系统必须尽可能将资料以连续存取的方式写入硬碟，如此有助于整体存取效能的提升。

**乙太网路**
 AoE封包是用乙太网路中的MAC位址来决定封包从何处发出以及要传往何处。不过MAC位址只能在单一的乙太网路中使用，因为MAC位址是以网域为范畴进行广播式发送。- 现有的乙太网路硬体多具有流量控制（flow control）的功效机制，能够使封包重新发送（packet retransmission）的频宽需求降至最低。- 乙太网路使用循环冗余校验（CRC）演算法来确保封包完整送达。

**网路式储存**
当使用乙太网路来进行区块性传输时，将能够获得以下的几项潜在益处：- 储存的空间、容量等资源可以很容易地扩展延伸。- 容量扩展的上限几乎是无限。- 可以将乙太网路建立成ad hoc的型态，借此来对存取传输进行控制。- 储存设备的硬体及其资源可以从专属个用、单用转变成公用、共享型态。- 资料备份更加容易。- 与储存设备、储存资源相同的，储存的资料也可以从专用改成共享。

**组态字串**
当同时间有一部以上的伺服器对AoE硬碟柜进行存取，此时传输运作就会发生冲突，因为AoE硬碟柜不能确认哪一部伺服器拥有真正的存取主控权，为了解决这个问题，AoE协定中具备一种协调机制，透过此种机制来排解冲突，使同时性的存取纠纷可以化解，此外该机制也能维持与保护共享资料的一致性，避免资料发生矛盾，举例来说，当一部伺服器取得AoE硬碟柜的存取主控权时，特别是伺服器正将新的资料写入硬碟时，机制上会自动对正在写入的储存区块进行保护，防止其他的伺服器也对该区块进行写入，待原有的伺服器完成写入后才将保护解除，并允许下一个获得主控权的伺服器对该区块进行读出或写入。
若进一步探究，AoE允许用两种方式来实现此种排解机制，一种是由已经获得存取主控权的伺服器，由该伺服器以TCP/IP协定的方式对其他伺服器发送讯息，告知哪个区块正在存取使用中，请勿对该区块进行重复性存取，以免造成存取冲突与资料矛盾等问题，等于让多部伺服器间自行进行存取上的讨论与知会。
另一种作法是由AoE硬碟柜自己来决定哪个伺服器可以进行存取，AoE协定也支援此种作法，在AoE协定中具有一种组态字串（Config String）的功效机制，即是在AoE硬碟柜上设置一个组态字串，由各部伺服器来对此字串进行设定（对字串的储存区进行写入），设定成功的伺服器即拥有存取传输的主控权，反之失败的伺服器只能等候与再次尝试设定，而同时间只会有一个伺服器能成功设定。

**附注说明**

**参考引据**
# Coraid公司对 AoE技术的相关说明
# LinuxDevices.com网站： ATA-over-Ethernet造就平价、Linux型的储存区域网路（2004年6月23日）

**相关参见**
 HyperSCSI
** 说明：技术性质、特性与AoE相似的技术，但比AoE更早出现，事实上AoE技术的多数特性设计也取自于HyperSCSI。- iSCSI
** 说明：与AoE相同，皆是以「能低廉、平价地建立出储存区域网路（SAN）」为诉求的技术，1990年代后期开始提出与研究，于2003年正式成为IETF制订机构所颁布的网路标准。

**外部连结**
 教学
**  在FreeBSD作业系统上使用AoEdate=20061011182206  
**  各种不同发行版本的Linux在设定AoE时的小技巧date=20060904012950 - 报导
**  ATA Over Ethernet：将硬碟放在区域网路上date=20060902002346  - Linux Journal（2005年4月28日）
**  透过乙太网路连接ATA硬碟 - 电子时报（2006年8月14日）- 协定
**  AoE通讯协定的叙述说明date=20060904013107 （PDF档）
**  AoE通讯协定的规范标准 - 下载
**  ATA Over Ethernet Tools（也称aoetools）及vbladedate=20060823131710  
*** 说明：vblade是安装、运作于AoE伺服器端的程式，负责AoE的使用者空间（userspace）工作执行。
**  以Linux核心模组方式实现的vblade 
*** 说明：执行运作速度快过以使用者空间型态运作的vblade。