2011/01/13

2TiB超え

2TiBを超えるHDDを使うときの話。

(このエントリは一続きのエントリの2/2)

2.1. 素の状態


ThinkPad X61sのICH8-Mの内蔵ポート(AHCIモード)に3000を繋げた場合、Windows 7では32bit、64bitとも、そのまま普通にGPTディスクにして全容量を使える(ドライバはIntel Rapid Storage Technology 10.1.0.1008)。これは当然。

一方、素のXP SP3では、3000は746.51GiBと認識される(ドライバはIntel Matrix Storage Manager 8.8.0.1009、Intel Rapid Storage Technology 9.6.0.1024とも)。
(注)上に見えているのはOSのあるX25-M 80GB。

つまり、3000の容量は5,860,533,168(セクタ数)×512÷1024^3≒2794.52GiBなので、これから2TiB=2048GiBを差し引いた容量となる。

ここから初期化して(MBRディスクになる)、この中にパーティションを作成して使うことも一応可能。この先頭の速度をCrystalDiskMarkで計ってみたらWindows 7でGPTディスクにしたときの先頭と同程度だったので、HDD内の位置としては先頭にある模様。

ちなみに、ドライバを新しい10.1.0.1008にしてみると、「ディスクの管理」で表示されなくなった。

デバイスマネージャでは表示されるものの、これでは使いようがない。

2.2. Hitachi GPT Disk Manager


さて、3000の箱に入っていたクイックスタートガイドの紙には以下の説明がある。

この「Hitachi Edition GPT Loader」というツールはHGSTのサイトではなく、Paragonのサイトにあるが、名前が違っていて「Hitachi GPT Disk Manager」になっていた。

これをダウンロードして(Ver.1.0の英語版。URL違いで日本語版もある)XPにインストールしてみる。なお、HDDのチェックが入るので、3000が繋がってない状態ではインストールできない。

また、3000が繋がっていてもドライバが10.1.0.1008の状態では以下の表示が出る。

必要ないと言われても使えないのだが。ドライバを戻したらインストールできた。

インストール後は、HDDのGPTへの変換とパーティション作成に移る。

GPT Disk Managerを起動したときの初期画面。

「Convert Hard Disk to GPT」に進み、GPTにするHDDを選択。

どうでもいいことだが、3000の中に2047.9GiBと746.5GiBの空き領域があることになっている。MBRディスクっぽい表示だが、GPTディスクになってなければそう見なすらしい(実際にはセクタ0が空であっても)。

変換が済むと、今度は「Create and Format New Partition」に入る。

パーティションを作成するHDDと、その位置を指定(既存のパーティションがある場合、右下の矢印でどこに入れるかを変更できる)。

次にパーティションのサイズを指定。

フォーマット等も指定して実行すると、2794.5GiBのパーティションができる。

このパーティションはXPの「ディスクの管理」からも確認できる。

この状態で、Windows 7の「ディスクの管理」からも確認できる。

同じくDiskPartでも確認したところ。

この後、XP上のGPT Disk ManagerとWindows 7の「ディスクの管理」で色々とパーティションの作成、削除、縮小(GPT Disk Managerでは新しいパーティションを作成するときに既存のパーティションを縮小できる)/拡大を試してみたが、結果には互換性があった。つまり、GPT Disk ManagerがあればXPでもWindows 7とほぼ同じようにGPTディスクが扱える(とりあえず機能的には)といえる。

ただ、気づいたこともあった。

2.3. Microsoft予約パーティション


3000を空の状態に戻して(先頭を0fill)Windows 7の「ディスクの管理」で見たところ。容量は正しく2794.52GiBと出ている。

これをGPTで初期化すると、こうなる。

GPTディスクにしただけで容量が2794.39GiBに減っている。DiskPartで見てみると、「予約」という128MiBのパーティションができていた。これは「ディスクの管理」からは見えない。

これは何かと調べてみると、GPTディスク特有の「Microsoft予約パーティション」(MSR)というものらしい。


ここで「ディスクの管理」からパーティションを作成すると、こうなる。

DiskPartから見ると、作成したパーティションはMSRの後ろにできている。

XPに戻って「ディスクの管理」で見ると、こうなっていた。

全容量は元のままだが、MSRは見えない。

上で見たとおり、GPT Disk ManagerでGPTにしたときにはMSRは作成されなかった。MSRがあってもなくてもとりあえず問題はないようだったが、MicrosoftはMSRを利用するつもりのようなので、Windows 7でも使う場合はGPTにするのはWindows 7からの方がいいかもしれない。

[追記]

その後、ダウンロードできるGPT Disk ManagerがVer.1.0.1に差し替わっていたので、XP SP3で試していたところ、以下のことに気づいた。

GPT Disk Managerで空のHDDをGPTディスクに変換した後、
  • 一旦GPT Disk Managerを終了すると、MSRが作成される。

  • 引き続き(GPT Disk Managerを終了させずに)パーティションを作成すると、MSRが作成されない。
これ以上はフォローしないが、GPT Disk Managerのバグのような気がする。

2.4. Paragon GPT Disk Manager


ちなみに、ParagonにはParagon GPT Loaderというツールがある。「アーリーアダプタープログラム」に参加してこれを使うことができるが、ダウンロードできるのは「Paragon GPT Disk Manager」だった。インストール後のフォルダを見ると「gpt_loader」というフォルダもあるので、「GPT Loader」=「GPT Disk Manager」なのだろう。

で、この初期画面。

簡単に想像できるとおりで、一通り機能を使ってみたが、「Hitachi GPT Disk Manager」と同じものだった。初めからおよそ分かっていたことだが。

2011/01/12

記録面を調べる

HDDの速度から記録面数が分かる(かもしれない)割と簡単な方法がある。記録面数(=ヘッド数)が分かれば、そこから記録面当たりの容量、プラッタ数も判別できる。

(このエントリは一続きのエントリの1/2)

1.1. 調べ方


方法はHD Tune Pro(4.0以降。15日間の試用版がある)でHDDを計るだけ。Readで先頭のごく一部を計るだけなので、HDDに特別な準備は要らないし、たいして時間もかからない。なお、フリー版のHD Tune(2.55)では不可。
  1. HD Tune Proをインストールし、歯車のアイコンからOptionsを開いてBenchmark(HD Tuneの基本のシーケンシャルテスト)で「Full test」にする。この方が乱れの少ない結果を得られる。

    普通はFull testにすると時間がかかるが、この方法ではごく一部しか計らないので、問題ない。

  2. Benchmarkで「Short stroke」(HDDの先頭から指定した範囲だけで計測する機能)にチェックし、1GB(最小値)を指定する。なお、HD Tuneでの「gB」はSI接頭辞のGB(1GB=1,000,000,000Bytes)の意。

  3. これで計測すると、同じ高さ(速度)で一定の長さの水平線から成る組が繰り返し現れる。この組はShort strokeの範囲を1~10GBぐらいで変えながら計るとはっきりする。

    この組の中の各水平線がHDD中の各記録面(の最外周ゾーンを分割したもの)を示すので、この数で記録面数が分かる。
ただし、これは記録面(の最外周ゾーンの線記録密度)に分かりやすい個体差があること、その記録面の速度(の変化)を正しく計測できることに依存するので、HDDや環境によってはうまく行かない。

この方法の背景については、過去のエントリ(記録面と速度の実際プラッタ容量と速度の実際)参照。自分で考えたものだが、今のところ、否定する結果には行き当たってない。

1.2. Deskstar 7K3000の場合


HDD内部の細かいスペックをメーカーは公開しないようになってきているが、HGSTも新しいDeskstar 7K3000では、その前の7K2000までと違ってプラッタ数/ヘッド数をスペックに載せていない(Specificationもサイトに出てない)。

よって、これらは不明だが、店頭では書いてあったりする。それをとくに疑う理由はないが、自分で確かめられるものなら確かめてみたい。これまで記録面を調べてこなかった3.5インチHDDでもあるし。

対象は3TBと、2TB×2の3台。いずれもリテール版。
略称
(便宜的に)
型番容量
(GB)
製造
年月
ファーム
ウェア
シリアル
ナンバー
重量
(g)
組立
工場
3000HDS723030ALA6403000.52010/123B0YHG3T8XA685タイ
2000aHDS723020BLA6422000.32010/11180F303KA2D664中国
2000b2010/11180F304ALZD663中国

左から3000、2000a、2000b。
Deskstar 7K3000Deskstar 7K3000

3000と2000は上下とも外観からして違う。というか、共通部分がない。
  • 上蓋が違う。左下のヘッドスタックアッセンブリ部分のネジが3000は3本、2000は2本で、位置も違うので、たぶんヘッドスタックアッセンブリが違う。
  • ラベルにある12Vの消費電力が3000は850mA、2000は740mAなので、たぶんスピンドルモータが違う。
  • シャシーの形状が違う。プラッタの下の部分が3000の方が厚い。
  • PCBのパターンが全然違う。
ということで、3000と2000ではプラッタ数/ヘッド数が違うらしいことはこの時点で分かる。

リテール版の箱は共通のものだが、そこにある写真は7K3000発表時の資料に出ているもの(3TBだと思う)とは違う。
Deskstar 7K3000: Inside picture on box
Deskstar 7K3000: Inside picture on box

このプラッタ数は3で、ヘッドに繋がる配線(黄色の部分)が4段あるので、最上段は下向きに1つ、中間の2段は上下に2つずつ、最下段は上向きに1つヘッドが付いているとすれば、ヘッド数は6になる。まあ箱の写真を信じるかという問題もあるし、参考程度。

CrystalDiskInfo(3.10.0)で見たところ。とくに変わったところはない。キャッシュが32MBと表示されるのは、そういうものらしい。
Deskstar 7K3000: CrystalDiskInfo

[追記1]

その後、7K3000のOEM Specが公開された(2TB&1.5TBモデルだけ)。それによると、
  • 2TBは3プラッタ6ヘッドなので、下記の結果と合致する。これはいいとして、

  • 1.5GBの方も3プラッタだが、ヘッドは「5 or 6」と記載されている。つまり、5ヘッドなら記録面当たり300GBで、プラッタ当たり600GBとなり、6ヘッドなら記録面当たり250GBで、プラッタ当たり500GBとなる。当然、速度も変わり得るわけで、2.5インチHDDにおける3記録面問題と同じ、5記録面問題の勃発である。こういうときこそ、この方法が役に立つわけだが。
記録密度についても記載があるが、3TBも公開されたときに合わせて考えることにする。

[追記2]

3TBモデルのOEM Specificationも公開された。ただ、これはUltrastar A7K3000と一緒のもので、7K3000の3TBはA7K3000の3TBのDeskstar版のようである。つまり、名目上は同じ7K3000シリーズであっても、3TBモデルと、2TB&1.5TBモデルでは実質的に別シリーズだったというオチ。

ともあれ、3TBは5プラッタ10ヘッドなので、下記の結果と合致する。

一応、公称スペックをまとめると以下のようになる。
モデルヘッド
記録面
当たり
容量
(GB)
Max Data
transfer
rate
(Mbps)
Typ Sustained
transfer
rate
(MB/s)
Recording
density
- max
(Kbpi)
Track
density
(Ktpi)
Areal
density
- max
(Gbits/in2)
3TB1030016311621445255369
2TB6333.316561621443285411
1.5TB5
or
6
300
or
250
14331401249247308

内部写真を見る限り3TBも2GB&1.5TBもプラッタ中央の抑え金のサイズは変わらないようなので、データビットに使える面積は同じだと思う。その上で記録密度を見ると、3TBと2TBは線記録密度(最大)がほぼ同じで、容量の差は下記で推測したとおりトラック密度(最大、だと思う)によることが分かる。

したがって、公称スペック上の最大値としては3TBと2TBの速度はほぼ同じで、後は個体による差、ということになる。

一方、1.5TBのスペックは5ヘッドで記録面当たり300GBの場合のものだと思うが、それにしても同じ記録面当たり容量の3TBよりかなり低い。公称スペックでこれなので、6ヘッドの可能性があることも考えると、同じプラッタ数で500GB違いの2TBと比べて積極的に選択する理由はないように思う。

1.3. 記録面の判別


計測に使ったのはThinkPad X61s。そのICH8-Mの内蔵ポートに対象のHDDを接続し(これと同じ)、Windows 7 64bit上のHD Tune Pro(4.60)で計測した。AHCIのドライバはIntel Rapid Storage Technology 10.1.0.1008。パーティションはない状態
Deskstar 7K3000: HD Tune Pro (Short stroke)

まず3000は、1GBでは組が入りきらず、3GBで繰り返しがはっきりした。組の前半は変化が少ないが、後半に大きく動いて、分かりやすくてラッキー。3GBと6GBでのグラフを抽出したのが以下(便宜的に各水平線にアルファベットを振った)。
Deskstar 7K3000: HD Tune Pro (Short stroke)

面の数は10で、組の長さは約1.5GB。したがって、10記録面、5プラッタということで、プラッタ当たり容量は600GBということになる。

次に2000bも分かりやすい。このグラフが以下。
Deskstar 7K3000: HD Tune Pro (Short stroke)

面の数は6で、組の長さは約1GB。したがって、6記録面、3プラッタということで、プラッタ当たり容量は667GB。

問題なのは2000a。3つの高さの水平線が繰り返すので、3の倍数ということは確定だが、各水平線の長さが飛び抜けて長い。同じ高さでも長さが交互に入れ替わっているように見えるもの(以下のCとF)があるので、別の面と見なせば以下のようになる。
Deskstar 7K3000: HD Tune Pro (Short stroke)

面の数は6で、組の長さは約2.05GB。各面の長さは3000と2000bの倍以上になる。

これらの2GBでのグラフをまとめてみた。
Deskstar 7K3000: HD Tune Pro (Short stroke) compiled
(注)速度はSI単位系のMB/sに換算した。以下同じ。
  • 意外なことに速度は完全にバラバラではなく、ばらけているなりに揃っている。3000は2000よりプラッタ当たり容量が少ない分、全体的に低めなのかと思ったが、そうでもないらしい。容量の調整はトラック密度の方でやるということかもしれない(2.5インチの5K500.Bは公称スペック上はそうだった)。

  • 速度は最高の面で166MB/s程度、最低の面で146MB/s程度なので、幅は20MB/s程度で、約12%ある。

  • この中で160MB/s程度の面を普通とすると、2000aは高い面が多く、2000bは高い面があるが低い面もある、3000は普通が多いといったところ。
念のため、この中で変化の大きい2000bについて、各面に収まるようパーティションを作成し(先頭から番号を振った)、CrystalDiskMark(3.0.1)で計ってみた。テストサイズはパーティションの容量の都合上、100MB。
Deskstar 7K3000: CrystalDiskMark

この結果をHD Tune Proのグラフと重ねたところ。
Deskstar 7K3000: HD Tune Pro & CrystalDiskMark

速度の変化は一致しているが、CrystalDiskMarkの方が幅は大きい。幅は28MB/s程度で、約16%。

以上で、記録面(の最外周ゾーン)については大体分かった。

1.4. 他の指標との関係


記録面は分かったとして、これが他の指標ではどう出るか。ということで、CrystalDiskMarkを組がほぼ収まる2GBのテストサイズで計ってみた。
Deskstar 7K3000: CrystalDiskMark

2000aと2000bはほぼ同じで、これは上で見た結果と合致する。3000がそれに次ぐことも合致するが、差はやはりHD Tune Proより大きい。

次にHD Tune Proで全体を計った結果。Full testと、Partial testを5段階中の5と、同じく4(デフォルト設定)にした状態。
Deskstar 7K3000: HD Tune Pro (Full and Partial test)

Partial testのギザギザは、記録面の変化が大きいほど激しくなる傾向があるのが見て取れる。

このFull testの結果をまとめると、まず割合ベースでは以下のようになる。
Deskstar 7K3000: HD Tune Pro compiled

波形は完全にならされているが、先頭部分が2000a、2000b、3000の順になっているのは、それぞれが持つ記録面の速度が平均化されればこうなるだろうな、という感じ。かつ、その順位がゾーンを通じて大体変わってないことも分かる。

次に容量ベース。
Deskstar 7K3000: HD Tune Pro compiled

500GBぐらいで2000と3000の順位が逆転する。当然だが、2TBまでの平均でいえば3000が一番高くなる。

さらにPartial testで、100GBから1GBずつ計測する範囲を広げながら計ってみた。
Deskstar 7K3000: HD Tune Pro (Partial test)

この3000のグラフを抽出したのが以下。
Deskstar 7K3000: HD Tune Pro (Partial test)

大きな波が出ているのは折り返し雑音のようなものだと思う。計測する範囲が広がるにつれてサンプリング位置が微妙にずれていくが、その小さな違いで大きな変化が現れる。ということを見るに、Partial testのギザギザは、やはりサンプリング位置にどの記録面が当たるかに左右されているように思う。

最後にランダムテストの結果。範囲は10GB、100GB、全容量の順。
Deskstar 7K3000: HD Tune Pro (Random)

10GBと全容量では、3000がわずかに優位だが、ほとんど同じ。

100GBでは、2000a、2000bともに30GBぐらいの位置での値が足を引っ張っているのが分かる。そこで範囲を40GBにしてみたのが以下。
Deskstar 7K3000: HD Tune Pro (Random)

代替セクタでもあるのかと思ったが、2つとも28~32GBの間でランダムに遅くなる現象が起きている。この程度の範囲ならランダムアクセスでもヘッドが動く幅はごく小さいはずだが(肉眼では見えないぐらい)、アームが動く音もする。謎だが、HD Tuneのアクセス方法とHDDの機構との間で何か嵌ったのかもしれない。

1.5. まとめ

Deskstar 7K3000
  • HD Tune ProのShort strokeを使って記録面を調べる方法が3.5インチHDDでも確認された、と考えてよいと思う。

  • HDDの(平均化された)速度は、どういう速度の記録面で構成されているかによる。同じモデルなのに速度が違うというときは(それ自体は極めて普通だが)、記録面を調べると何か分かるかもしれない。

  • 組の長さが1GBを優に超えるHDDがあることが分かったので、ベンチマークの際には対象範囲を考慮する必要があるかもしれない。
次に、2TiBを超えるHDDを使うときの問題について少し