内蔵HDDと同じく外付けHDDにもWDのWD20EADSを使用。外付けHDDには
センチュリー 冷やし系HDD検温番 マットブラック CLS35EU2BF
- 出版社/メーカー: センチュリー
- 発売日: 2008/04/24
- メディア: Personal Computers
- クリック: 35回
- この商品を含むブログ (7件) を見る
なお、この外付けケースはHDD換装前にeSATA接続でRAID設定し、ちゃんと使えています。
さて、何も考えずに外付けさせてみると
との表示。同一サイズで何故だめなんだろう…。
そういえばhttp://d.hatena.ne.jp/tissi/20081227に「パーティションに空きを作っておくべき」という記載があったな、と思って確認してみると、さらに重要情報が。
にゃは 2009/10/04 23:03
こんばんは。にゃは と申します。明快な作業手順書のお陰で300GBから1TB換装、さらにRAID構築に成功しました。
この場を借りてお礼申し上げます。ありがとうございました。
RAID構築の条件として、/usr/www/gate/mirror.cgi(引用者註:/usr/local/www/gate/mirror.cgi)に面白い記述があります。
「内蔵HDDとeSATAHDDの容量を...」
「内蔵HDDのhda6パーティション...総セクタ数が小さいときはエラーとする。」ということで、パーティション拡張の際には全領域を確保せず、ディスク後方に
数十MB程度の空き領域を残して拡張すると良いようです。わざと空き領域を設けることにより、メーカ&個体によるセクタ数の微妙な違い
を吸収するようになっているようです。
うぇいく 2009/12/17 22:18
当方でも、GX500Rを1.5Tに換装時、ミラーができなくなりました。結局、mirror.cgiの該当箇所のエラーチェックをすっとばして構築しました。
どうも、うまくゆかない原因は、総論理レコード数が、符号付32bit整数の範囲から外れるためのようです。そのため、Diskの情報を収集するモジュールが、総容量などに負数を返しているようです。
# 通常は、符号付32bit整数の範囲を外れると自動的に浮動少数に型がアップグレードされるはずなんですが・・・16進を直接参照したり、ビット演算子を使うとだめだった気が。結局、内部のモジュールが正しく情報を取得できてないっぽいので、うまく動いているように見えて、どこかでうまくゆかない・・・という可能性はのこっちゃいますね。安全を期するなら、「容量は、拡大しても1Tまで」と考えたほうがよさそうです。
# わたしはこのまま突き進みます。1.5Tのドライブ2つ買っちゃったし。
うぇいく 2009/12/18 00:15
連投失礼します。
ざっと見たところ、以下の2つを直すと、一応は動くっぽいです。原因はやはり、符号付32bit整数の制限でした。速度アップのために、use integer;をしているモジュールがあり、これにより、型の昇格がなくなり、数値は常に符号付intして扱われるようになります。2ファイルあります。どちらも、/usr/local/bin に入っています。
HDLdrive.pm
return $size += 0;(引用者註:103行目)
という部分を、
return $size;
に修正(文字列のまま返す)HDLraid.pm
$ret{size} = 2*$1;(引用者註:276行目)
を、
$ret{size} = sprintf('%lu',2*$1);
に修正(符号なしintとして文字列にする)もしかすると、ほかにもあるかもしれません。
この通りだとすると、HDL-GXシリーズに換装できるHDDは2TBまでですね。
うぇいく氏の記載に従って/usr/local/bin/HDLdrive.pmと/usr/local/bin/HDLraid.pmを修正。
すると
と利用可能の表示に変わりました!なのでミラーリング開始!
…ただ、心配なのが一点。
eSATA HDDが再構築されず「不明」のままなのですよね…。なんだかおかしい。
分からないまま対策作業。
landisk:~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [raid6] [raid10] md6 : active raid1 sdb6[1] sda6[0] 1952146368 blocks [1/1] [U] md5 : active raid1 sdb5[1] sda5[0] 208704 blocks [1/1] [U] md2 : active raid1 sdb2[1] sda2[0] 409536 blocks [2/2] [UU] md1 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices: <none>
landisk:~# fdisk -l Disk /dev/sda: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 2 27 208845 83 Linux /dev/sda2 28 78 409657+ 83 Linux /dev/sda3 79 144 530145 82 Linux swap / Solaris /dev/sda4 145 243201 1952355352+ 5 Extended /dev/sda5 145 170 208813+ 83 Linux /dev/sda6 171 243201 1952146476 83 Linux Disk /dev/md1: 213 MB, 213778432 bytes 2 heads, 4 sectors/track, 52192 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md1 doesn't contain a valid partition table Disk /dev/md2: 419 MB, 419364864 bytes 2 heads, 4 sectors/track, 102384 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md2 doesn't contain a valid partition table Disk /dev/md5: 213 MB, 213712896 bytes 2 heads, 4 sectors/track, 52176 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md5 doesn't contain a valid partition table Disk /dev/md6: 1998.9 GB, 1998997880832 bytes 2 heads, 4 sectors/track, 488036592 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md6 doesn't contain a valid partition table Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 2 27 208845 83 Linux /dev/sdb2 28 78 409657+ 83 Linux /dev/sdb3 79 144 530145 82 Linux swap / Solaris /dev/sdb4 145 243201 1952355352+ 5 Extended /dev/sdb5 145 170 208844+ 83 Linux /dev/sdb6 171 243201 1952146507 83 Linux
まずはWebメニューでRAID切り。
その次にRAIDの設定をやり直し。
landisk:~# mdadm -v -C -f /dev/md5 -l 1 -n 1 /dev/sda5 mdadm: /dev/sda5 appears to contain an ext2fs file system size=208812K mtime=Thu Jan 7 17:11:41 2010 mdadm: /dev/sda5 appears to be part of a raid array: level=1 devices=1 ctime=Mon Jan 4 19:29:03 2010 mdadm: size set to 208704K Continue creating array? y mdadm: SET_ARRAY_INFO failed for /dev/md5: Invalid argument
これは先日と同じメッセージで同じ失敗だ。
ではRAIDの準備は出来ているのだろう。
じゃ、続いてhttp://d.hatena.ne.jp/tissi/20081227のにゃは氏のコメント
<md5とmd6が単体動作になっているので、RAIDドライブ数を増やす>
mdadm --grow /dev/md5 -n2
mdadm --grow /dev/md6 -n2
に従ってみよう。
landisk:~# mdadm --grow /dev/md5 -n2 landisk:~# mdadm --grow /dev/md6 -n2 landisk:~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [raid6] [raid10] md6 : active raid1 sda6[0] 1952146368 blocks [2/1] [U_] md5 : active raid1 sda5[0] 208704 blocks [2/1] [U_] md2 : active raid1 sda2[0] 409536 blocks [2/1] [U_] md1 : active raid1 sda1[0] 208768 blocks [2/1] [U_] unused devices: <none>
ではミラーリング設定の画面に。
あ、表示が違う。状態が前は「共有フォルダ管理で使用中」だったのに今回は「未使用」。さっきはミラーリングの前にフォーマットしたよな。そのせいかな。
ではミラーリング開始!
…よし、今回は再構築できてる!
topで見てるとmd6_raid1とmd6_resyncが動いている。これが動いているから大丈夫ですね。
それから/proc/mdstatを見ると
landisk:~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [raid6] [raid10] md6 : active raid1 sdb6[2] sda6[0] 1952146368 blocks [2/1] [U_] [=>...................] recovery = 5.5% (109201408/1952146368) finish=337.2min speed=91066K/sec md5 : active raid1 sdb5[1] sda5[0] 208704 blocks [2/2] [UU] md2 : active raid1 sdb2[1] sda2[0] 409536 blocks [2/2] [UU] md1 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices: <none>
なんとかいけそうだ。よかったよかった。
mdadm --growコマンドが効いたのだろうな。フォーマットが不味かったのかもしれないけど…。まぁ動けばヨシ。
(n時間後)
途中経過。
landisk:~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [raid6] [raid10] md6 : active raid1 sdb6[2] sda6[0] 1952146368 blocks [2/1] [U_] [===============>.....] recovery = 75.0% (1464140160/1952146368) finish=117.3min speed=69286K/sec md5 : active raid1 sdb5[1] sda5[0] 208704 blocks [2/2] [UU] md2 : active raid1 sdb2[1] sda2[0] 409536 blocks [2/2] [UU] md1 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices: <none>
landisk:~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [raid6] [raid10] md6 : active raid1 sdb6[1] sda6[0] 1952146368 blocks [2/2] [UU] md5 : active raid1 sdb5[1] sda5[0] 208704 blocks [2/2] [UU] md2 : active raid1 sdb2[1] sda2[0] 409536 blocks [2/2] [UU] md1 : active raid1 sdb1[1] sda1[0] 208768 blocks [2/2] [UU] unused devices: <none>
再構築中も使える、という話だったが、afpではマウントできないし、smbでは内容を見れない状況。telnetでLANDISKにログインしていてもcatしたら
cat: ***.txt: 入力/出力エラーです
などと言われてしまう始末。
しかし再起動したら問題なくアクセスできるようになりました。良かった。