ATA over Ethernet

ATA over Ethernet（ATAoE、AoE）は、Brantley Coile Company[1] が開発した通信プロトコルであり、ATAストレージ装置にイーサネット経由でアクセスするもの。ストレージエリアネットワーク（SAN）を低価格の標準技術を使って構築できる。 ATAoE はイーサネット上の一般の上位プロトコル（IP、UDP、TCP など）を使わない。つまり、ATAoE は複数のLANをまたがることはできず、SANとしてのみ利用可能である。SANの別の方式である iSCSI は仕様書が257ページにも及ぶが、ATAoE の仕様書はわずか12ページである。 ATAoEをサポートしているオペレーティングシステムとして以下のものがある。 サードパーティ製品でのATAoEサポートとしては、以下のものがある。 Coraid [6]は、FreeBSD向けのデバイスドライバを提供しており、現在のバージョンは Stacy D. Son [7] が保守している。 2DegreesFrost [8] は、Mac OS X (10.4) 向けの ATAoEサポートを提供している。 WinAoE [9] はオープンソース（GPL）のWindows向けATAoEアクセスドライバであり、ディスクレスブートにも対応している（つまりブートディスクをイーサネット経由で接続）。 LayerWalker [10] は、ATAoE技術をホームアプライアンスや周辺機器製品に導入している。 Coraid [11] は、ATAoE用ハードディスクドライブ EtherDrive を販売している。 LayerWalker [12] はATAoEを中心とした miniSAN と呼ぶソリューションを2007年に発表した。 また、vblade プログラムを使うと、Linux が動作するコンピュータのハードディスクをイーサネットで接続された他のコンピュータに ATAoE 用ドライブ（ターゲット）であるかのように見せることができる。vblade の実装は、ユーザー空間で実装されたものとLinuxカーネルモジュールとして実装されたものの2種類がある。 ATAoE は単純なプロトコルだが、その可能性は大きい。それには、以下のような概念が関係してくる。 ATAoE は、ATAコマンド群をサポートした補助記憶装置のセッション層プロトコルである。ディスクの読み書きはブロックと呼ばれる固定サイズのデータ単位で行われる。ブロックサイズは512バイトで固定されている。 ATAoE は ATAコマンドと（もしあれば）データがイーサネットのフレーム内でどのようにフォーマットされるかを指定している。従って、イーサネットとATAoE用補助記憶装置の組合せは、通常のホストバスアダプタとディスク装置とケーブルの置換となる。 一般に、ハードディスクはその上でファイルシステムを構築して利用される。つまり、ハードディスクから見た唯一のユーザーはファイルシステムになる。ext3、XFS、HFS+、NTFS といったファイルシステムは、そのような前提で設計されている。 ATAoE を使うと、イーサネットには複数のコンピュータが接続されているため、この前提が崩れる可能性が生じる。従来型のファイルシステムではこれは危険であり、ファイルシステムの中身が壊れたり、OSがダウンする事態を引き起こす。 クラスターファイルシステムは、あるブロックデバイスにアクセスできるコンピュータを1台に制限することで、これを回避する。複数のコンピュータが協調動作して安全にブロックデバイスを共有することを可能にする。 このようなクラスターファイルシステムの例として GFS や OCFS2 がある。 ストレージエリアネットワーク（SAN）のファイルシステムではこれとは異なった回避方法をとっているものもある。Tiger Technology Sarl[13] の MetaSAN では、NTFSなどの通常のファイルシステムを構築したディスクドライブを複数のコンピュータで共有可能であり、ATAoE もサポートしている。 ATAoEのターゲットデバイスは、ハードディスクドライブまたはホスト側からハードディスクのように見えるものである。これについては、以下の点が重要である。 アクセス性能は、ディスクのRPM(回転速度）、ヘッド移動速度（シークタイム）、磁気記録密度、ヘッドの位置あわせの正確さ、ディスク上のデータの配置、インタフェース技術などに依存する。 ランダムなディスクアクセス性能は、主にシークタイムで決定される。 ランダムアクセスはシーケンシャルアクセスの約100倍の時間がかかる。 単一ディスクのシーケンシャルアクセスは一般に 50-80 MB/s の性能である。 RAIDでは、シーケンシャルアクセス性能もランダムアクセス性能も一般に向上する。 ホストOSとディスクファイルシステムは、ディスク性能を引き出すため、なるべくシーケンシャルにアクセスしようとする。 ATAoE ではイーサネットについての以下の点が重要である。 ATAoE のパケットでは、MACアドレスのみで発信元と送信先を示す。MACアドレスはイーサネットのレベルで規定されているアドレスである。従って、単一のイーサネットがブロードキャストできる範囲でしか使えない。 最近のハードウェアにはイーサネットでのフロー制御機能が備わっていて、再送をなるべくしないようにしている。 イーサネットのフレームは巡回冗長検査で完全性を保つようになっており、検査に通らないフレームは捨てられる。 イーサネットを使ってブロックストレージにアクセスすると、以下のような利点がある。 ストレージ容量を追加するのが容易である。 容量の上限は事実上存在しない。 アクセスはイーサネットの物理的な制限によって制御できる。そのLANがインターネットと接続していても、外部からATAoEのパケットを送り込むことはできない。 一般的なハードウェアを使うことができる。 バックアップが容易にできる可能性がある。 データを複数のコンピュータで共有できる可能性がある。 ATAoEターゲット（ストレージ）には、Config String と呼ばれる情報が付与される。これはディスクドライブそのものに格納される情報ではなく、インタフェース部にある不揮発性メモリに格納される。Config String は初期状態では長さゼロであり、その状態のときだけATAoEイニシエータが Config String を設定できる。これを使って、簡単な調停が行える。 HyperSCSI - いわば SCSI over Ethernet iSCSI - SCSI over TCP/IP Fiber Channel over Ethernet（FCoE） ^ “Deskstar 7K500 and Deskstar E7K500 Specification v1.5”. Hitachi. 2008年4月8日閲覧。 ^ Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler and Robert S. Fabry. “A Fast File System for UNIX”. Computer Systems Research Group, Computer Science Division, Department of Electrical Engineering and Computer Science, University of California, Berkeley, Berkeley, CA 94720. 2008年4月8日閲覧。 記事: ATA Over Ethernet: Putting Hard Drives on the LAN — Linux Journal (28 April 2005) “ATA-over-Ethernet enables low-cost Linux-oriented SAN”. 2012年12月8日時点のオリジナルよりアーカイブ。2012年12月8日閲覧。 — LinuxDevices.com (23 June 2004) The ATA over Ethernet (AoE) Protocol — Linux Magazine (June 15th, 2005) 要ログイン プロトコル: AoE protocol description (PDF file) AoE protocol definition エミュレータとツール: ATA Over Ethernet Tools and vblade ユーザー空間版 vblade を含む。 vblade, implemented as a kernel module ユーザー空間版より高速である。 qaoed - Mulithreaded ATA over Ethernet storage target ユーザー空間版 Aoeserver - Mulithreaded ATA over Ethernet storage target カーネルモジュール版 Live CD: Slax Frodo with vblade and ATA Over Ethernet Tools 評価やバックアップに利用できる。 ハウツー: Using ATA Over Ethernet On Debian Etch