こんにちは、チーフSEの孟です。
今日はファイルシステムについて、お話したいと思います。
ZFSの何が素晴らしいかと言うと、PCパーツ販売店で買った数万円のパーツで、商用で販売している数百万円、数千万円のストレージサーバーと同じ機能を持つ高性能、高冗長性ストレージサーバーを作ることが出来るんです。
ZFSではRAID 0、RAID 1、 RAID 01はもちろんRAID 5、RAID 6、RAID Z、RAID Z2も組めます!(RAID-ZはRAID 5の書き込みホールをソフトウェアだけで解決する、世界初のソリューションです。RAID 5アルゴリズムの弱点を克服したのがRAID-Zです)
ZFSのメリットRAIDだけではありません、ほかにも沢山のメリットがあります。
①重複排除機能 + RAID Z
このZFSで組んだ共有ストレージサーバにファイルを保存しても、容量は殆ど増えません。
例えば営業さんのメールをバックアップしようとした場合。1人分のデータが10GBとすると、100人分をバックアップした場合1TBの要領が必要です。メールのデータはメーリングリストやCC、BCCで配信されたメールが殆どです。ということは重複率が高いですよね。全員分のデータを圧縮すればいいかもしれませんが、圧縮ファイルはよく壊れるのであまり使いたくありません。
ここでZFSで組んだ共有ストレージを使ってみましょう。100人のバックアップを重複率70%で想定して計算すると、なんと300GBまで集約できるんです。
700GBの差はすごいですね!
こういう機能をPCパーツ販売店で購入した数万円のハードでも実現できるなんて、魅力的ですね。パーツに不安を感じるかもしれませんが、まぁRAID 01かRAID 6を組めば大丈夫でしょ。
②圧縮機能
上の例で話したケースでは、さらにZFSの圧縮機能をONにすることで、ディスクの使用率をさらに高めることができます。ZFSが自動的に保存されたファイルを圧縮するので、ユーザの操作は一切必要ありません。圧縮機能を使うとCPUを食いますが、アーカイブデータ等の長期的な保存には適してます。
③その他
・チェックサム64ビット化
・ホットスペア(動いてるままディスク交換が可能)
・コピーオンライト(大きいファイルをコピーする途中で、ソース元のデータ変更したとしても大丈夫)
・クローンプロモーション
今まで高価な商用ストレージでしか実装されてない機能が、ローコストで実装できるようになります。そこが素晴らしいです。
さて、ここから話が変わります。
※ここの記事を参考してください
※公式サイト
CentOSに導入する方法は、めっちゃ簡単です。たったの2行で済みます。
$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-2.el6.noarch.rpm
※入れた後、再起動した方がいいかもしれません。
続いて、ZFSの使い方を説明します。
①ストレージプールの作成
zpool create tank /dev/sdd
※tankはストレージプールの指定で、この場合プールは/tankに作られます。/dev/sddはHDDデバイスです。
②FS作成
③FSリスト確認
zfs list
④完了
これだけです!これで全ての構築完了。LVMより簡単すぎます。
/tank/hogeっていうマウントポイントが作られ、ここにファイルを置けばOKですね。
で、ここでtank/hogeでの重複排除の使い方を説明します。コマンド1行で済みます。
早速効果を見てましょう。
dd if=/dev/zero of=/tank/hoge/bigfile count=1024 bs=1M
※1GBの空ファイルを作成します。
よし、実際のサイズを見てみましょう。
lsで確認
# ls -lha /tank/hoge/bigfile
-rw-r--r-- 1 root root 1.0G Aug 16 21:53 /tank/hoge/bigfile
zpoolで確認
# zpool list tank
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
tank 9.94G 518K 9.94G 0% 8192.00x ONLINE -
lsで見たサイズは1GBですが、実際の利用空間は518Kしかないです。
重複排除率は↑のDEDUPカラムで確認できます。
今日のネタ以上になります。
ZFSの使い方もっと知りたい方、自分でぐぐってくださいね。
宜しくお願いします。