ZFS, copies, and data protection

| トラックバック(0)

ZFS は、ファイルを格納する際、user data と、meta data と呼ばれる 2 つの data を filesystem に記録します。
user data は、ファイル本体となり、meta data は、そのファイルの block pointer 情報などを記録したものとなります。

この場合、どちらかが破壊されてしまうと、そのファイルを読み出すことはできなくなります。
そこで、ZFS version 2 で、ditto blocks と呼ばれる、meta data の複製を作成する機能が追加されました。
#ちなみに、Nevada b62 では、ZFS version 6 になっています。
 Solaris 10 11/06 は、ZFS version 3 です。

これで、片方の meta data が壊れてしまっても、user data を読み出すことができるようになり、信頼性も向上しましたが、やはり、user data も複製できるほうがよくね?
という議論が交わされ、Nevada build 61 において、user data でも ditto blocks 機能が利用できるようになったようです。

default では、zfs set copies=1 が設定されており、user data の copy は作成しません。
これを、zfs set copies=2 とすることで、user data の複製が作成されるようになり、最大 3 つの user data のコピーを作成することが可能となります。
複数の meta data のコピーと、複数の user data のコピーが作成されるので、信頼性も一気に向上します。

ファイルシステムの中で、RAID を組んでいるという感じでしょうか。
ファイルレベルとハードウェア(ディスク)レベルで冗長性を確保できるのでつか。
が、当然、コピーを作成するので、複製を 2 つ作成する場合は、2 倍の容量が必要となってしまいますが、data protection という意味では、すばらしい機能かと思います。

また、user data の copy は、zfs set copies を設定した後に書き込まれたファイルに対し有効になるもので、それ以前のデータには適用されない点に注意。
これを解決するために、zfs rewrite オプションみたいなものを実装しようぜ的な意見もあるようです。

詳細については、以下の blog で。分かり易く、図解入りで書かれています。

http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection

トラックバック(0)

トラックバックURL: http://solaris.sunfish.suginami.tokyo.jp/blog/mt/mt-tb.cgi/392

: Twitter Updates

    follow me on Twitter

    ウェブページ

    タグクラウド

    Techonrati

    Technorati search

    » リンクしているブログ

    Powered by Movable Type 4.23-ja