ATA over Ethernet

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驱动程式 （下载网址）
- 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软件的 下载，将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操作系统上使用AoE
- 各种不同发行版本的Linux在设定AoE时的小技巧
- 报导
- ATA Over Ethernet：将硬盘放在局域网络上 - Linux Journal（2005年4月28日）
- 透过以太网路连接ATA硬盘 - 电子时报（2006年8月14日）
- 协定
- AoE通讯协定的叙述说明（PDF档）
- AoE通讯协定的规范标准
- 下载
- ATA Over Ethernet Tools（也称aoetools）及vblade
- 说明：vblade是安装、运作于AoE服务器端的程式，负责AoE的使用者空间（userspace）工作执行。
- 以Linux核心模组方式实现的vblade
- 说明：执行运作速度快过以使用者空间型态运作的vblade。