2006年9月5日

ディスクIO性能(4) - PDC20270 のRAID機能(dmraid)を探る(2)

FastTrack100 TX2 (PDC20270)のBIOS画面で RAID Array を定義すると、grubの様なブートローダから一つのディスクとしてアクセスできる。この機能はRAID上のBIOSで提供され、ディスクに障害が発生しても異常停止することなく起動出来るらしい。RAID1 or RAID10などの障害復旧のときの再構築の機能も大抵ある。

そんな素敵な機能を無視して、単体HDDとして扱うために1台のみLinear Arrayとして定義して使うとき気をつけなければいけないことは何だろうか?

RAIDセットの情報は何処?

何か元ディスクのCHSが違うけどどうすればいいの?

マニュアルにはどこにも書いていないが、隠れソフトウェアRAIDのmetadataはディスクの最後尾ほどに書かれている。特にPromise の RAID では最終トラックの最初のセクタ(大抵最後から63セクタ前)にあるらしい。

これを確かめるには、元HDDのセクタ数とdmraidで認識される単体HDDのセクタ数の差を比較すれば良く。

# hdparm -g /dev/hdf
/dev/hdf:
 geometry     = 65535/16/63, sectors = 78165360, start = 0
# dmraid -r /dev/hdf
/dev/hdf: pdc, "pdc_dhgiffaf", linear, ok, 78165297 sectors, data@ 0
# expr 78165360 - 78165297
63

dmraid 経由で扱う場合は気をつける必要は無いのだが、 RAID metadata を踏まない様にパーテションを切る必要がある。

次に、RAIDセットのCHS情報は、元になった単体HDDとは異なる。 正しくはRAIDセットのCHS情報に基づいて、パーテション情報を書かなければならない。

昔ディスクのCHS情報は重要なものだったが、いまはLBA/LBA48なりを拡張INT13Hでアクセスするのが定石らしく、パーテションテーブルには、CHSベースとLBAベースの両方の値がかかれている(参考ディスク情報パーテションテーブル)。

ディスクアクセスにCHSを使うのはDOSか古いブートローダぐらいなので、元になった単体HDDのCHSベースでパーテションを切っても問題無いかと思う(違うかも)。

ただ安全を考えると、dmraid で有効かされたディスクに対して fdisk を実行してパーテションを切った方がよい。その場合、自動的にRAID metadataを外すように割り当ててくれるので、一石二鳥である。

結論

単体HDDとして扱うために1台のみLinear Arrayとして定義して使うときのパーテション切りは、dmraid経由に使わない場合でも、一度 dmraid で有効化させたRAIDセットに対して fdisk を実行しよう。

但し、RAID機能を無効に出来るならばそっちを使おう。

0 件のコメント: