2011年3月31日木曜日

FreeNASその後 2

前回のエントリで書いた代替セクタ出まくりのHDですが、定期的にsmartチェックしてたんですが
日々代替セクタ数がもりもりと増加していき、これは逝く日は近そうなので
交換用HDを追加で注文しておきました。

最終的には代替セクタ数8000オーバーというすごい値になったとこで回復不能セクタとかが発生し、FreeNAS上から見えなくなりました。

今度はSeaToolsの修復処理も不可能。
どちらにせよこんなHDを使い続けるのは怖すぎるのでRMAでメーカーに送り、すでに用意してあった交換用HDと交換しreplaceして終了。

不良セクタが出まくるHDを使用した場合、通常はデータの破損が気になりますが、ZFSにはEnd-to-EndのチェックサムがあるのでZFSのありがたみを早速実感できました。


SeagateはRMA3年保証があるのでSeagateを選んだんですが、どうもRMAで返送されてくるHDは必ずしも同一型番とは限らないそうな。
容量が微妙に違っててpoolに突っ込めないHDがくるんだったら嫌だなあ・・・。


2011年3月17日木曜日

FreeNASその後

とりあえず順調に稼働中

と思いきや、

途中再起動はさんでアップタイム4日くらいでMicroserverからピーピーとビープ音が・・・・・・。
FreeNAS上では特にエラーはいてなかったので再起動したらHD一台がエラーになりZFSが縮退モードに・・・。
問題のHDを抜いてメインPCのWindows機につないでsmartみたら


・・・・・・・・。
SeaToolsでもエラーがでる。DOS起動で修復したら一応成功。
ネットで調べたところ、HD買ったショップもこのぐらいじゃ交換してくれないそうなので
このまま様子見かなー


DOS版SeaToolsで修復してからMicroserverにもどしたら何事もなかったようにpoolは通常状態にもどりました。

2011年3月11日金曜日

FreeNASでファイルサーバー構築 4

いざファイルサーバーの構築に取りかかります。
事前にVirtualBoxで練習済みなので迷うことなくセットアップ完了・・・・しなかった。

購入した2TのHDはAFT対応のものなんですがFreeNASはGUIでAFTに対応しており、チェックボックスにチェックをつけるだけとお手軽です。
ただ、今回私が構築しようとしているRAID1+0はGUIでは作れません。
ZFSのコマンドは簡単なのでコマンドラインで作成するつもりだったんですが、はて・・・・・コマンドラインでAFTに対応させつつpoolを作成するにはどうすればいいんだ・・・・。

またあれこれ検索して参考にしたサイトがここ

仮にad4につながってるHDをAFT対応させると /dev に ad4.nop というファイルが作成され、ad4.nopをマウントすることによってAFT対応になりそう・・・。

ということで
・RAID1などなんでもいいのでGUIでAFT対応でpoolを作成。仮に test とします。
・SSHから
 #zpool destroy test
 #zpool create tank mirror ad4.nop ad6.nop
 #zpool add tank mirror ad8.nop ad10.nop


とやった結果が以下。


これでAFT対応のRAID1+0が無事できました・・・

できてるよね??

それじゃ意味ないよ、とか詳しい人いたら教えて~。
とりあえず、現在は旧ファイルサーバーからデータ移動中。
しばらく運用して問題なさそうなら、旧ファイルサーバーは、バックアップサーバーにでもするか・・・。

2011年3月10日木曜日

FreeNASでファイルサーバー構築 3

前回のエントリでpoolに異常発生時、メールアラートを飛ばす機能と定期的にscrubかける機能はcronで実装することができました。
定期的にsnapshotとる機能だけが上手く動かなかったんですが

`date "+%a"` の記述の部分を `date '+%a'` に変えたらうまくいきました。

ただFreeNASでsnapshotとりまくると固まる、とかファイル削除に時間がかかるようになる、とかメモリ不足でパニックする、とか聞くのでほどほどにsnapshot作成するようにする。
dailyとweeklyだけcronに入れることにしました。

ということで、自分の欲しい機能がほぼ実装できそうなので、いざ実際に自作ファイルサーバーを購入することにします。しかし、VirtualBoxって便利だなあ・・・。

ファイルサーバーの構成はすでに決めていたので、とっとと注文しました。
キャンペーンでリモートアクセスカードが\1050だったので、コレも買うことにしました。
構成は以下。

本体 HP Proliant MicroServer + リモートアクセスカード \36750
メモリ DDR3 ECC付 4GB * 2 \11610
USBメモリ SLCタイプ 2GB \2670
HDD 2T * 4 \27120
合計 \78150

ECC付のメモリはオーバースペックかなと思ったんですが、かなり安かったのでECC付にしました。
USBメモリもなにげに手元になかったので、買いました。
2TのHD4台でZFSのRAID1+0にする予定。

注文から一週間ですべてそろいました。

2011年3月7日月曜日

FreeNASでファイルサーバー構築 2

前回のエントリで、どうしても外せない機能がFreeNASでは現在GUIで実装されていないので
スクリプト書く知識0で上手いこと実装できたら自作ファイルサーバーにすると決めました。

・外せない機能
ZFSのpoolに異常が発生したらメールアラートを飛ばす。
定期的にscrubをかける。
定期的にsnapshotをとる。

このへんが是非ほしい。
とりあえずVirtualBoxにFreeNASをインストールして上記機能を搭載できるか実験してみます。

まずpoolの異常発生でのメールアラート。検索しまくってみつけたのがここ

ここの投稿に返信している、torf74氏のスクリプトを試してみることにする。

zpoolnotice.sh
zpoolstatus.sh

異常発生時にメールアラート飛ばすスクリプトと、定期的にpoolの状態をメールするスクリプト。
両方いれてみました。使用方法まで丁寧に書いてあって非情に分かりやすいです。

二つのスクリプトを適当に /mnt/tank/bin とかに保存します。
cronの設定ページに行き適当にスケジュールを設定して

bash /mnt/tank/bin/zpoolnotice.sh

と記述して保存。今すぐ実行ボタンを押します。(メール設定が済んでいるのが大前提。)
poolに異常は発生していないのでメールは来ません。
ZFS設定ページに移動してpoolのHDを一つOFFLINEにして異常を発生させます。
もう一度cronのページに行き今すぐ実行ボタンを押します。

ばっちりメールが届きました。おー良い感じ。
zpoolstatus.shも同様に設定し問題なく動作を確認。

定期的にscrubするスクリプトもここで公開されてました。

さっきと同様の手順でばっちり動作を確認。


さらにここで定期的にsnapshotとるスクリプトがあるんですが
weeklyは問題なく動作するんですがdailyとhourlyがどうも上手く動かない・・・。
むう・・・

書いてあるスクリプトの構文を適当に検索しまくって、スクリプト知識0であれこれ調べた結果、

zfs snapshot $1@daily.`date "+%a"`

ここの `date "+%a"` は日付や時間を取得する一般的な記述のようだ・・・
%a は曜日を取得するみたい。唯一上手く動いたweeklyのスクリプトには使われていないので、この辺が怪しい・・・・・・気がする。
でもどうすればいいかはよくわからん・・・。

といったところで今日はもう疲れたのでこの辺で終了。

2011年3月5日土曜日

FreeNASでファイルサーバー構築 1

元々余ったパーツの寄せ集めでファイルサーバーはあったんですが、でかい、うるさい、消費電力高い、でとても常時稼働する気になれませんでした。

常時稼働で静音、低消費電力なファイルサーバーを新規に構築しようと思ったのが発端。


まず最初に考えたのが、既製品の購入。
自作サーバーは自由がきく分、メンテやらはすべて自分でやらないといけないので単純にめんどくさいなーと。
候補にあがったのが、QNAPとDROBO。

・QNAP
良い点
日本ではかなり実績もあり、信頼性は高そう。転送速度も速い。
筐体が壊れてもEXT3や4が読める環境があればデータが吸い出せる。

気になる点
ファイルシステムはEXT3かEXT4でのRAIDO5,6,1+0など。
信頼できないとまでは言わないが、サイレントクラッシュは防げないし、HDが壊れたときのリビルドも何時間もかかる。
あとファイルサーバーというよりNASな製品のため、各種機能満載で自分には必要ない。


・DROBO
良い点
HDの容量、メーカーを気にしなくてもよく、柔軟なRAIDを構築できる。
読み込み時と書き込み時にデータの整合性をチェックするなど、ZFSにもにており安全性は高そう。

気になる点
高い。
遅い。日本ではあまり実績がなく、アメリカでは実績があるらしいので米アマゾンの評価や海外のレビューサイトをみてまわると、低い評価をしてる人は初期不良か転送速度の遅さに不満があるみたい。
筐体が壊れたらまた筐体買えばデータは吸い出せるが、高いのでそうそう何度も買いたくない。


どっちも一長一短でものすごい悩んだけど、メンテの手間さえ惜しまなければ自作ファイルサーバーが一番安上がりな結論に・・・。
ただFreeNASでZFSなファイルサーバーを作るとしたらデータプールに異常が発生したらメールアラートを飛ばす機能や、定期的にscrubかける機能、定期的にスナップショットとる機能は是非欲しいがGUIでは現在実装されてない。
cronでスクリプト書けよって話なんですが、そんな知識はないので何とかその辺解決できるめどが立ったら自作ファイルサーバーにすることに決定。