いきなりLinux関連の記事で申し訳ない。
nkjmkzk.net/
Unbreakable Enterprise Kernelを使おう ? OCFS2 1.6 reflinkで紹介されているが、Oracle 社が出したUnbreakable Enterprise Kernel というLinuxカーネルを独自拡張したものに含まれているOCFS2というファイルシステムのreflinkという機能がすごい!
一応、誰でも利用可能らしい(まだ使ったことがない)。
#といっても、UEK(Unbreakable Enterprise Kernel)が64bit版しか対応していないので使えるCPUは限られる。
まぁ、繰り返しになるが、Oracleがハイエンド向けに独自拡張されたLinux の OCFS2 というファイルシステムには、reflink という機能があり、これが便利そうなのだ。
どういうときに便利か、
- たくさんのファイルを管理しているときに、ある日付のそのファイル群の状態をバックアップしたい。
- Aというファイル群をそっくり丸々コピーしてA'として別の用途で使いたい。
でも、ディスク使用量はなるべく節約したい。
こういうときにreflinkはものすごく便利。
どんな感じに振る舞うかと言うと、Aというファイル群があって、それを reflink で B というファイル群としてコピーをしても、ディスク容量はほとんど消費しない。
コピー後、A、Bそれぞれ独自に編集する(普通に使う)ことが出来て、編集した差分だけがディスク容量を消費していく。
大変、効率的にディスクが使える仕組みだということが分かってもらえると思う。
コンピュータで作業をしていても、とりあえず今のフォルダの中身のバックアップをコピーして取った上で編集をするということがよくある。
reflink なら、上記も心配無用だ。好きなだけコピーしまくれる。コピー(reflink)の状態ではディスクは消費しないからだ。(ディスク上が混乱しそうだけどw)
フォルダのバックアップを一ヶ月単位にreflinkで取っておけば、そのフォルダの一ヶ月単位のバックアップ状態を常に見ることが出来る。それでいて、ディスクの消費量は更新差分だけ。
素晴らしい。
ソフトウェア開発で言うと、仮想マシン(VM)を複数管理する場合、VMのディスクイメージなんてコピーしたときには全く同じで、その後変更はされていくものの同一なところが多くディスク占有量も大きいので、reflinkによる恩恵は計り知れない。他にも、試験環境といって、あるソフトを試験できる環境を複数作ることがあって、環境毎に同じファイル群を持っていることがあるんだけど、これもreflinkを使えば、いくら試験環境をコピー(reflink)で作ってもディスクの消費量は増えない。
このreflinkは、COW(コピーオンライト)という、書き込むときに始めてファイルの実体がコピーされるという仕組みを使っているので、ディスクへの書き込み速度が低減する可能性はあるんじゃないかと思う。
この重複除去に似た機能をもつzfsというファイルシステムはライセンスの関係があり、Linuxでは使えない事情があったので、このUEKには期待したい。
↓の評価ボタンを押してランキングをチェック!