jok's page

<-- junji okamoto

cosmos
HOMERESEARCHEDUCATIONLinuxLaTeXet cetraPDGDamaranDEUTSCHENGLISH

LANTANKに手を出してしまった...[12/31/2005]

  1. イントロ

    アイ・オー・データ機器といえば,コンピュータの様々な周辺機器を製造販売している会社で, 昔はシャープのMZシリーズ向けのボードなんかも出していたので愛着があります (私は,昔,MZ-80Bユーザだったので). そこからのPCパーツブランド「挑戦者」なるものが出ていて,一部でかなりの人気になっています.

    私は,つねづねデータのバックアップ体制が自宅で確立されていないことが不安 でした.そこで,バックアップ専用のコンピュータ導入を検討していたわけです. 候補としては,(1) 玄箱(玄人志向),(2) LANTANK(アイ・オー・データの通称 「白箱」,正式名称(SOTO-HDLWU)),(3) miniPC(MP915-B, AOpen JAPAN),(4) Mac mini(Apple Computer)あたり.

    結局,一番安いLANTANKを選択しました(1万9800円). 決め手は,その安さと,『日経Linux』(2006年1月号)での特集を読んで, できそうだという感触を得たから.メーカーからのサポート無し,HDD無し のNAS(Network Access Storage)ですが,同社のサポー ト有りのLANDISKと互換性がある(というか,ほとんど 同じ).自作に自信がない人はLANDISKを購入しても, 同じような使い方ができるのも見逃せません.

    私は,本体を挑戦者オフィシャルホームページ から注文し,HDDは,近くのお店で同一ブランド,同一 容量のものを2台購入しました.LANTANKは,CPUが SH4(266MHz)で, Debian/GNU Linux 3.1(Sarge)のCD-ROMが付いてくるLinux マシン. 年末の忙しい時期に,ちょっとした息抜きにRAID 1 (ミラーリング)の構築まで済ませました.

    と思ったら,2006年1月には新機種が出ることが判明. GLAN Tank(SOTO-HDLGW)(2005年12月27日,AV Watch, IMPRESS), まあ,まだ発売になっていないし,CPUも変わってしまったので,あせらず騒が ず.

    ここでは,詳しいインストールや組み立ての仕方,というよりは,さまざまな雑 感や注意点,こちらで得た一部のデータを紹介します(例によって,同じように やっても同じようにならなかった,ということはあり得るので,無保証です).

  2. Debian26のインストール

    上で述べたように,『日経Linux』2006年1月号では,「カーネル2.6とSamba の導入が簡単:『白箱』サーバーを付録CDで作る」(P.30-45)が特集されてい ます.CD-bootable のKnoppix 4.0 ベースのインストーラが付属しているので,それ を使用すると簡単に,kernel 2.6.13 が導入できます.このシステムは, LANDISK用に作られたもので,LANDISKで漕ぎいでな〜 が発祥の地.

    インストールの流れだけメモしておくと:
    (1) 別のCDでブートできるコンピュータのHDDを取り外し,新品のHDDに付け替 え,付属CDの内容をインストール.
    (2) LANTANKに,そのHDDを装着.
    (3) LANTANKをネットワークに接続し,同じくネットワークに接続されている 別のコンピュータから telnet してログインし,各種設定をする.
    (4) LANTANK の初期設定が終わったら,shutdown し,2台目のHDDを接続.
    (5) LANTANKを再び起動し,ネットワークに接続されている 別のコンピュータから telnet してログインし,RAIDの設定をする.
    というわけで,簡単そうです.

  3. 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台のコンピュータから問題なくネットにア クセスできる設定をするのに,ちょっとうろたえた).

  4. LANTANKの組み立て

    LANTANK には,組み立て説明書がありませんので, オンライン・マニュアルを参考にします.
    苦労したことや感想など:
    ○ 2台のHDDを装着する予定なら,1台目のHDDを取り付けた時は,LANTANKの上下のカバーは,取り付けないこと. 上下のカバーは,一度取り付けると,外すのが困難です.(裏に付いている3つ のツメの内,2つのツメの位置とその曲がる方向をメモしておけば,そこにカー ドなどを押し込んで,ツメを外すことができます (私は,完成した姿が見たい一心で,ついつい上下のカバーを取り付けてしま い,後で苦労しました).
    ○ 1台目のHDDは,IDEケーブルの真ん中に付けます.終端に付けるのは,2台目 のスレーブです(今回のMaxtor HDD は,ジャンパーピンをすべて外すのが, スレーブの設定でした).
    ○  1台目のHDDでの設定時に,user: landisk や,root のパスワードを変え ておいた方が安心です.ネットワークの設定は,1台目で済ませておきます.
    ○ 電源を落とすのは,LANTANK に telnet している状態で,shutdown -h now すればOKです.途中でネットワーク接続は自動的に切断され, LANTANK 背面のスイッチはONになったまま,電源が落ちます.ただし, 『日経Linux』の記事にあるように,このCDの場合, そのままだと電源が落ちないようなので,psmisc をインストールし, landisk-tools.setup を実行しておく必要があります.


  5. 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つ折ってしまいました. 内側の方だったので,きちっと差し込んでネジ止めすれば問題なく下カバーははまりました.

  6. 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年使えれば,御の字かな?

  このページの先頭へ戻る

  LINUXのページのトップへ戻る