HDD探し
白箱のHDDを購入するにあたっては,
電源容量の制限に気をつけねばなりません.具体的には,
5V と 12V の合計がピーク時で 4Aを超えない範囲でなければならないのです.
最初は,80GBで5400RPM あたりを2つ買うつもりだったのですが,
お店に行ってみるとないんですね.もう7200RPMの中で,
なるべく消費電力の少なそうなもの,
あまり巨大な容量でないものを選ぶことになりました
(秋葉原へ行けば,5400RPMも容易に見つかったでしょうが).
結局,購入したのは,Maxtor DiamondMax 10 Model: 6L160P0 160GB PATA133 HDD
です.一万円弱でした.これは,+5V 740mA, +12V 1500mA
なので,(0.74+1.5)*2=4.48 となってしまい,2台のHDDおよそ12%のオーバーです.
およそ1割のオーバーなので,OK だ,と自分に言い聞かせて購入しました(汗).
以下は,CDブートして,HDDにDebian26をインストールし,
それをLANTANKに取り付けてブートし,そこにtelnet で接続して,fdisk をした時のメッセージです.
landisk:~# fdisk /dev/hda
The number of cylinders for this disk is set to 19929.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hda: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 250 2008093+ 83 Linux
/dev/hda2 251 313 506047+ 82 Linux swap / Solaris
ここまでで苦労したこと.
○ TA 経由でネットワークに接続しており,TA が DHCP Server なので,
それに合わせてLANTANKのアクセスを調整しなければならなかったこと.
debian26 のシステムでは,初期IP addressが 192.168.1.80
となっていて,自宅のプライベートアドレス空間と合わなかった.
一時的に,一台のコンピュータのIPアドレスを固定値 192.168.1.2
にして作業し,LANTANK のIPアドレスを自宅のDHCP Server の範囲に合わせるよ
うに修正した(LANTANK を含め,3台のコンピュータから問題なくネットにア
クセスできる設定をするのに,ちょっとうろたえた).
2台目のHDDの組み込み
2台目を装着して,LANTANKを組み込み,ブートしてfdisk しました.
以下では,partition 1にディスク容量をすべて割りふり,
パティションのタイプをfd (RAIDのオートディテクト)にしたところまでです.
この後,reboot します.
landisk:~# fdisk /dev/hdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 19929.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): p
Disk /dev/hdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19929, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-19929, default 19929):
Using default value 19929
Command (m for help): p
Disk /dev/hdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 19929 160079661 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/hdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 19929 160079661 fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
苦労したことや感想など:
○ それにしても,2台組み込むのに,スペースがぎりぎりで,最初は,
2台入らないのではないか,と思えました.2台のHDDを重ねるようにしてから,
IDEケーブル,電源ケーブルの順に作業すると,比較的楽にできます.
○ 恐れていた通り,下のカバーのツメを1つ折ってしまいました.
内側の方だったので,きちっと差し込んでネジ止めすれば問題なく下カバーははまりました.
RAID 1の導入
RAID 1(ミラーリング)で運用するということは,2台の同じ容量のHDDで1台分
の容量しか持てないということ.もちろん,データの二重化が行なわれるわけで,
一台がこけても,もう一台がちゃんとデータを保持しているわけです.しかし,
一台がこけた時,交換用のHDDがないとRAIDが復活できません.ということで,
もう一台確保しておきたいところです.
debian26 の設定用のツールとして,mdadm があるというのを知り,試してみた
くなりました.http://w3.quake3.jp/sushi-k/pool/mdadm.1.9.0-4.sh4.deb
を取得し,dpkg --install mdadm.1.9.0-4.sh4.debす
ることでインストールできます./etc/mdadm/mdadm.confにミラーリング用のconfiguration を
書いて,mdadm -C /dev/md0 --lebel=raid1 --raid-device=2 /dev/hda3 /dev/hdb1
でRAID deviceを作成するところで,こけました.原因不明で,結局,
dpkg -r mdadmとして,uninstall してしまいました.
以下は,こけた時のメッセージです.
landisk:~# mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/hda3 /dev/hdb1
mdadm: /dev/hda3 appears to contain an ext2fs file system
size=157565520K mtime=Fri Dec 30 10:12:18 2005
mdadm: /dev/hdb1 appears to contain an ext2fs file system
size=160079660K mtime=Thu Jan 1 09:00:00 1970
mdadm: largest drive (/dev/hdb1) exceed size (157565440K) by more than 1%
Continue creating array? y
mdadm: SET_ARRAY_INFO failed for /dev/md0: Device or resource busy
いったん mdadm を止めてからやってみたり,process あやしいプロセスをkill
してからやってみたのですが,埒があかず,結局,このツールを使うのはやめま
した.
そこで,『日経Linux』流に,以下の手順でやりました.
(1) /etc/raidtab を作成.
(2) # mkraid /dev/md0 を実行.
(3) # mkfs.ext3 /dev/md0 を実行.
(4) /etc/fstab の書き換え.
(5) /etc/init.d/mountall.sh の先頭に,/sbin/raidstart --allを書き加える.
(1) /etc/raidtab の内容:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 32
persistent-superblock 1
device /dev/hda3
raid-disk 0
device /dev/hdb1
raid-disk
(2) # mkraid /dev/md0 を実行した時に,以下のようなメッセージが出て,
思わすちょっと慌てました.
landisk:~# mkraid /dev/md0
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda3, 157565520kB, raid superblock at 157565440kB
/dev/hda3 is mounted
mkraid: aborted.
(In addition to the above messages, see the syslog and /proc/mdstat as well
for potential clues.)
正解は,# umount /dev/hda3 をしてから,# mkraid /dev/md0 を実行する,
というものです.すると,以下のようになります.
landisk:~# mkraid /dev/md0
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda3, 157565520kB, raid superblock at 157565440kB
disk 1: /dev/hdb1, 160079661kB, raid superblock at 160079552kB
(3) # mkfs.ext3 /dev/md0 の結果は,以下のようになりました.
landisk:~# mkfs.ext3 /dev/md0
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19709952 inodes, 39391360 blocks
1969568 blocks (5.00%) reserved for the super user
First data block=0
1203 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
(4) /etc/fstab の最後に,1台のHDDの時は,
/dev/hda3 /share ext3 defaults 0 0
となっていたものを,
/dev/md0 /share ext3 defaults 0 0
と書き換えます.
正しく mount できたかどうか,確かめてみます.
landisk:~# mount -a
landisk:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 1976492 698844 1177244 38% /
tmpfs 31116 0 31116 0% /dev/shm
/dev/md0 155091412 32828 147180312 1% /share
○ mdadm には,はまってしまいました./var/log/messages には,
md0 already initialised のようなメッセージが出ているので,
# mkfs.ext3 /dev/md0 をすると,
landisk:~# mkfs.ext3 /dev/md0
mke2fs 1.37 (21-Mar-2005)
mkfs.ext3: Device size reported to be zero. Invalid partition specified, or
partition table wasn't reread after running fdisk, due to
a modified partition being busy and in use. You may need to reboot
to re-read your partition table.
と言われてしまい,悩んでしまいました.reboot をしても変化なしだったので.
どこかで,順番を間違えたのかもしれません.最後に,/var/log/messages の
RAID関係のメッセージをあげておきます.
Dec 27 22:21:05 landisk kernel: md: bind
Dec 27 22:21:05 landisk kernel: md: bind
Dec 27 22:21:05 landisk kernel: md: raid1 personality registered as nr 3
Dec 27 22:21:05 landisk kernel: raid1: raid set md0 active with 1 out of 2 mirrors
Dec 27 22:21:05 landisk kernel: RAID1 conf printout:
Dec 27 22:21:05 landisk kernel: --- wd:1 rd:2
Dec 27 22:21:05 landisk kernel: disk 0, wo:0, o:1, dev:hda3
Dec 27 22:21:05 landisk kernel: disk 1, wo:0, o:1, dev:hdb1
Dec 27 22:21:05 landisk kernel: md: syncing RAID array md0
Dec 27 22:21:05 landisk kernel: md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
Dec 27 22:21:05 landisk kernel: md: using maximum available idle IO bandwith (but not more than 200000 KB/sec) for reconstruction.
Dec 27 22:21:05 landisk kernel: md: using 128k window, over a total of 157565440 blocks.
Dec 27 22:21:05 landisk kernel: md: md0: sync done.
Dec 27 22:21:06 landisk kernel: RAID1 conf printout:
Dec 27 22:21:06 landisk kernel: --- wd:1 rd:2
Dec 27 22:21:06 landisk kernel: disk 0, wo:0, o:1, dev:hda3
Dec 27 22:21:06 landisk kernel: disk 1, wo:0, o:1, dev:hdb1
Dec 27 22:27:54 landisk kernel: kjournald starting. Commit interval 5 seconds
Dec 27 22:27:54 landisk kernel: EXT3 FS on md0, internal journal
Dec 27 22:27:54 landisk kernel: EXT3-fs: mounted filesystem with ordered data mode.
○ これで無事に動いているように見えます.あとは,
2台のHDDが,12%の電源容量オーバーをしている点が気になります.
使い方次第のような気もしますが.
○ telnet でLANTANK にログインすると,小さく「ドン」と音がします.
HDDのアクセスがLANTANKのボディーに響くのでしょう.
床に直置きしているので,響くのかも.
○ これで,他のコンピュータのデータを手軽に一元化して管理できると思うと,
うれしくなります
(もちろん,どこまで耐久性があるかは,使い続けてみないとわかりません).
合計,3万数千円で,2〜3年使えれば,御の字かな?