AtomでZFSファイルサーバ
Posted on 2009-12/11 00:54
今回はちょっとPC系のお話を書きたいと思います。
大海戦で芋をゲットしたときの話など、書くことはいくつかあるのですがそれはまた今度。
パソコンでMP3や写真などを保存する場合、恐らくHDDを使いますよね。
最近はHDDも2TBのものが出てきたりして非常に大容量となりました。
その分、データも溜め込みがちになるのではないでしょうか。
昔はHDDもそれほど容量がなく、一杯になったらCD-Rなどに書き込んでいましたよね。
しかし、これほど大容量となればHDDに保存する方が安上がりになったりします。
現に2TBのHDDも1つ14000円を切り、1GB単位の単価がお手ごろになってます。
バックアップメディアと単価の比較をしてみました。
※CD-R,DVD-Rは太陽誘電、BD-RはPanasonic、HDDは日立で算出しています。
改めて表にしてみると、HDDの安さが際立った結果となりました。
ただ、HDDに保存する場合はクラッシュやデータ化けにも備えないといけません。
ちなみに私は知り合いに対して、HDDを3年使ったら交換を勧めています。
どうしても駆動系があるので壊れやすいんですよね・・・。
データ化けというのはいつの間にかデータの一部が変化してしまい、違ったものになることです。
これが非常に厄介で、JPEGファイルでしたら妙に平べったい画像になってしまったり、
動画ファイルだと途中に変なノイズや、水面にインクを落としたような模様が出てしまいます。
長期間読み書きをしていなかったり、スピーカなどの磁気が発生するような場所に置いてると、
よく発生してしまいます。
もちろん、CD-RやDVD-Rなども経年劣化や、安物メディアを使うとこういった現象に遭遇します。
これでは、HDDやメディアが壊れていなくても信頼性に欠けますよね。
同じ内容を複数のメディアに書くことでデータの信頼性を上げることが出来ますが、
正直面倒だと思ってしまうんですよね。
なので、今回は別なアプローチで攻めてみました。
今回のコンセプトは以下の2点です。
・メディア交換が面倒なので極力減らす
・ファイルが壊れていることがチェック出来、なおかつ自動的に修復できること
意外と難しそうな課題です。
ファイルが壊れていることはSHA-256などで検知することは可能です。
ファイルサイズが大きいと、壊れる可能性が高まるので分割すればよさそうですね。
リカバリーレコード付きのRAR分割ファイルにしてしまえば元通りに出来る率は高くなりそうです。
ただ、これらを保存しておきたいファイルに行うのは非常に面倒です。
ファイルの破損チェックを行い、壊れていれば別のメディアから正常なデータを持ってきて保存しなおす。
更に、データを使う場合は結合して解凍・・・。
ユーティリティを作ったとしても、可用性や保守性に難がありそうです。
そこで目をつけたのがZFSというファイルシステム。
Windowsでは使うことが出来ませんが、非常に優秀なファイルシステムです。
ミラーやRAID-Zにしておけば、ファイルにアクセスしたときに破損チェックを行い、
もし破損していれば正常なデータから修復してくれます。
ミラーにしておけばRAID-1相当、RAID-ZならRAID-5、RAID-Z2ならRAID-6相当の環境が構築できます。
特にRAIDカードを買う必要もなく、空いているポートにHDDをつなぐだけでこういった環境が
簡単に手に入る訳で。ハードRAIDなら、カードが壊れてしまえば同じカードを用意する必要がありますが、
ZFSならPCが壊れても他のPCの空いている任意のポートにHDDを繋ぎなおすだけで
元通りになるのもお手軽ですね。他にもいろいろと優秀な点がありますが、ここでは割愛します。
余ってるマシンに安いHDDを繋いでZFS用のサーバを作るのもよかったのですが、
やはり消費電力も気になりますよね。
流石に余っているマシンは起動するだけで150Wも喰う代物なので断念。新たなマシンを作りました。
スペックは以下のとおり。
Atomプラットフォームは消費電力が低いので、こういった構成にしてみました。
わざわざ消費電力が低いWD10EADSを選んでる割に、起動用HDDが電力喰うタイプなど、
矛盾点もある構成ですが・・・組み上げてみたら電源アダプタの変換回路の固定場所が無いなど、
いろんな問題にぶつかりました。
実際にこのマシンを起動してみるとIDLE時は37〜40W、書き込み時でも50W程度と
なかなかの低消費電力に驚きました。(起動時でも瞬間80W行く程度でした。)
さて、ZFSを運用するOSですが、まともに使えるとなるとSolarisかFreeBSDあたりが思い浮かびます。
今回はWindowsからファイルのアクセスを行いたいので、簡単に使えるFreeNAS0.7を選びました。
(FreeNASの0.8はDebianベースとなるようですね。リリースされたらそっちも試してみないと・・・)
インストールはわずか10分程度で完了し、ブラウザ上からRAID-Zプールを作成し、CIFSを設定。
たったこれだけでWindowsからアクセスできるNASの完成です!
1TBのHDDを3台使ったので約1.73TBの領域が確保できました。
OpenSolarisやFreeBSD上でも構築してみましたが、やはりこの手軽さには勝てず・・・。
ファイルの破損チェックもブラウザでアクセスして”scrub”をクリックするだけ。
最初に考えていた方法と比べたら非常にラクに実現することが出来ました。
でも、マシンを作った値段を含めて単価計算すると・・・
1GBあたり48.334円!
CD-Rの単価よりは安くなりましたが、マシン1台組んでしまうとどうしても高くなってしまいました。
(TSUKUMOの閉店セールで買い漁りましたがケースや電源、高い物つかってますし・・・)
RAID-Zとはいえ、完璧ではないのでバックアップは別途必要そうです。
BD-Rドライブ欲しいけど、高いですねぇ・・・^^;
普段はメディア交換不要って感じで運用したいと思います。
大海戦で芋をゲットしたときの話など、書くことはいくつかあるのですがそれはまた今度。
パソコンでMP3や写真などを保存する場合、恐らくHDDを使いますよね。
最近はHDDも2TBのものが出てきたりして非常に大容量となりました。
その分、データも溜め込みがちになるのではないでしょうか。
昔はHDDもそれほど容量がなく、一杯になったらCD-Rなどに書き込んでいましたよね。
しかし、これほど大容量となればHDDに保存する方が安上がりになったりします。
現に2TBのHDDも1つ14000円を切り、1GB単位の単価がお手ごろになってます。
バックアップメディアと単価の比較をしてみました。
| メディア |
容量 | 単価 | 1GBあたりの価格 |
| CD-R | 700MB | 400円/10枚 | 58.514円/GB |
| DVD-R | 4.7GB | 900円/10枚 | 19.149円/GB |
| BD-R DL | 50GB | 7200円/10枚 | 14.4円/GB |
| HDD | 2TB(1863GB) | 14000円/個 | 7.515円/GB |
改めて表にしてみると、HDDの安さが際立った結果となりました。
ただ、HDDに保存する場合はクラッシュやデータ化けにも備えないといけません。
ちなみに私は知り合いに対して、HDDを3年使ったら交換を勧めています。
どうしても駆動系があるので壊れやすいんですよね・・・。
データ化けというのはいつの間にかデータの一部が変化してしまい、違ったものになることです。
これが非常に厄介で、JPEGファイルでしたら妙に平べったい画像になってしまったり、
動画ファイルだと途中に変なノイズや、水面にインクを落としたような模様が出てしまいます。
長期間読み書きをしていなかったり、スピーカなどの磁気が発生するような場所に置いてると、
よく発生してしまいます。
もちろん、CD-RやDVD-Rなども経年劣化や、安物メディアを使うとこういった現象に遭遇します。
これでは、HDDやメディアが壊れていなくても信頼性に欠けますよね。
同じ内容を複数のメディアに書くことでデータの信頼性を上げることが出来ますが、
正直面倒だと思ってしまうんですよね。
なので、今回は別なアプローチで攻めてみました。
今回のコンセプトは以下の2点です。
・メディア交換が面倒なので極力減らす
・ファイルが壊れていることがチェック出来、なおかつ自動的に修復できること
意外と難しそうな課題です。
ファイルが壊れていることはSHA-256などで検知することは可能です。
ファイルサイズが大きいと、壊れる可能性が高まるので分割すればよさそうですね。
リカバリーレコード付きのRAR分割ファイルにしてしまえば元通りに出来る率は高くなりそうです。
ただ、これらを保存しておきたいファイルに行うのは非常に面倒です。
ファイルの破損チェックを行い、壊れていれば別のメディアから正常なデータを持ってきて保存しなおす。
更に、データを使う場合は結合して解凍・・・。
ユーティリティを作ったとしても、可用性や保守性に難がありそうです。
そこで目をつけたのがZFSというファイルシステム。
Windowsでは使うことが出来ませんが、非常に優秀なファイルシステムです。
ミラーやRAID-Zにしておけば、ファイルにアクセスしたときに破損チェックを行い、
もし破損していれば正常なデータから修復してくれます。
ミラーにしておけばRAID-1相当、RAID-ZならRAID-5、RAID-Z2ならRAID-6相当の環境が構築できます。
特にRAIDカードを買う必要もなく、空いているポートにHDDをつなぐだけでこういった環境が
簡単に手に入る訳で。ハードRAIDなら、カードが壊れてしまえば同じカードを用意する必要がありますが、
ZFSならPCが壊れても他のPCの空いている任意のポートにHDDを繋ぎなおすだけで
元通りになるのもお手軽ですね。他にもいろいろと優秀な点がありますが、ここでは割愛します。
余ってるマシンに安いHDDを繋いでZFS用のサーバを作るのもよかったのですが、
やはり消費電力も気になりますよね。
流石に余っているマシンは起動するだけで150Wも喰う代物なので断念。新たなマシンを作りました。
スペックは以下のとおり。
| 部品の種類 | 型番など | 発売元 |
| マザーボード |
D945GCLF2D | intel |
| メモリ | DDR-2 667 2GB | Hynix |
| HDD1(起動用) | 320GBの余ってたやつ | Seagate |
| HDD2-4(保存用) | WD10EADS 1TB | WESTERN DIGITAL |
| SATAカード | SATA4P-PCI | 玄人志向 |
| DVD-Rドライブ | PX-820SA | PLEXTOR |
| PCケース | acubic T20 | Abee |
| 電源 | SRD2D150SATA (150W ACアダプタ) |
日本PCサービス |
わざわざ消費電力が低いWD10EADSを選んでる割に、起動用HDDが電力喰うタイプなど、
矛盾点もある構成ですが・・・組み上げてみたら電源アダプタの変換回路の固定場所が無いなど、
いろんな問題にぶつかりました。
実際にこのマシンを起動してみるとIDLE時は37〜40W、書き込み時でも50W程度と
なかなかの低消費電力に驚きました。(起動時でも瞬間80W行く程度でした。)
さて、ZFSを運用するOSですが、まともに使えるとなるとSolarisかFreeBSDあたりが思い浮かびます。
今回はWindowsからファイルのアクセスを行いたいので、簡単に使えるFreeNAS0.7を選びました。
(FreeNASの0.8はDebianベースとなるようですね。リリースされたらそっちも試してみないと・・・)
インストールはわずか10分程度で完了し、ブラウザ上からRAID-Zプールを作成し、CIFSを設定。
たったこれだけでWindowsからアクセスできるNASの完成です!
1TBのHDDを3台使ったので約1.73TBの領域が確保できました。
OpenSolarisやFreeBSD上でも構築してみましたが、やはりこの手軽さには勝てず・・・。
ファイルの破損チェックもブラウザでアクセスして”scrub”をクリックするだけ。
最初に考えていた方法と比べたら非常にラクに実現することが出来ました。
でも、マシンを作った値段を含めて単価計算すると・・・
1GBあたり48.334円!
CD-Rの単価よりは安くなりましたが、マシン1台組んでしまうとどうしても高くなってしまいました。
(TSUKUMOの閉店セールで買い漁りましたがケースや電源、高い物つかってますし・・・)
RAID-Zとはいえ、完璧ではないのでバックアップは別途必要そうです。
BD-Rドライブ欲しいけど、高いですねぇ・・・^^;
普段はメディア交換不要って感じで運用したいと思います。


Deku wrote:
無いのでまだサーバーマシン作れてませんw
安くて長持ちする400Wくらいの電源欲しいんですけどね
で、BD-R/Wドライブですが、LGのGGW-H20Nっての
使ってますが、やっぱりLGなのでメディアの焼きに
不安が残りますねぇorz
バックアップで一番良いのは、現状HDDを次々に買って
差し替えでバックアップでないかなぁ?と思っとります