ATA over Ethernet
ATA over Ethernet(简称:AoE)是由Brantley Coile[1]所提创的一种网络通信协议,此协定可以在以太网路上访问ATA标准的存储设备(多指硬盘[2]),运用此协定的好处在于能以平价且标准的技术来实现一个保存局域网路环境。

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的功效机制。
- OpenBSD
- 自4.5-Current版开始原生支持
支持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硬盘柜进行访问,此时传输运作就会发生冲突,因为AoE硬盘柜不能确认哪一部服务器拥有真正的访问主控权,为了解决这个问题,AoE协定中具备一种协调机制,通过此种机制来排解冲突,使同时性的访问纠纷可以化解,此外该机制也能维持与保护共享数据的一致性,避免数据发生矛盾,举例来说,当一部服务器取得AoE硬盘柜的访问主控权时,特别是服务器正将新的数据写入硬盘时,机制上会自动对正在写入的保存区块进行保护,防止其他的服务器也对该区块进行写入,待原有的服务器完成写入后才将保护解除,并允许下一个获得主控权的服务器对该区块进行读出或写入。
若进一步探究,AoE允许用两种方式来实现此种排解机制,一种是由已经获得访问主控权的服务器,由该服务器以TCP/IP协定的方式对其他服务器发送消息,告知哪个区块正在访问使用中,请勿对该区块进行重复性访问,以免造成访问冲突与数据矛盾等问题,等于让多部服务器间自行进行访问上的讨论与知会。
另一种作法是由AoE硬盘柜自己来决定哪个服务器可以进行访问,AoE协定也支持此种作法,在AoE协定中具有一种组态字符串(Config String[3])的功效机制,即是在AoE硬盘柜上设置一个组态字符串,由各部服务器来对此字符串进行设置(对字符串的保存区进行写入),设置成功的服务器即拥有访问传输的主控权,反之失败的服务器只能等候与再次尝试设置,而同时间只会有一个服务器能成功设置。
附注说明
参考引据
- Coraid公司对AoE技术的相关说明(英文)
- LinuxDevices.com网站:ATA-over-Ethernet造就平价、Linux型的保存局域网路(2004年6月23日)(英文)
相关参见
外部链接
- 教学
- 在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。
- ATA Over Ethernet Tools(也称aoetools)及vblade(页面存档备份,存于) (英文)