Recently in Linux Category

ひょんなことから、TS-TGLを入手した。だが、80GB*4のRAID5という前時代的なディスク容量。

仕方ないので、何も調べずにアキバにいって、価格と容量のバランスがよいWDの1.5TBを3本購入。
RAID5だから、3本でいいだろうと安易に考えたのが運のつきだった。。。。

家に帰り、TS-TGLにディスクを換装。

起動させメニューから確認。よしよし認識してるぞ。
既存のアレイを削除し、新しく作ろうとする、、、と、、、、

RAID5は4本必要です。

なんですと!おお、、なんということ。。。

では、仕方ないと、2本でミラーを組んでみることに。
そうすると、容量が、550GBのアレイになってしまう。。。なぜだ、、、

調べてみると、TS-TGLはそういう仕様らしい。なんという。

仕方ないので、ディスクを買うか、なんとかするとか思案。
しかしディスクかいにいくにしてもすでに夜中だったので、とりあえず朝までなんとかしてみようと。

そこで、とりあえず、ファームをroot奪取版に入れ替えてみる。

■ ファームの入替え
ntlworld.comからカスタムファームをDL
私は、1.12dを使用した。

DLしたら解凍し、japaneseの方をdclickしてinstall。
2,3回terastationが再起動したらtelnetがenableになっていると思う。

loginは、"myroot"でパスワードなしで入れます。

■ raidの構成
そもそも、今回は1.5TB*3でRAID5なので、本来は3TB使えるはず。
だが、TS-TGLは500GB*4=2TBという制限があり、2TB以上のアレイは認識できない。
# kernelのver上の制約という話もある?

仕方ないので、workaroundとして、2TB+1TBの2領域にわけることで、3TB使用可能にする。

以下の手順は、4 x 1TB = 2 Raid5 arrays => finally workingを参考。

1. 大前提。
データは吹っ飛びますので、どっかからもってきたディスクを流用する人は、退避させて下さい。かつ、最悪、terastation自身がただのbrickになる可能性もあります。
At your own risk で。

後、作業時にログをとらなかったのでコマンドの結果は適当です。
下の手順を見て何をしているか分からない人は、やらない方がいいと思います。

2. telnet で terastaion にアクセスし、mount 状況の確認。

  • bash# telnet -l myroot "TERASTAION IP"
  • root@CONTROLS1:~# df -h
  • Filesystem Size Used Avail Use% Mounted on
  • /dev/shm 15M 120k 14M 1% /mnt/ram
  • /dev/ram1 14M 211k 13M 2% /tmp
  • /dev/md1 1.4T 5.8M 1.4T 1% /mnt/array1

3. RAID Array1をアンマウント


  • root@CONTROLS1:~# umount /dev/md1

4. Diskのパーティションを切り直します。スロット1がsda、スロット2がsdb、スロット3がsdc、スロット4がsddと対応しています。
パーティション1はterastaionがsystem(firm)で使用している(多分)と思われます。2はswapで、3と4がデータ領域です。
今回は、 1.5TBのディスクを3本使い、パーティション3=約1TB パーティション4が約400GB(パーティション1と2の領域がある為)のディスクを3本でraid3=約2TB+約800GBのRAID5を組む為、3と4それぞれパーティションを切っていますが、ディスクの総容量が2TB以下ならパーティションを分割する必要はありません。


  • root@CONTROLS1:~# mfdisk -c /dev/sda (必要な本数分sdb-dも実施)

  • Command (m for help): d (パーティション3を削除)

  • Partition number (1-4): 3

  • Command (m for help): d (パーティション4を削除)

  • Partition number (1-4): 4

  • Command (m for help): n (パーティション3を作成)

  • Command action

  • e extended

  • p primary partition (1-4)

  • p

  • Partition number (1-4): 3

  • First cylinder (66-121601, default 66): 66

  • Last cylinder or +size or +sizeM or +sizeK (66-121601, default 121601): +1000000M

  • Command (m for help): n (パーティション4を作成)

  • Command action

  • e extended

  • p primary partition (1-4)

  • p

  • Partition number (1-4): 4

  • First cylinder (63808-121601, default 63808):

  • Using default value 63808

  • Last cylinder or +size or +sizeM or +sizeK (63808-121601, default 121601):

  • Using default value 121601

  • Command (m for help): t (swapパーティション2を作成)

  • Partition number (1-4): 2

  • Hex code (type L to list codes): 82

  • Command (m for help): p (パーティションの確認)

  • Command (m for help): w (write)

  • The partition table has been altered!

  • Re-read table failed with error 16: Device or resource busy.

  • Reboot your system to ensure the partition table is updated.

  • Syncing disks.

5. 手を3回叩き祈りながら再起動

  • root@CONTROLS1:/etc/rc.d/rc3.d# reboot
  • Broadcast message from root (pts/0) Mon Aug 10 15:49:05 2009...
  • The system is going down for reboot NOW !!


6. RAID Arrayの作成
mdadmというのはlinuxのソフトウェアraidの管理コマンドです。補則を。

  • mdadm --create /dev/md1 --level=5 --raid-devices=3 --force --run /dev/sd[a-d]3
  • -create : arrayの作成
  • /dev/md1 : 作成するarrayを指定
  • -level=5 : raid何かを指定。今回はraid5なので5。
  • -raid-devices=3 : 作成するarrayで使用するディスクの本数。今回は3本。

あと言うまでもないとは思いますが、 -run /dev/sd[a-d]3というのは、適宜書き換えて下さい。[a-d]の部分でdiskを指定し、その後の数字"3"はパーティションnoです。

例えば、raid5を4本で組む場合は、

  • mdadm --create /dev/md1 --level=5 --raid-devices=4 --force --run /dev/sd[a-d]3

となります。

では本番。

  • root@CONTROLS1:~# mdadm --create /dev/md1 --level=5 --raid-devices=3 --force --run /dev/sd[a-c]3
  • mdadm: array /dev/md1 started.
  • root@CONTROLS1:~# mdadm --create /dev/md2 --level=5 --raid-devices=3 --force --run /dev/sd[a-c]4
  • mdadm: array /dev/md2 started.

7. fstabの書き換え。

  • root@CONTROLS1:~# vi /etc/fstab
  • # /etc/fstab: static file system information.
  • #
  • #
  • /dev/md0 / auto defaults,noatime 0 0
  • proc /proc proc defaults 0 0
  • /.swapfile swap swap defaults 0 0
  • /dev/md1 /mnt/array1 xfs rw,noatime 0 0
  • /dev/md2 /mnt/array2 xfs rw,noatime 0 0


8. diskinfoの書き換え。これやらないとブラウザの管理画面がおかしくなります。

  • root@CONTROLS1:/# vi /etc/melco/diskinfo
  • array1=raid5
  • array2=raid5
  • disk1=array1
  • disk2=array1
  • disk3=array1
  • disk4=array1
  • usb_disk1=
  • usb_disk2=
  • usb_disk3=
  • usb_disk4=


9. 作成したarrayをフォーマットします。

  • root@CONTROLS1:/# mkfs.xfs -f /dev/md1
  • mkfs.xfs: warning - cannot get sector size from block device /dev/md1: Invalid argument
  • meta-data=/dev/md1 isize=256 agcount=367, agsize=1048576 blks
  • = sectsz=512
  • data = bsize=4096 blocks=384005616, imaxpct=25
  • = sunit=16 swidth=48 blks, unwritten=1
  • naming =version 2 bsize=4096
  • log =internal log bsize=4096 blocks=32768, version=1
  • = sectsz=512 sunit=0 blks
  • realtime =none extsz=196608 blocks=0, rtextents=0
  • root@CONTROLS1:/# mkfs.xfs -f /dev/md2
  • mkfs.xfs: warning - cannot get sector size from block device /dev/md2: Invalid argument
  • meta-data=/dev/md2 isize=256 agcount=333, agsize=1048576 blks
  • = sectsz=512
  • data = bsize=4096 blocks=348172656, imaxpct=25
  • = sunit=16 swidth=48 blks, unwritten=1
  • naming =version 2 bsize=4096
  • log =internal log bsize=4096 blocks=32768, version=1
  • = sectsz=512 sunit=0 blks
  • realtime =none extsz=196608 blocks=0, rtextents=0

10. arrayをマウントします。

  • root@CONTROLS1:/# mount /dev/md1
  • root@CONTROLS1:/# mount /dev/md2

11. terastation起動時に作成したマウントが読まれるようにスクリプトを仕込む

  • root@CONTROLS1:/# vi /etc/init.d/restart_my_array.sh
  • #!/bin/sh
  • echo "-- rebuild mdadm.conf for md1--"
  • echo 'DEVICE /dev/ts_disk?_3' > /etc/mdadm.conf
  • mdadm -Eb /dev/ts_disk?_3 >>/etc/mdadm.conf
  • echo "-- rebuild mdadm.conf for md2--"
  • echo 'DEVICE /dev/ts_disk?_4' >> /etc/mdadm.conf
  • mdadm -Eb /dev/ts_disk?_4 >>/etc/mdadm.conf
  • mdadm -As --force
  • mount /dev/md2

12. スクリプトに実行権限を付与


  • root@CONTROLS1:/etc/init.d# chmod +x restart_my_array.sh

13. rc3dへリンク


  • root@CONTROLS1:/# ln -s /etc/init.d/restart_my_array.sh /etc/rc.d/rc3.d/S99z_restart_my_array

14. 再起動します。ブラウザから管理画面を開きarray1と2が認識できている事を確認。

■ おまけ。シリアルコンソールの有効化
ファーム1.12で確認済みです。


  • http://{TeraStation の IP アドレス}/cgi-bin/task.cgi?task=console¶m=on


但し、コールドリブートした場合は、リセットされてしまうので注意。

IWSSのドキュメントの在処

| No Comments | No TrackBacks

CLIでTZを変更する

| No Comments | No TrackBacks

Perl Tips | Linux で、システムのタイムゾーンを設定する方法

# ルートでログインする。現在のタイムゾーンを確認するには date コマンドを使用する。date と入力して Enter キーを押すと、Sat Oct 12 00:00:00 PDT 2006 のように表示される。この場合は PDT がタイムゾーンで、PDT とは Pacific Daylight Saving Time (太平洋標準時の夏時間)の略で、米国の場合は夏時間は PDT とと表記する。夏時間でない場合は PST である。MDT/MST、CDT/CST、EDT/EST なども同様である。 # /usr/share/zoneinfo にディレクトリを変更する。ここに設定できるタイムゾーンが集まっている。 # 日本の場合はそのまま Japan というファイルが見つかるが、Asia というディレクトリの下に Tokyo というファイルも見つかるはずである。米国に設定したい場合は America の中から選択する。 # ここで選んだファイルを /etc/localtime にコピーすればいいのだが、まずは mv /etc/localtime /etc/localtime.org などとしてから、JST / 日本(東京)の場合は、 # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime とした方がいいだろう。

Riece Command

| No Comments | No TrackBacks

Commands - Riece -- An IRC client for Emacsen --
たまになやむのですよ、、、、アレナンダッタッケ。。?と
ということで、メモメモ

About this Archive

This page is an archive of recent entries in the Linux category.

IT is the previous category.

Mac is the next category.

Find recent content on the main index or look in the archives to find all content.