2012年12月31日月曜日

Step 8 : 2.5TB RAID 1 を追加

さあサーバー移行もぼちぼち完了が近づいてきました。ここから先はほぼ技術的な困難はないと思われます。
  1. 7で空いた 2.5TB HDD x 3 のうち2本をサーバーにつけ、RAID 1 で VG に追加
です。どっちかというと物理的な結線のほうに時間がかかる作業。問題なく完了し、起動。
# mdadm --create /dev/md4 --level 1 --raid-devices 2 /dev/sdc /dev/sdd
これまでのディスクと違い、全く同じサイズの2つのディスク全体を RAID 1 にしてしまってかまわないので、パーティション等は切らずにいきなり追加できます。あ、でもこれってどっちかのディスクが壊れたときに同じサイズのディスクを用意しないとじゃないと復旧できないのかな・・・?まあでもおそらく新しいディスクのほうが大きなサイズで、それに同じサイズのパーティションを用意してそれをメンバにすればよさそうな気はしますね。なのでこのまま続行です。 vgdisplay によるともともと以下のような状態でしたが
  VG Size               1.56 TiB
  PE Size               4.00 MiB
  Total PE              409218
  Alloc PE / Size       409218 / 1.56 TiB
  Free  PE / Size       0 / 0  
以下のコマンドで追加します。
# pvcreate /dev/md4
# vgextend vg_data /dev/md4
結果は
  VG Size               3.84 TiB
  PE Size               4.00 MiB
  Total PE              1005382
  Alloc PE / Size       409218 / 1.56 TiB
  Free  PE / Size       596164 / 2.27 TiB
と無事増量成功です。

あ、そうだ、次の Step 9 以降ですが、秋葉原に行ったときに2Tのディスクを買おうと思ってレジに並んだところつい3Tを買ってしまったのでまた改定しますw

  1. もともと VG に入っている 1.5TB の HDD を抜き、新たに 3.0TB と交換
  2. 開発機から 1.0TB のディスクを抜いて刺し、3.0TB の RAID 1 を VG に追加
  3. 開発機に 2.5TB、1.5TB を刺し、1.5TB RAID1 + 1.0TB にする
これが終わると自宅サーバー上には合計 6.5TB RAID 1 のディスクアレイの完成です。何に使うんだ!w

HDDのチェック

フォロワーさんが CrystalDiskInfo のキャプチャをアップされていてそれを見てあわててディスクの状況を見てみようと思いまして。Linux だとどうするのか調べたところ、smartctl なるコマンドが有用だそうです。


# smartctl -a /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.19.1.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green (Adv. Format)
Device Model:     WDC WD20EARS-00MVWB0

(snip)

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   253   205   021    Pre-fail  Always       -       1025
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       548
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   083   083   000    Old_age   Always       -       12921
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       523
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       32
193 Load_Cycle_Count        0x0032   011   011   000    Old_age   Always       -       567391
194 Temperature_Celsius     0x0022   109   099   000    Old_age   Always       -       41
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
とりあえずやばそうなのはない・・・よね?w
ほかのディスクも同様な結果でした。本当はこれを定期的に実行して値が変わったらお知らせとかしないといけないんでしょうね。

mysql の移行

インストール
# yum install mysql-server
# service mysqld stop
構成
# vi /etc/my.cnf
データディレクトリの移動と
[mysql]
default-character-set = utf8
の追加。動いているマシンからデータのコピー。終わったら
# service mysqld start
% mysql -p <database_name>
などで確認。

2012年12月27日木曜日

Step 7' : ハードウェア更新!

この後HDDを開発機からサーバーに移すので、現状4本ささっているところにマザーボードは5個しか SATA の口がないのでハードウェアを更新することにしました。

CPU     : Intel Core i7 3770
M/B     : ASRock Z77 Pro4
RAM     : 8GBx2 1600MHz

SATAの数(8個)とスレッド数(8本)とメモリ容量あたりを優先的に考えて、それに経済性を考えてこの構成としました。

さっそく構成して起動。うまくいきました。しかしネットワークはつながりません。あれ、普通はそのままうまくいくような・・・、と思ったら NetworkManager ではなく network にしたんでしたね。そのままだと MAC アドレスすらわからないので、
# service network stop
# service NetworkManager start
とすると GNOME で上のほうにネットワーク接続のアイコンが現れます。その状態で
# ifconfig
で MAC アドレス等を収集。/etc/sysconfig/network-script にいき、ifcfg-eth0 をコピーし、ifcfg-eth1 にして適宜内容を編集。そして
# service NetworkManager stop
# service network start
おおお、無事接続できました! ではどの程度効果があったのか・・・。あまりベンチマークとかとらないのでいい題材がなく、とりあえず動画のエンコードで試してみることにしました。あくまでも参考程度にお願いします。1分の 1080i で撮られた MPEG2 の動画を ffmpeg で H.264 にエンコードするパフォーマンスを計ってみました。とりあえず差が見れればいいのでコマンドとかは適当に。4スレッドで実行します。 まず更新前は
2m44.006s
でした。それが更新後は
1m42.484s
1分ちょっと早くなりました。これはなかなか。それに前は4コアだったのですが、今回は4コアの Hyperthreading なので8スレッドで処理する意味もあります。なのでスレッド数を8にすると
1m10.046s
おお、これはだいぶ早くなりましたね。というか再生時間にかなり近くなってきてかなりいい感じかと。うまくいってよかったです。

ffmepg を入れる

この後の記事で使う ffmpeg を入れてみます。

前は違うところだったような記憶もありますが、現在はここなんですかね。ここから CentOS 6 用の RPM、今だと rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm を wget 等で落としてきます。

・・・しかしもう2年も更新されてないようだし、ソースからコンパイルしたほうがよさそうですね。それは後ほどゆっくりやる予定です。

# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# yum install ffmpeg
とりあえずこれだけでインストールは完了です。

2012年12月26日水曜日

Step 6-7 開発機のデータを移動してRAID 5を解除

さてようやく Step 6 と 7 も終わりました。おさらいですが
  1. 4で余っている領域を使って RAID 1 を構成、VG/LV を作成
  2. 開発機の RAID 5 上にあるデータを移動し、RAID 5 を解除
です。

まず Step 6 ですが、Step 1-4をやったときと同様のコマンドで実行できますので省略。mdadm、pvcreate, vgcreate, lvcreate, mkfs.ext4, e2label でマウントです。そこをちょっと前に書いたように samba でローカルネットに公開しておきます。

Step 7 はまた単純にコピーです。時間がかかるけどひたすらコピー。終わったら RAID 5 を解除。これはさすがに緊張しますねw
マウスはキャプチャされてませんが「ボリュームの削除」をクリックして消すと・・・
このように”普通の”ディスクとなります。

2012年12月24日月曜日

IntelliJ IDEA

いろんなところで絶賛されてる IDE である IntelliJ IDEA を一度使ってみたいなぁと思っていたら終末セールとやらで75%引きだったので買ってみました。トライアルとかだとどうせろくに評価しないので「せっかく買ったんだから使ってみる」の精神で試しますw

で、注文の日は殺到していたらしく当日も数回サーバーが高負荷ではじかれましたが、なんとか注文できまして。2日後に「注文を受け付けました」的なメールがやっと届いて、その翌日ようやくライセンスが届きました。じらされましたw

まだ何にも使ってないですが、とりあえずインストールしてみたので魚拓。
とりあえず起動シターw