ATA over Ethernet

ATA over EthernetATAoEAoE)は、Brantley Coile Company[1] が開発した通信プロトコルであり、ATAストレージ装置にイーサネット経由でアクセスするもの。ストレージエリアネットワーク(SAN)を低価格の標準技術を使って構築できる。

ATAoE はイーサネット上の一般の上位プロトコル(IPUDPTCP など)を使わない。つまり、ATAoE は複数のLANをまたがることはできず、SANとしてのみ利用可能である。SANの別の方式である iSCSI は仕様書が257ページにも及ぶが、ATAoE の仕様書はわずか12ページである。

OSでのサポート

[編集]

ATAoEをサポートしているオペレーティングシステムとして以下のものがある。

OS名 対応日付 対応リリース
Linuxカーネル [2] 2005年3月1日-- 2.6.11
Solaris [3] 2007年8月20日 1.4
Plan 9 [4] 2007年8月12日 N/A
OpenBSD [5] 2007年11月25日 4.3

サードパーティ製品での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用補助記憶装置の組合せは、通常のホストバスアダプタとディスク装置とケーブルの置換となる。

ブロック・ストレージ上のファイルシステム

[編集]

一般に、ハードディスクはその上でファイルシステムを構築して利用される。つまり、ハードディスクから見た唯一のユーザーはファイルシステムになる。ext3XFSHFS+NTFS といったファイルシステムは、そのような前提で設計されている。

ATAoE を使うと、イーサネットには複数のコンピュータが接続されているため、この前提が崩れる可能性が生じる。従来型のファイルシステムではこれは危険であり、ファイルシステムの中身が壊れたり、OSがダウンする事態を引き起こす。

クラスターファイルシステムは、あるブロックデバイスにアクセスできるコンピュータを1台に制限することで、これを回避する。複数のコンピュータが協調動作して安全にブロックデバイスを共有することを可能にする。

このようなクラスターファイルシステムの例として GFSOCFS2 がある。

ストレージエリアネットワーク(SAN)のファイルシステムではこれとは異なった回避方法をとっているものもある。Tiger Technology Sarl[13] の MetaSAN では、NTFSなどの通常のファイルシステムを構築したディスクドライブを複数のコンピュータで共有可能であり、ATAoE もサポートしている。

ディスクドライブ

[編集]

ATAoEのターゲットデバイスは、ハードディスクドライブまたはホスト側からハードディスクのように見えるものである。これについては、以下の点が重要である。

  • アクセス性能は、ディスクのRPM(回転速度)、ヘッド移動速度(シークタイム)、磁気記録密度、ヘッドの位置あわせの正確さ、ディスク上のデータの配置、インタフェース技術などに依存する。
  • ランダムなディスクアクセス性能は、主にシークタイムで決定される。
    • ランダムアクセスはシーケンシャルアクセスの約100倍の時間がかかる[1]
    • 単一ディスクのシーケンシャルアクセスは一般に 50-80 MB/s の性能である。
    • RAIDでは、シーケンシャルアクセス性能もランダムアクセス性能も一般に向上する。
    • ホストOSとディスクファイルシステムは、ディスク性能を引き出すため、なるべくシーケンシャルにアクセスしようとする[2]

イーサネット

[編集]

ATAoE ではイーサネットについての以下の点が重要である。

  • ATAoE のパケットでは、MACアドレスのみで発信元と送信先を示す。MACアドレスはイーサネットのレベルで規定されているアドレスである。従って、単一のイーサネットがブロードキャストできる範囲でしか使えない。
  • 最近のハードウェアにはイーサネットでのフロー制御機能が備わっていて、再送をなるべくしないようにしている。
  • イーサネットのフレームは巡回冗長検査で完全性を保つようになっており、検査に通らないフレームは捨てられる。

ATAoE の利点

[編集]

イーサネットを使ってブロックストレージにアクセスすると、以下のような利点がある。

  • ストレージ容量を追加するのが容易である。
  • 容量の上限は事実上存在しない。
  • アクセスはイーサネットの物理的な制限によって制御できる。そのLANがインターネットと接続していても、外部からATAoEのパケットを送り込むことはできない。
  • 一般的なハードウェアを使うことができる。
  • バックアップが容易にできる可能性がある。
  • データを複数のコンピュータで共有できる可能性がある。

Config String

[編集]

ATAoEターゲット(ストレージ)には、Config String と呼ばれる情報が付与される。これはディスクドライブそのものに格納される情報ではなく、インタフェース部にある不揮発性メモリに格納される。Config String は初期状態では長さゼロであり、その状態のときだけATAoEイニシエータが Config String を設定できる。これを使って、簡単な調停が行える。

関連項目

[編集]

脚注

[編集]
  1. ^ Deskstar 7K500 and Deskstar E7K500 Specification v1.5”. Hitachi. 2008年4月8日閲覧。
  2. ^ 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日閲覧。

外部リンク

[編集]