LinuxでBigDrive(137GB over Disk)を使う

■大容量化の進むディスク
■137GBの壁について
 IDEディスクの急速な大容量化は止まる所を知らず,2003年8月現在,店頭で 販売されている最大容量のディスクは 300GB となりました.また, バイト単価の面でコストパフォーマンスに優れるディスクは 120GB 程度の容量を 持つドライブとなり,内蔵ディスクの換装もしくは増設の際には,120GB 以上の ディスクを視野に入れる人が多いと思います.

 ディスクを換装ないしは増設する 場合,(コストの面を除くと)できるだけ大きな容量のものを使用して少ない台数 で大容量を確保した方が何かとメリットがあります.例えば限られた空きベイ 数を有効に利用できるほか,消費電力も低減できます.また,最近は1ファイル 辺りの容量が巨大になる動画ファイル(例えば DV (DigitalVideo) をキャプチャ したファイルは,60分間分で 13GB 程度になります)のようなものを扱う場合, 総容量よりも,1つのパーティションの容量が大きな方が何かと使い勝手が良い でしょう.

 『では,200GB 程度のディスクを1本内蔵し,ブートディスクとしても使用 しつつ,データディスクとしても使用しよう…』と,考える人は多いと思いま すが,ここに落とし穴があります.この辺りの話は 『IDE ディスク容量の壁について』の ページに詳しくまとめていますが,比較的新しいマシンとOSを使用する場合でも, 137GBを超える容量を持つディスクを使用した場合,問題が発生する場合があります.

 現在,もし大容量ディスクの利用を検討しているのであれば,積極的に現在 使用中のマシン構成の情報を収集し,十分吟味した上でアクションを起こした 方が良いでしょう.なお,この話題は『IDEディスクとして内蔵させた場合』に のみ適用されます.外付けの USB や FireWire 接続の所謂『ガワ』を使用した 場合には,変換アダプタがBigDriveへの対応を謳っていれば問題なく利用できます.

■Terminator 137GB 超えは可能か?
 Asus Terminator TU の BIOS は,137GB を超える容量のディスクを扱うため に必要な,LBA48 には対応していません (最新版のBIOSでは対応しています) . そのため,起動ディスクとして大容量ディスクを使用する場合は注意が必要です.

 詳しくは前述のページを読んで頂くとして,BIOSが対応していないということ は,そのまま『BigDriveを利用できない』ということには『なりません』. BIOS での LBA48 対応は,137GB を超える領域にインストールされたOSをブート する場合には必要になりますが,昨今のOSでは,IDE ディスクを BIOS 経由でアクセスしないからです.具体的には, Windowsであれば Windows 2000/XP,Linux 等がこれに該当します.ただし, これら OS でも,ディスクアクセスを司るドライバが LBA48に対応してい ないと,137GB を超える領域を使用することができません.

 また,逆の話をすると, BIOS が LBA48 に対応していたとしても,OS が対応していない/対応 するように設定していない場合,137GB 以上のディスクを利用できません

 Windowsでの使い方 に関しては前述のページにて解説しましたので,本ページでは Linux での利用 方法について解説します.

■Terminator TU+ Linux で 137GB超え
 結論を先に書きますと,Linux の Kernel 2.4.19 ,ないしは RedHatのように 当該パッチを当てたkernelであれば LBA48 に対応しています. /usr/src/linux-2.4.19/drivers/ide/ide-disk.c を見ますと,先頭のコメントに 『 Version 1.11 added 48-bit lba』となっています.つまり,この版のドライバ ないしはパッチが適用されていれば,LBA48 に対応ということになります.

 また,コマンドレベルで問題が発生しないかに関して見てみますと,fdisk や mke2fs 等のディスク関係のソフトは大容量RAIDを接続した際にも問題なく動作し ていましたので,一通りのコマンドは対応していると考えて問題ないでしょう.

 ちなみに会社で以前試した限りでは,SCSI接続のRAIDアレイで1パーティション あたり1TB (1000GB) までは問題なく利用でき,現在も安定して動作しています. Kernel 2.4.17までは1ボリューム 1TB まで.Kernel 2.4.18 以降は 2TBまで 扱え(2.4.18 では若干問題があるようですが),2.6以降では 2TB の制約もクリアでき るようです.そういった意味では,現時点で一般に使用されている Kernel であれば, 1TB までは問題なく使用できると考えて良いでしょう.

 ただし,Vine2.6r1 のように,インストール後は 2.4.19 が動作するが, インストール時には 2.4.18 が使用されるような特殊な物の場合は注意が必要です. このような場合,最初の起動時に 137GB 未満の領域しか見えません.そこで, インストール時に 137GB 未満のパーティションを切り,そこに Linux をインストール して再起動します.再起動後は 2.4.19 で起動されますので,137GB 以降の領域も見える ようになります.ここで改めて残りの部分をパーティション分けする良いでしょう.

■250GB ディスクを使う
■接続の方針とドライブの選択
 私が現在利用中の Terminator TU のディスク構成は,120GB ディスク2本となって います.このうちのブートディスクを換装するのは,作業量的に少々辛いものがあります. では,全体をデータ領域として利用しているディスクの中身を大容量ディスクにコピーして 換装する…というのも手ですが,今回は換装ではなく増設を行うことにしました. 無論出来ない訳ではなく, 作業量的に面倒だから…といった問題や,運用方法を考えた結果です(『まとめ』で説明).

 ここで検討しなければならないのは,Terminator 特有の問題とも言えますが, 電源容量は足りるか,発熱は問題ないかといった問題です.無論,外付け(USB,SCSI ブリッジを使用等)する手も考えられますが,利用スペースを考慮してIDE ディスク内蔵する ことを考えます.

 このようなことを考えつつディスクを選定すると,高速な 7200rpm のディスクではなく, 発熱および消費電力,騒音の少ない 5400rpm のディスクの方が好ましいでしょう.次に 容量ですが,出来るだけ大容量な物(ただしコスト的に見合う物).そしてメーカーや製品 ラインですが,できるだけ耐久性の見込めるメーカーやラインが良いでしょう.

 私は以上のようなことを検討した結果,MAXTOR の MaxLine II シリーズにすることにしました.

 実のところ,最近の MAXTOR の製品は初期不良率が高い傾向があったり,発熱がキツイ ものがあったり等,あまり評判が良くありません.しかし,日立(IBM)製は私の周りで1年 程度で壊れまくり(RAIDに使用していた 7200rpm の 120GB タイプが 1.5年で 3/16). WD製は過去の印象があまり良くないので避け,では Seagateはどうか… といった状況です. 尤も,160GB を超える容量を持つ 5400rpm ディスクというと MAXTOR くらいしか選択肢が 無いわけですが….

 次に製品ラインに関してですが,MAXTOR からは最近流行の流体軸受けではなく,ボール ベアリングタイプではありますが, MaxLine II というシリーズのディスクが販売されています.このシリーズは旧ラインの製品と比較し, 信頼性を大幅に高めたラインです.24時間365日連続運用の環境下で利用することが想定 されており,MTTFは100万時間を超える高信頼性をメーカーは謳っています.なお,MTTF とは『Mean Time To Failure』の略であり,故障によって停止するまでの平均時間のことです. ちなみに修理可能なシステムの場合,MTTFではなく,MTBF(Mean Time Between Failure:平均 故障間隔)で表される場合もあります.

 つまり,100万時間ということは,1,000,000/(24*365)=114 となりますので,故障するまでに 114年以上かかるということになります.ただし,MTTFは算出方法を考慮して読む必要があります.この 数値は複数台のディスクを同時に動かした際に,何時間で何台壊れるかで算出します. つまり,100万台並列で動かした場合は1時間で1台壊れるということです.運が悪ければ早々に 壊れると言い替えることも出来ます.

(例えば先の日立製ドライブの例で言うと,16台を24h連続運転で1.5年動かし,3台壊れた… という形で計算しますと,稼働時間は 24*365*1.5=13,140h.のべ稼働時間は 13,140*16=210,240h. 3台壊れましたので(実際には壊れた時期はバラバラですが,1.5年経過して急に壊れたとして計算), MTTFは210,240/3=70,080hとなります.短い… :-<)

 とは言え,100万時間というのは『絶対に壊れない』とまでは言えませんが,かなり良好な値です. なかなか各メーカーのドライブ・データシートにその値を 見ることはできませんが,3.5inch の IDE ディスクの MTTF は一般に 20万〜80万時間. 2.5inch の IDE ディスクは 30万時間程度.高信頼性が求められる SCSI ディスクでようやく 100万時間前後です.そういった意味では,MaxLine II シリーズはコンシューマ向けの 廉価な IDE ドライブであるも関わらず,エンタープライズ向けの高い信頼性を持ったディスク と言うことも出来るかと思います.

 後は容量の問題ですが,Maxline II シリーズには 250GB と 300GB のラインがライン ナップされています.使い勝手の面では容量は大きいに超したことはありません.しかし, その容量差は 50GB にも関わらず,市場価格ではかなり開きがありますので,250GB のタイプ を選択することにしました.

■MAXTOR 5A250J0 (250GB) IDE ディスクを使う
 と,前述したような理由で,MAXTOR 製の 3.5inch 5400rpm 250GB IDE ディスクである 5A250J0 を使用することにしました.

MAXTOR 5A250J0.27450円也.BestDo! で購入したところ,カードゲームで当たり, 200円分の金券をもらう.

(最近は私が購入した時点よりもかなり値下がりしているようで,2003年11月現在で 2万円弱のようです)

MaxLine II の 250GB.ATA/133 に対応
消費電力は +5[V] が 585[mA],+12[V]が 690[mA].
以前購入し,USB 接続でバックアップに使用している DiamondMax16 シリーズの 250GB ディスクと全く同じ.同じく 120GB のそれぞれ 795[mA],896[mA]と比較すると大幅に低消費電力.
一時期 SCSI 変換アダプタを使用してディスクを内蔵 していたリムーバブルケースに取り付け.セカンダリIDEにマスターとして接続 しました.

 接続後起動した際の dmesg 当該部分は以下の通り.

(略)
hdc: Maxtor 5A250J0, ATA DISK drive
(略)
hdc: attached ide-disk driver.
hdc: host protected area => 1
hdc: 490234752 sectors (251000 MB) w/2048KiB Cache, CHS=30515/255/63, UDMA(66)
(略)

 きちんと 250GB 認識されているのが分かります.

 あとは fdisk 等でパーティション 分けします.現在 Kernel 2.4.21 を使用していることもあってごく普通に全領域が見え たため,私は1パーティションとして使用できる ように設定し,ext3 でフォーマット./etc/fstab を書き換え,起動時にマウントする ようにしました.なお,他のドライブと同様に,"/sbin/hdparm -S 180 /dev/hdc" とし,180秒間アクセスが無かった場合にはスピンダウンするよう,/etc/rc.d/rc.local に記述しました.

■使ってみる
 まずはパフォーマンスを hdparm で確認してみました.シーケンシャルアクセス での転送レートを調べたところ,

#hdparm -tT /dev/hdc

/dev/hdc:
 Timing buffer-cache reads:   128 MB in  0.81 seconds =158.02 MB/sec
 Timing buffered disk reads:  64 MB in  1.90 seconds = 33.68 MB/sec

 このようになりました.UDMA33 程度のMAX転送レートで頭打ちになっており, 同じマシンで使用している MAXTOR 製 120GB (4R120L0,4G120J6)と差が ありません.

 一応どのような動作モードで動作しているかを確認した結果は,以下の通りです.

#hdparm /dev/hdc

/dev/hdc:
 multcount    = 16 (on)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 30515/255/63, sectors = 490234752, start = 0

 このように特に設定しなくても(デフォルトで) DMA アクセスで使用 されており,最適な設定が利用できているようです.

 次にディスク側の情報を確認したところ,udma0〜udma6に対応しており ますが,現在は udma4(UltraDMA66)で動いているようです.

# hdparm -i /dev/hdc

/dev/hdc:

 Model=Maxtor 5A250J0, FwRev=RAMB1TU0, SerialNo=*******(伏せます)
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 udma5 udma6
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive Supports : ataATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6 ATA-7

 hdparm コマンドの -X オプションを使用して udma5 以降にすると パフォーマンスが上がる可能性もあります.しかし,ドライバ側が対応して いなかったり不安定であったりする可能性もありますので,安全を見て デフォルトで認識されるモードのままにすることにしました.以前 udma6 に変更しようとした際に,マシンがハングして大変な目に遭いましたので…

 機能的にはごく普通のIDEディスクですので特筆する点はありませんが, やはり大容量ディスクは使い勝手の面で大きなアドバンテージがあります. しかし,『あれもこれも』とコピーした所,あっという間に空き容量は 20GB程に….やはり収納場所とディスクは空きがあればあるだけ使って しまい,充分というものは無いようです.

■まとめ
 『使ってみる』でも書きましたが,大容量ディスクはとても使い勝手が 良いです.1年ほど前であれば120GBでも超大容量だと思い,『まだまだ空き容量が 充分』と考えていたのですが,動画ファイル(DVからキャプチャしたり,TVを MPEG2で録画したり)を日常的に扱うようになると,すぐに空き容量が逼迫して来ます.

 今回ディスクを増設した理由に,『hda, hdb に保存されているデータで,それ ほど重要ではないが,テープやDVD-Rに書き出していると使い勝手が悪くなる (たまに使用するため,出来るだけすぐに使える場所に置いておきたい)ものを 格納しておく』といったことを考えていました.所謂倉庫的な使い方です.

 と,言いますのも,重要なデータはバックアップしておくということを考え, 最終的にこちらのページにまとめたような方法を 使用し,hda,hdbのディスクの内容をバックアップするようにしました.しかし, バックアップ先のUSB接続のディスク容量は250GB.hda,hdbはそれぞれ120GBですの で合計容量的に問題ありませんが,今回増設したhdcもバックアップするとなると, もう1台250GBのUSB接続ディスクを増設しなければなりません.これは少々コスト 的に痛手ですし,今後さらにディスクを増設していった場合には泥縄式にバック アップ方式を拡張していかなければならなくなります.このようなことをするので あれば,バックアップ対象ディスクの容量をハード的に制限することにより,重要 なファイルとそうでないファイルの整理を定期的に行うことを自らに課し,現行 システムを維持した方が得策ではなかろうかと考えた末の決断です.

 ある程度信頼性を考慮したシステムを構築する場合は,やはりバックアップも 含めたシステム設計が必要になります.

 とは言え,やはり大容量ディスクの使い勝手はすこぶる良いので,1ドライブ 500GB程度のディスクが廉価で発売された暁には,hda,hdb も換装して250GB程度の 容量を持たせようか…と,考えることしきりです.

 実は挑戦者のSOTO-HDWUE を使用して実現しようとも考えていたのですが(このガワを使用すると,2ドライブ を1ドライブとしてPC側に認識させ,利用することが可能になる.つまり300GB2台を 内蔵すると600GBの1ドライブとして見える),在庫切れとのこと.また,コスト的に も時期尚早かなぁと考え,断念しました.

 ちなみに現在は色々とファイルを整理&バックアップメディアに書き出しした結果, 以下のような状況になっています.

#df -h
ファイルシステム    サイズ 使用中 空き 使用% マウント場所
/dev/hda3             112G   80G   26G  75% /
/dev/hda1              61M   18M   39M  32% /boot
/dev/hdb1             113G   87G   20G  82% /export/hd1
/dev/hdc1             230G  126G   92G  58% /export/hd2

 日常的に MPEG2 でTV録画をし始めた関係(*1)で,hda, hdb は少々厳しいかもしれません. 気分的には,常に1パーティション50GB程度の空き容量は確保しておきたいところです.

(*1)いずれ書くと思いますが,Linux 上で MPEG2 ハードウエアエンコーダ搭載の キャプチャカードが動くようになり,現在これを使用して日常的に TV 録画するよう になりました.DiGA 80Hで SPクオリティで録画するよりも高画質で録画できるため, 大変満足しています.

 ディスクの低価格化と大容量化は時間が解決するであろう問題です ので,来年の今頃には内蔵300GBを3本…のような凄いことになっているかも… とも考えています.


『Asus Terminator 活用メモ』 へ戻る