†PCうそつき講座†

PCI接続eSATA増設ボード

作成開始日 2021.02.02
最終更新日 2021.05.20

【要旨】PCI接続(PCIeではない)のeSATAボードでもUSB 2.0よりはかなり速い

eSATAは最早過去の遺物となってしまったようだが、PCによっては頼らざるをえないこともある。実際、私のメイン機であるEndeavor AT991Eは、USB 3.xもなければPCIeもない(PCIeはオプションで増設できるようだが現実的ではない)。つまり、高速ストレージを外付けする方法が全くないのである。古い機種とは言え、時代的にはPCIeの1本くらいはあっても良さそうなものなのだが、そこがオフィス用PCの割り切りなのだろう。

そこは理解するが、さて、動画ファイルを扱おうと思うと、流石にUSB 2.0の速度では厳しい。USB 2.0の理論値は480Mbps(=60MB/s)だが、実際のUSB 2.0同士のコピーでは17MB/s程度しか出ない。1GB程度のファイルのコピーに数分掛かってしまう。どうしても外付けできる高速ストレージが欲しいとなれば、内部のSATAポートが1本空いているので、これをブラケット経由で外に出してeSATAとして使うのが定石だろう。

しかし、私の場合、2本の内蔵SATAのうち、1本はシステム用SSD、もう1本はデータ用HDDに使用しているため、それもできない。強いて言えば、DVDドライブを外して(これはUSB接続で代用できる)、DVD用のSATAをeSATAに回すという方法もあるが、内蔵DVDは内蔵DVDで重宝なので、それもしたくない。で、PCIスロット用のeSATA増設ボードを使用したらどうだろう?と考えた。

しかし、PCIeではなくタダのPCIで、本当に速度が出るのか? ネットを検索しても情報がほとんどない。メーカーの宣伝文句である「理論値150MB/s(1.5Gbps)」は全然アテにならない。実際、USB 2.0も、実測値は理論値の半分で、コピーとなると更に半分の速度になってしまう(読んで→書く、という2プロセスになるので)。eSATA増設ボードではこのような事はないのだろうか? 是非とも実測値を知りたいところだが…この情報が全然ない。普及しなかった製品と言うことなのだろう。で、今更ながら人柱。

●PIC接続eSATA増設ボードの速度の実測値

CrystalDiskInfoで調べたところ、リードで約84〜87MB/s、ライトで約59〜63MB/sだった。読み書きで差があるが、平均すれば理論値(150MB/s)の半分程度というところ。この数値は想定内。ただ、内蔵HDD(SATA300/AY301)でもリードで95MB/s程度だったので、eSATA150の増設ボードでこの速度は決して悪くない(いや、内蔵SATA遅すぎないか?)。では、コピー速度はどうだろう?

外付UBS2.0 → 外付USB2.0 17MB/s USB 2.0の実効速度の約1/2
内蔵SATA300 → 外付USB2.0 27MB/sUSB 2.0の書込速度でサチる
内蔵SATA300 → 外付eSATA150  70MB/s30MB/s弱でサチる

計測環境:
PC: Endeavor AT991E(Core i5-3470)/ AY301(Core2 Duo E7500)
OS: Windows7 64bit(AT991E)/ 32bit(AY301)
eSATA: IO DATA ESA-PCI(AY301/AT991E) / Logitec LHA-SA152P(AT991E)
HDD: 裸族のお立ち台CROSEU2+HGST HDS721010KLA330(AY301/AT991E)
  : MacPower/inXtron(型番不明)+WD Green WD20EARS(AT991E)

Windowsのキャッシュが効いている間は、コピー速度は非常に高速なる。ここでは、キャッシュの影響を排除するために、3.7GBという大きめのファイルを用いて計測した(キャッシュはオフにできないようだ)。更に大量のファイルをコピーする場合には、恐らく書き込み側の速度(eSATA150ならば60MB/s)まで低下してサチュレートするだろうと思っていたが、事態はもう少し深刻だった。

大量のファイルをコピーすると、書き込みバッファがいっぱいになって、速度が非常に落ちる(30MB/s以下)。明らかに遅延書き込みにリソース食われて、本来の転送がおろそかになっている感じ。1回のコピーは1GB程度に抑えて、HDDのLEDの点滅が終るのを待ってから次のコピーを始めるとよい。面倒だが、トータルなコピー時間はこちらの方が短いだろう。何より、この方法ならば100MB/s程度出るから気持ちが良い。

【追記】この低速化現象は、いつも起きるとは限らないようだ。発生条件は不明。

また、大きなファイル1本よりも、小さなファイルが多数ある方が速度が落ちることも発見した。たとえ小さくても、大量のファイルがある場合は、少しずつコピーする方が良いだろう。しかし、こうした特性があるとなると、運用には工夫が必要だな。ちなみに、外付eSATA→内蔵SATAのコピーならば75MB/sで安定していた。やっぱりDVDのSATAを引っ張り出そうか…(u_u;)

●PCI接続eSATA増設ボードについて

現在(2021年2月)所有しているPCI接続eSATA増設ボードは以下の3枚。いずれも2020年秋に数百円で入手した。今回はこのうち2枚をテストしてみた。

メーカー・型番公式対応OS 備 考

IO DATA ESA-PCI 〜Win7(32/64bit) ロープロ対応、電源コネクタ付き
Logitec LHA-SA152P WinXP/2000 Win7(64bit)で動作確認
AREA 三種の仁義 SD-ISE-W1 〜Win10eSATA/SATA/IDE

IOデータのESA-PCIは、この中で唯一ロープロファイル対応で、しかも電源コネクタが引き出せる優れもの。ただし、AT991Eで電源を引き出して外付けHDDにつないだら、即電源が落ちた。う〜ん…せいぜい2A程度の外付け機器で落ちるのか…?ちょっと不自然な感じもする。なお、Silicon Image社のeSATAチップを使用している。

【追記】電源が落ちるのは単純に電源容量不足のようで、2.5"USB HDDでも発生した。

Logitec LHA-SA152Pは早い段階でメーカーがサポートを放棄してしまったカンジ。公式サポートがXPまでと言うのは、流石に無責任ではないかと思う。しかも、ハードウェア的にWin7に対応不能なわけではない。実はESA-PCIと同じSilicon Imageのチップを採用しているため、ESA-PCIのドライバがそのまま流用できて、なんの問題もなく動き出す。

AREA 三種の仁義はちょっと趣旨が違うので、今回は試さなかった。まあ、一種とっておき的な存在。Win10まで公式サポートは立派と言える。

●S.M.A.R.T.情報の問題

今回使用したeSATA増設ボードでは、HDDのS.M.A.R.T.情報が取得できない。IOデータでもLogitecでもダメだった。CrystalDiskInfoの説明を読んでも、増設ボード経由のS.M.A.R.T.取得には対応していないと明記しているので、取得できないのが正常の状態のようだ。地味に不便なのだが…

ただし、AY301+Win7/32bit+ESA-PCI+裸族のお立ち台+HGST 1TBという環境では、なぜかごく普通にS.M.A.R.T.情報が取得できた。理由は不明。ハードウェア(チップセット)の問題か、OSが32bitだからなのか、ちょっと判らない。

●ホットスワップの問題

eSATAが普及しなかった最大の要因は、USB HDDのようなホットスワップができなかったからだと思う。しかし、今回扱ったeSATA増設カードには、アウマウント(アンプラグ)ツールが付いてくる。これを使えば、USB HDDと大差のない使い勝手で使用できる。なお、追加(マウント)の方はドライブを接続するだけで自動的に認識してくれる。

確認環境:Logitec LHA-SA152P+LESATAUPT_WU103.EXE(Win7/64bit)

【追記】eSATAのマウント時には、システムに物凄い負荷が掛かる。要注意。

●電源管理

Windows 7の電源管理機能はeSATA増設ボードでも有効のようで、内蔵HDDと同様、一定時間が立つと電源供給が止まる。これは地味に有り難い。UBS HDDはケース側に省電力機能がないと、ず〜っと通電しているからなあ。あ、いや、待てよ、これもHDDスタンド側の機能じゃないだろうな…省電力機能に関しては明記されていない機種なんだが…

【おまけ】インターバル付き一括コピー用バッチ

ファイルを1本コピーする度に、15秒のインターバルを置いて、遅延書き込みの処理の時間を作る。数百MB〜1GBクラスのファイルを数本〜数十本連続コピーすることを想定している。なお、コピー先ドライブ(ここではF:)のルートに、カレントディレクトリと同名のディレクトリを自動作成して、そこにコピーする。
@echo off
echo.

for %%a in (%CD%) do (set curdir=%%~na)

echo 【%curdir%】
echo.

set dst=f:\%curdir%
md "%dst%"

for %%f in (*.*) do (
echo *** %%f
copy "%%f" "%dst%" > nul 2>&1
echo --- wait 15 sec ---
timeout /t 15 > NUL
)

c:\windows\media\chimes.wav
echo.


【PCうそつき講座目次】 【ホーム】