2010年4月24日土曜日

MapReduceとHadoop

【IT用語】MapReduceとHadoop
Hadoopについて、twitterのTLで目に付いたので。

東京@ホームページ制作会社

東京@ホームページ制作会社 | 東京23区ホームページ制作「助成金・補助金」が出る

ホームページ制作に助成金があるなんて初めてしった!

TōFU LED

SS385.jpg
ヤマギワ|yamagiwa|吉岡徳仁デザイン「TōFU LED」発売 | Web Magazine OPENERS - New PRODUCTS

TōFU。
私が欲しい照明の一つです。


ポールセンの照明とかもそうですけど、照らす事ではなくて、光を作る事に着目している照明というのが私は好きですね。

元のTōFUよりもLEDになって、ずっとシンプルに、ある意味ではミニマルになって、ますます購買欲が、、、

でもちょっとなんぼなんでも高いんだよねぇ。。。(笑

2010年4月21日水曜日

何気に流行っているらしいロードバランサー nginx を使ってみる - 傀儡師の館.Python - 楽天ブログ(Blog)

何気に流行っているらしいロードバランサー nginx を使ってみる - 傀儡師の館.Python - 楽天ブログ(Blog)
ひょんなことで知ったのだけど、何気にはやってるらしい。
つってもこの記事は三年前の話だからもうかなり古いネタだけどw

大手のSIにいると、どうしても"鉄板"なパッケージしか触らなくなるから、こういうOSSのものにうとくなってしまうなぁ。。

エンジニアなら自分で勉強したり雑誌読んだりして、トレンドをおっかけるのだろうけど、職業柄中々、自分の領域以外が狭くなっちゃってよくないなぁと痛感。

丸の内朝大学

丸の内朝大学これたのしそー!早起きして朝からディスカッションしたりして、会社にいく。
とても健康的だ。

だが、俺の場合、通勤経路上、丸の内にいくのが面倒だ、、、

IBM 金融機関からの新マーケティング・アプローチ - Japan

IBM 金融機関からの新マーケティング・アプローチ - Japan

2010年4月19日月曜日

TerastationPro(TS-TGL)の3disk raid5化&500GB制限回避

ひょんなことから、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


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

JIGSAW

【楽天市場】上質コットンを定番に作り上げられた日本製☆ベーシックTシャツJIGSAW (ジグソー)BASICTシャツ - V-NECK -:PROTOCOL

このカットソーが評判いいらしいのだけど、どうなんだろ?
一枚かってみようかな

素材集

FreePhoto