2009年1月28日水曜日

Windows 7 RRP

世の中、Windows 7βで賑わってますが、RRPというのを試してみました。何の略語かわかりません。
ともかくβのビルド番号が7000でRRPは7022となってました。
よく言われているようにセットアップ直後の感想として早い気がします。Vistaよりスムーズ、動きがなめらかな印象です。
今後、時間を見つけてアプリを入れてソフトの動作確認などもしていこうかと。

ちなみにβを試している友人と表示を比較させてもらいましたが、文字化けが酷い…悪化してます。

2009年1月15日木曜日

RAIDの拡張

Linuxのsoftware RAID(md)の場合、disk controllerをまたがって好きなようにRAIDを構成できるため重宝します。云々はに書きました。

今回ハードディスクを更新したので、RAIDの拡張をしてみました。

md2 : active raid5 sdf[0] sdg[3] sde[2] sdh[1]
という4玉構成のRAID5に対してsda4とsdc4を追加して6玉構成にしようと思います。

# mdadm /dev/md2 -a /dev/sda4
# mdadm /dev/md2 -a /dev/sdc4
# mdadm /dev/md2 -G -n 6
最初にSpare Devicesとして2玉追加し、次にgrowコマンドでActive Devicesを6玉に変更します。えー、7800min後に完了とか言い出しました。

よく見ると
md: reshape of RAID array md2
md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
md: using 128k window, over a total of 488386496 blocks.
とか言って本気を出していません。
こんなときLinux Kernelはオープンソースなので出しているメッセージや理由、どうすればいいかなどをソースコードから調べることができます。

# cat /proc/sys/dev/raid/speed_limit_min
1000
# echo 6000 > /proc/sys/dev/raid/speed_limit_min
他のプロセスの邪魔にならないようにこうやって速度が抑えられていたようです。その上で、早く完了させたいためスピードアップしてみました。これで残り1300minに…それでも丸一日かかるのね。

2009年1月11日日曜日

S.M.A.R.T on Linux

久々にハードディスクの健康状態が知りたくなり、smartmontoolsで情報を見てみました。
まずはありきたりなところからHDDの温度

# for d in a b c d e f g h; do echo -n "sd$d "; smartctl -a -d ata /dev/sd$d|grep Temperature_Celsius; done
sda 194 Temperature_Celsius 0x0022 035 055 000 Old_age Always - 35 (Lifetime Min/Max 0/17)
sdb 194 Temperature_Celsius 0x0002 196 196 000 Old_age Always - 28 (Lifetime Min/Max 16/55)
sdc 194 Temperature_Celsius 0x0002 196 196 000 Old_age Always - 28 (Lifetime Min/Max 16/58)
sdd 194 Temperature_Celsius 0x0022 034 047 000 Old_age Always - 34 (Lifetime Min/Max 0/16)
sde 194 Temperature_Celsius 0x0002 214 214 000 Old_age Always - 28 (Lifetime Min/Max 14/50)
sdf 194 Temperature_Celsius 0x0022 120 099 000 Old_age Always - 30
sdg 194 Temperature_Celsius 0x0002 230 230 000 Old_age Always - 26 (Lifetime Min/Max 14/38)
sdh 194 Temperature_Celsius 0x0022 120 097 000 Old_age Always - 30
あからさまな温度差はなさそうです。
次にread error
# for d in a b c d e f g h; do echo -n "sd$d "; smartctl -a -d ata /dev/sd$d|grep Raw_Read_Error_Rate; done
sda 1 Raw_Read_Error_Rate 0x000f 109 099 006 Pre-fail Always - 0
sdb 1 Raw_Read_Error_Rate 0x000b 094 094 016 Pre-fail Always - 851977
sdc 1 Raw_Read_Error_Rate 0x000b 085 085 016 Pre-fail Always - 6029424
sdd 1 Raw_Read_Error_Rate 0x000f 119 091 006 Pre-fail Always - 0
sde 1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
sdf 1 Raw_Read_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0
sdg 1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
sdh 1 Raw_Read_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0
sdbとsdcでエラーが出てる…そろそろやばいかも。

そして「for d in a b c d e f g h; do echo sd$d; smartctl -A -d ata /dev/sd$d; done」を眺めて気になる表示をピックアップ。
sda 190 Unknown_Attribute 0x0022 064 045 045 Old_age Always In_the_past 756809764
sda 195 Hardware_ECC_Recovered 0x001a 061 058 000 Old_age Always - 6361756
sdd 190 Unknown_Attribute 0x0022 064 053 045 Old_age Always - 740032548
sdd 195 Hardware_ECC_Recovered 0x001a 067 064 000 Old_age Always - 42581156


そこでテストを実行し、エラーの確認
# for d in a b c d e f g h; do smartctl -t short -d ata /dev/sd$d; done
# for d in a b c d e f g h; do echo "sd$d "; smartctl -l error -d ata /dev/sd$d; done
(特にエラーなし)
# for d in a b c d; do smartctl -t long -d ata /dev/sd$d; done
# for d in a b c d e f g h; do echo sd$d; smartctl -l selftest -d ata /dev/sd$d; done
sbc
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 30% 22500 387518271
うわーsbcダメかも。