2010年2月18日木曜日

Hyper-VにOpenSolaris、ZFSのdeduplicationを試そう

前略、Hyper-VにOpenSolarisをインストールしました。
しかしそれは本題ではなく、ZFS(Zpool)のバージョン21から有効になった、データのデデュプリケーションを試すのだ。
 
 

ちなみにHyper-VにOpenSolaris入れるにはメモリたっぷりいるよ、失敗する人は増やせばOK。
VirtualBoxでもいける、VirtualBoxの方が相性は良さそうな感じ。
 

画像:Hyper-V上のOpenSolaris

ZFSのバージョンは22、『やっぱりSunがスキ!』よりテキストインストーラのbuild131だ。
 
 
 


じゃあリアルタイムのデデュープを試してみよう!
 

さて、makefileでファイルをつくり、それをデバイスとして"ddzfs"というZFSストレージプールを作りました。
"zfs set dedup=on ddzfs" で準備完了。プールじゃなくてファイルシステムが対象ね。
サイズは1GBだ。
 
 

1GBの領域に/dev/zeroをダンプして5GBのファイルを作るとどうなる?
こうなる。
 


画像:ZFS Dedupの様子
※VirtualBoxに変わっているのは諸事情のため差し替えたので。
 


手抜きでごめんねぇ、キャプチャだ。
雰囲気は伝わるだろう、途中で言い逃れできないようなアハ体験が訪れていることがわかる?。
 
 

しかしリアルタイムで計算してデデュープしてる割にはよいスループット出てるやん。リハのHyper-Vでも60Mちょっとは出てたし。
完全仮想なことを考慮したらすごく早い気がする。
 
 

用途がファイルサーバならCPUなんていつだって遊んでいるから実用にも全然つかえるんじゃないか?
メールサーバでも効果が高そう、C.C.での同報メールなんかは文字通りカーボンコピーになるね。
※ブロック単位なので実際はちょっと違うが。
 
 
 


send&recvとか試してみたいことは山盛りだが、なんかもう理解の範疇を越えてきたな。
ZFSほか、新しいファイルシステムにはどんどん期待がもてるね。