最近のSCSIについて思うこと



 最近、PC(いわゆる家庭や企業にある普通のパソコン)の世界ではSCSIに関する話題がめっきり減った。SCSIフリークの筆者としては寂しい限りだが、SCSIがPCの世界から次第に離れていったのにはいくつかの理由がある。今回は、この辺の事情を技術的な観点から色々と考察してみたい。

●かつては多くのPCユーザを魅了したSCSI

 SCSIは、かつて多くのPCユーザにとって垂涎の的ともいえるインターフェイスだった。当時、筆者もこうした熱血ユーザの1人であり、趣味が高じて「SCSI愛好会」なるファンクラブを設立し、200名近い会員を集めて普及活動を行なっていたこともある。PC雑誌もSCSIアダプタだけで大きな特集を立てるほどの好待遇で、それはとてもいい時代だった。

 しかし、世の中はすでに移り変わり、今やSCSI関連の情報がPC業界で華々しく報じられることは少ない。筆者自身も自作の世界から足を洗ってしまったこともあり、現在では腐れ縁でテープドライブとイメージスキャナをSCSIで接続しているに過ぎない。筆者の周りにいる古株のPCユーザに聞いて回っても、一部にファイバチャネルとファブリックスイッチにパワーアップした「漢」な友人がいるものの、ほとんどはATAインターフェイスで落ち着いている。

 このようにPCでSCSIが次第に使われなくなってきた理由には、まず安価なATAインターフェイスがPC環境に対する十分な性能を達成したこと、そしてこれまでSCSIの特権だった外付け機器の接続にUSB 2.0やIEEE 1394といった新しいシリアルインターフェイスが使われるようになったことが挙げられる。つまり、内蔵機器の接続にはATAインターフェイスが、外付け機器の接続にはUSB 2.0やIEEE 1394が使われるようになり、SCSIの出番が次第に失われてしまったということだ。

 こう書くと、いかにも外部的要因によってSCSIが端に追いやられたと解釈されがちだが、実は「ターゲットをハイエンドに絞り込む」というSCSI自身の戦略(いわば内部的要因)も大きく関係している。すなわち、SCSIもPCの世界に見切りをつける方向に進化を続けているのだ。今回取り上げたいのは、むしろこの内部的要因に関してだ。

●ハイエンド志向を色濃く出し始めたUltra3 SCSI

 SCSIがハイエンド指向を色濃く出し始めたのは、「Ultra3 SCSI」が登場してからである。Ultra3 SCSIは、SCSI Trade Associationによって発表された業界標準規格で、その仕様はANSI(米国規格協会) T10技術委員会が標準化を行なっているSPI-3(SCSI-3 Parallel Interface - 3)の中で定義されている。Ultra3 SCSIを支える主な機能を挙げると、次の5つに集約される。

  1. DT(Double Transition)クロッキング
  2. CRC(Cyclic Redundancy Check)
  3. ドメインバリデーション
  4. パケッタイズドSCSI
  5. QAS(Quick Arbitration and Selection)

 それぞれの効用を簡単に整理しておくと、1はデータ転送速度、2と3はSCSIシステムの信頼性、4と5はSCSIバスの使用効率をそれぞれ向上させるものである。

 5つの機能のうち、1~3の機能を取り入れたものが「Ultra160 SCSI(発表当初はUltra160/m SCSIと呼ばれていた)」、1~5の機能をすべて取り入れたものがIBM独自の「Ultra160+ SCSI」である。そして、1~4の機能を備えつつ、高度な信号処理技術を追加することで1をさらに倍速化(Fast-160DT)したのが、執筆時点で最新の「Ultra320 SCSI」だ。Ultra320 SCSIを支えるFast-160DTや信号補正機能に関する仕様は、現在標準化作業中のSPI-4に包含されている。

 では「Ultra3 SCSIとはいったい何者なのか?」という疑問にぶち当たるが、Ultra3 SCSIは、5つの機能のうち最低1つを備えたものを指している。つまり、これらの機能のうち最低1つさえ備えていれば、どんな機能をどのように組み合わせようとかまわないという「実に曖昧な規格」こそがUltra3 SCSIの正体なのだ。それゆえに、必須の機能をしっかりと定義したUltra160 SCSIやUltra160+ SCSIが新たに生み出され、エンドユーザの混乱を招く結果となった。

AdaptecのUltra 320 SCSI対応カード「39320D-R」 日立グローバルストレージテクノロジーズのUltra 320 SCSI対応ドライブ「Ultrastar 15K73」

●バックプレーン環境で効果を発揮するCRC

 さて、話は元に戻るが、Ultra3 SCSIで定められた数々の機能は、いずれもハイエンド環境でこそ役立つものばかりだ。とりあえず、1のダブルトランジション・クロッキングは、信号帯域幅を簡単に倍速化できる手法として数多くのインターフェイスで採用されているので本稿では説明を省いてしまおう。

 2のCRCは、Ultra ATAやEthernet、ファイバチャネルなどでも採用されている実績の高いエラーチェック方式だ。SCSIにはもともとシングルパリティによるエラーチェック機構が備わっているが、信号の高速化にも耐えうる強力なエラーチェック方式としてCRCが新たに採用された。CRCは、2bitまでのビットエラーや連続したデータ列(最大32bit)で生ずるバーストエラーなど、複雑なエラーも検出できる。

 SCSIは、ATAインターフェイスと異なり、長いケーブルを使用してディスクアレイやテープ装置を外付けしたり、バックプレーン環境でHDDのホットプラグを行なうようなケースがある。こうした環境では信号マージンが極端に落ちるため、CRCのような強力なエラーチェック方式で確実にデータを保護しなければならない。なお、CRCはデータのみの保護にとどまり、コマンド、メッセージ、ステータスといった非データに対する保護はAIP(Asynchronous Information Protection)と呼ばれるオプション機能でサポートされる。

●確実なデータ転送を保証するドメインバリデーション

 3のドメインバリデーションは、確実に動作する安全性の高いSCSIシステムを提供する機能で、Ultra160 SCSIが登場した頃には「SCSIの頭脳」とさえいわれていた。ドメインバリデーションには、SCSIホストアダプタと機器間のデータ幅の不一致やケーブルの断線、ターミネーションの異常などをチェックする基本テストと、実際の読み書きテストを通じてSCSIバスの電気特性をチェックする拡張テストがあり、拡張テストは基本テストを通過した機器に対してのみ行なわれる。

 ここで興味深いのは後者の拡張テストである。Ultra2 SCSIまでは、機器が返す最高のパラメータ(同期転送クロックやデータ幅など)でネゴシエーションを完了していたが、このパラメータで安定したデータ転送を行なえるという保証はない。そこで、実際に読み書きテスト(WRITE/READ BUFFERコマンドによるバッファ間のデータ転送)を行ない、最高速でデータ転送を行なえない時には自動的に速度を下げて再度テストを行ない、安定してデータ転送を行なえるまでこの操作を繰り返す。これは、ちょうどダイヤルアップ接続時に通信モデムで接続を開始する様子にも似ている。

 ただし、メジャーなSCSIホストアダプタを購入し、これに付属する高品質のLVDケーブルで1台や2台のHDDを接続するレベルでは、実際のところドメインバリデーションが役立つケースは少ない。ドメインバリデーションが生きてくるのは、多数のSCSI機器が接続され、場合によってはエクスパンダによってSCSIバスを延長しているようなミドルレンジおよびハイエンド環境に限られる。こうしたSCSIシステムを多数所有する企業ならば、ドメインバリデーションによって運用・管理コストの削減を期待できる。もちろん、粗雑なケーブルを使ったりすればローエンド環境でもドメインバリデーションが役立つかもしれないが、それは本末転倒というものだろう。

●SCSIバスの使用効率を高めるパケッタイズドSCSIとQAS

 そして、SCSIのハイエンド色を最も色濃く出している機能が、4のパケッタイズドSCSIと5のQASだ。

 まず、パケッタイズドSCSIは、データの転送効率を大きく高める改良型のSCSIプロトコルである。基本的に、コマンドやメッセージ、ステータスといった非データの転送は、SCSI-1から受け継がれてきた非同期転送モードで行なわれるが、非同期転送モードはせいぜい5MB/sec程度でしかやり取りできない。このため、同期転送クロックが高まるにつれ、非データ転送の占める時間的な割合が増え、SCSIバスの使用効率が大きく低下していく。

 そこで、パケッタイズドSCSIでは、非データもデータとともに同期転送ですべてやり取りできるようにした。非データやデータの内容をSPI情報ユニットという情報単位にまとめ、このSPI情報ユニットを最大ネゴシエーション速度(Ultra320 SCSIならば最高320MB/sec)でやり取りする。これにより、SCSIバスの使用効率が大きく高まる。また、I/Oプロセスごとのディスコネクト/リコネクト操作を必要としないため、1回の接続で複数のI/Oプロセスを一度に処理できる。この結果、特に小さなデータを読み書きする際の実効スループットが大きく改善される。

 QASは、バスフリーフェーズ(SCSIバスが使用されてことを示す状態)を介することなく高速にバス調停を行なう機能だ。パケッタイズドSCSIでは、バスフリーを除くすべてのバスフェーズが最大ネゴシエーション速度で遷移する。そこで、QASを利用して残りのバスフリーフェーズもさらに切りつめ、SCSIバスの使用効率を極限まで引き上げる。パケッタイズドSCSIやQASに関する技術情報、実際のベンチマークテスト結果については、Maxtorの技術白書(Packetized SCSI, QAS, and BUS Fairness White Paper. 英文、PDF)が非常に参考になる。

 さらに、先述の5つには含まれないが、SCSIバスフェアネスという機能もある。通常、SCSIではSCSI IDによってバス調停時の優先度が決定されるが、SCSIバスフェアネスを利用すればSCSI IDに左右されずにバス使用権を獲得できるようになる。QASは、SCSI IDの優先度を起因とした特定の機器によるSCSIバスの独占が問題となりやすいため、QASとSCSIバスフェアネスの併用が強く推奨されている。

●高速なHDDを多数束ねて使う用途でこそ効果を発揮する

 しかし、パケッタイズドSCSI、QAS、SCSIバスフェアネスのいずれも、SCSIホストアダプタにHDDを1台や2台接続するような使い方ではほとんど意味をなさない。

 まず、パケッタイズドSCSIの恩恵を受けるには、SCSIバスの帯域幅をめいいっぱい使う必要がある。それには、シリコンディスクのような超高速のストレージ機器を接続するか、多数のHDDを接続してとにかく帯域幅を稼がなければならない。次に、QASとSCSIバスフェアネスは、バス調停が頻繁に発生する場合に効果を発揮する。バス調停の頻度を増やすには、複数台のHDDを接続し、これらのHDDに対してまんべんなくアクセスを発生させる必要がある。

 つまり、最新のSCSIが提供する数々の機能を生かしうる現実的なシステムとは、複数(しかも多め)のHDDを束ね、これらのHDDに対して均等なアクセスが発生する「RAIDシステム」ということになる。もちろん、SCSIは複数のトランザクションをマルチスレッドで処理できるインテリジェンスを備えているし、ハイエンド向けに設計されたSCSI HDDならば、こうしたマルチスレッド性と相まって単体で利用してもかなり高いパフォーマンスを示してくれる。しかし、個人ユーザが導入できるレベルのシステムで、最新のSCSIがもたらす利点を気持ちよく引き出すことが難しいことをあらかじめ悟っておくべきだ。

 現在でも、SCSIにこだわり続けているパワーユーザは少数派だが確実にいる。しかし、「SCSIだからとにかくすごいんだ」という盲目的なこだわりに過ぎないのであれば、SCSIの神様は入信を許してはくれないだろう。すでにPCの世界から“解脱”してしまったSCSIとこれからも真剣におつきあいしたいのであれば、少なくとも本稿で掲げたようなSCSIの本質を十分に理解しておく必要がある。SCSIを愛してやまない筆者は、現場活動(?)を退きつつこんな思いを抱いている。


□Maxtor(Mark Evans)、Packetized SCSI, QAS, And Bus Fairness(英文、PDF)
http://www.maxtor.com/en/documentation/white_papers/wp_pcktzed_scsi_whole.pdf
□関連記事
【2000年7月10日】特別企画:世界初15,000rpmの超高速SCSI HDD「Seagate Cheetah X15」の実力を測る
http://www.watch.impress.co.jp/pc/docs/article/20000710/cheetah.htm

バックナンバー

(2003年5月30日)

[Text by 伊勢雅英]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2003 Impress Corporation All rights reserved.