2012年8月15日水曜日

バスアナでTRIMの動きをみてみました

現在、今月末発売の某PC雑誌の仕事で、プロトコルアナライザ(バスアナライザ、通称バスアナ)をお借りしております。バスアナに触るのは久しぶりだったのですが、やっぱり、楽しいですね。これを使って開発の仕事をするのはマジで辛いと思いますが、雑誌の検証レベルでコマンドをみるだけなら楽しいです。というわけで、今回は、バスアナについて簡単に紹介しようと思います。

今回、お借りしているのは、LeCroy社の「STX M6-1」という製品で、SATA 6G対応の1ポートのプロトコルアナライザ(バスアナ)です。プロトコルアナライザとは、その名の通り、バスに流れるパケットなどをキャプチャして表示する機器です。このため接続は、ホスト(マザー ボードのSATAポート)とSSDなどの機器の中間に配置する必要があります。具体的には、バスアナの入力端子をSATAケーブルで接続し、バスの出力端子とSSDなどのSATA機器を接続します。このようにバスアナをSATAのホストと機器の中間に接続することでバスに流れるパケットなどをごそっとキャプチャする仕組みです。


実際にどのような感じのものがみれるかと言いますと、上の画面のような感じとなります。ストレージ用のデバドラに取り付きコマンドをキャプチャするとソフトウェアのアナライザもありますが、今回のようなハードウェアのバスアナなら、SATA LPMの動きなどもキャプチャできます。この例だと、デバイスからホストに対して、「PMREQ_S」というリクエストが送られています。PMREQ_Sは、スランバーの要求で、PMREQ_Pだとパーシャルです。また、リクエストの方向がデバイスからホストですから、今回のケースでは、DIPMでスランバーのリクエストが送られていることがわかります。ちなみに、HIPMならホストからデバイスに対して同じようにリクエストが送られます。

その下の「PMACK」というのが、ホストからの返信です。この場合、OKなのでPMACKを返しており、SATA LPMの省電力状態に機器が入っています。ちなみにNOの場合は、PMNACKが返ってきます。さらに下にある「COMWAKE」というのが、省電力状態からの復帰要求です。ホストからコマンドが送られてくるので、省電力状態からデバイスを復帰させています。

COMWAKEで機器を復帰させたあとに送られてきたのが、SSDで有名なATAコマンドです。そうこのブログを読んでいらっしゃるかたならご存知の「TRIM」です。TRIMは、正式には「Data Set Management」コマンドと呼ばれます。また、SASにもTRIMと同等のコマンドが準備されており、こちらは、UNMAPコマンドと呼ばれます。

以上のようにバスアナを使うと、ストレージに対してどんなコマンドが送られているかなど、パソコンを使っているだけではわからないような動きを知ることができます。特に今回のようなハードウェアのバスアナなら、信号をまるごとごそっとキャプチャできますので、コマンドの動きなどを把握することができます。

今回なぜこのようなものをお借りしているかというと、実は、TRIMコマンドが送られる条件やRAIDでTRIMが送られるのかなどを調べるためです。バスアナがあれば、コマンドがキャプチャできるので一発です。コマンドがデバイスに送られていれば、TRIMがでている。そうでなければでていません。TRIMの対応非対応の検証は、バスアナでみるのが一番早いのですが、LeCroyさんの一番安いこのバスアナですら200万円ぐらいします。さすがに高価過ぎて、貸し出し申請もし難いという事情もあります。

さて本来なら、ここで検証の結果をお伝えしたいところですが、今回は、さすがに雑誌の発売前なので公表できません。雑誌発売後に時期をみて改めて紹介したいと思います。お急ぎの方は、29日発売のコア向けのPC雑誌をご覧ください。

ちなみにLeCroy社のバスアナは、SATAの公式バスアナとして採用されています。SATA規格は、コマンドシーケンスなどが厳しく定められており、接続されている機器が規定のシーケンスで動作しているかなどをこのバスアナで取得してチェックされます。バスアナは、LeCroyのほか、さまざまなメーカーから発売されていますが、SATAの認証を取るには、LeCroy社のバスアナで取得したログが必要だったと記憶しております。

0 件のコメント:

コメントを投稿