リストアが出来れば、バックアップは要らないのだ
よくバックアップが速いとか、賢いとかそういうの見るけど、そういう事言ってる人に聞いてみたい「バックアップがしたいのですか?」と・・・何のためにバックアップしてるのか?と誰かに聞くと「安心の為」とかいうけど、バックアップだけで安心なの?どうやって戻すのですか?と聞くと明確な返答がある事は、少なかったりする。そもそも、好きな粒度で好きなタイミングで好きなバージョンがリストア出来ればバックアップなんて要らないと思う。出来ればだけど・・・
ストレージの、信頼度が完璧になってどんなことがあっても絶対にファイルが壊れたり消えたりする事が無くても、人的ミスでファイルは居なくなる。ゴミ箱から戻せるときがあるかもしれないけど、上書きしてしまったらどうしようもない。そんなときのために、バックアップforリストアが必要だと思う。
人的ミスなので影響範囲が小さいと考えて、ストレージ丸ごとのフルリストアはそれほど重要じゃない。ファイル単位のリストアが出来る必要がある。ミーハーだが、zfsのsnapshot機能が非常に気になるので試してみた。ソラリスなんて手元にないので、zfs on osxで試してみた。以下手順
zpool作ってzfsを切出す
ディスク代りのファイルを用意する。64m以下だとだめらしいので70mのファイルを3つ用意した。
atusiAIR% mkfile 70m disk1 atusiAIR% mkfile 70m disk2 atusiAIR% mkfile 70m disk3 atusiAIR% ls -l total 430080 -rw------- 1 atusi staff 73400320 9 18 03:04 disk1 -rw------- 1 atusi staff 73400320 9 18 03:03 disk2 -rw------- 1 atusi staff 73400320 9 18 03:04 disk3 atusiAIR% zpool list no pools available atusiAIR% zfs list no datasets available
zpoolもzfsもまだ無い。適当に準備する。
atusiAIR% zpool create vol1 /Users/atusi/local/src/zfs/disk1 atusiAIR% zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT vol1 65.5M 92.5K 65.4M 0% ONLINE - atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 150K 33.4M 62.5K /Volumes/vol1
65MのVol1というzpoolと/Volmes/vol1というマウントポイントが出来た。
Vol1の中にzfsをさらに追加(切出し)して、ついでにクオータの設定してみる。
atusiAIR% zfs create vol1/one atusiAIR% zfs create vol1/two atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 202K 33.3M 63.5K /Volumes/vol1 vol1/one 22K 33.3M 22K /Volumes/vol1/one vol1/two 18K 33.3M 18K /Volumes/vol1/two atusiAIR% zfs set quota=10m vol1/one atusiAIR% zfs set quota=20m vol1/two atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 208K 33.3M 65.5K /Volumes/vol1 vol1/one 22K 9.98M 22K /Volumes/vol1/one vol1/two 22K 20.0M 22K /Volumes/vol1/two
すばらしい。クオータを外してみる。
atusiAIR% zfs set quota=none vol1/one atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 208K 33.3M 65.5K /Volumes/vol1 vol1/one 22K 33.3M 22K /Volumes/vol1/one vol1/two 22K 20.0M 22K /Volumes/vol1/two
zpoolにさらにディスクを追加してみよう
zpoolにディスクを追加してみる。全体の容量が上がるはず。クオータの設定は引継がれるかな?
atusiAIR% zpool add vol1 /Users/atusi/local/src/zfs/disk2 atusiAIR% zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT vol1 131M 225K 131M 0% ONLINE - atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 213K 98.8M 65.5K /Volumes/vol1 vol1/one 22K 98.8M 22K /Volumes/vol1/one vol1/two 22K 20.0M 22K /Volumes/vol1/two
全体で増えてるし、クオータの設定もずれてない。sasのインターフェースがたくさん欲しくなるなコリャ
zfsで作業してみて、スナップショットを取ろう
適当にone two の中身にファイルを作ってみる。
atusiAIR% ls [/Volumes/vol1] one/ two/ atusiAIR% touch one/1 [/Volumes/vol1] atusiAIR% touch one/3 [/Volumes/vol1] atusiAIR% touch one/5 [/Volumes/vol1] atusiAIR% touch one/6 [/Volumes/vol1] atusiAIR% touch two/a [/Volumes/vol1] atusiAIR% touch two/b [/Volumes/vol1] atusiAIR% touch two/c [/Volumes/vol1]
ココまでで下準備完了。では、スナップショットをとってみる。
atusiAIR% zfs snapshot vol1/one@one-backup1 atusiAIR% ls -la total 13 drwxr-xr-x 3 atusi staff 7 9 18 03:24 ./ drwxr-xr-x@ 6 atusi staff 7 9 18 03:13 ../ drwxrwxrwt 3 atusi staff 3 9 18 03:13 .Trashes/ -rw-r--r-- 1 atusi staff 0 9 18 03:23 1 -rw-r--r-- 1 atusi staff 0 9 18 03:23 3 -rw-r--r-- 1 atusi staff 0 9 18 03:24 5 -rw-r--r-- 1 atusi staff 0 9 18 03:24 6
.zsh というreadonlyのフォルダーが出来る筈なんだけど出来ない。ドコに行ってしまったんだろう?zfs全体はどうなったのかというと?
atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 252K 98.8M 65.5K /Volumes/vol1 vol1/one 40.5K 98.8M 22.5K /Volumes/vol1/one vol1/one@one-backup1 18K - 22K - vol1/two 22K 20.0M 22K /Volumes/vol1/two
悲しすぎる・・・スナップショット分がlistには見えてるけど、こいつがどこにあるのかが分らない。本来の目的のふぃある単位のリストア失敗・・・
スナップショットからロールバックしてみよう
全く使う事はないかと思うけど、zfsまるごとロールバックしてみる
atusiAIR% pwd /Volumes/vol1/one atusiAIR% ls 1 3 5 6 atusiAIR% rm ? remove 1? y remove 3? y remove 5? y remove 6? y atusiAIR% ls -latotal 9 drwxr-xr-x 3 atusi staff 3 9 18 03:41 ./ drwxr-xr-x@ 6 atusi staff 7 9 18 03:40 ../ drwxrwxrwt 3 atusi staff 3 9 18 03:13 .Trashes/ atusiAIR% cd ..atusiAIR% zfs rollback -r vol1/one@one-backup1 atusiAIR% cd one atusiAIR% ls 1 3 5 6
はえっ!ファイルサイズがないかもだけど、こんな簡単に戻せたらうれしすぎるかもと一瞬思った。.zfsのフォルダーがどこにあるのか本気で気になる。行先ご存じの方はいませんか?
後片付けは大切だよ
まず、デスクトップにマウントされているドライブをEjectする。
なんか怒られた・・・
無視してデストロイしてしまう。
atusiAIR% zfs list NAME USED AVAIL REFER MOUNTPOINT vol1 246K 98.8M 60.5K /Volumes/vol1 vol1/one 40K 98.8M 22K /Volumes/vol1/one vol1/one@one-backup1 18K - 22K - vol1/two 22K 20.0M 22K /Volumes/vol1/two atusiAIR% zpool destroy vol1 atusiAIR% cd /Volumes atusiAIR% ls Macintosh HD@ atusiAIR% zpool list no pools available atusiAIR% zfs list no datasets available atusiAIR% cd ~/local/src/zfs atusiAIR% ls disk1 disk2 disk3 atusiAIR% rm disk* remove disk1? y remove disk2? y remove disk3? y atusiAIR% ls -la total 0 drwxr-xr-x 2 atusi staff 68 9 18 04:03 ./ drwxr-xr-x 11 atusi staff 374 9 18 01:45 ../
はぁ、すっきりすっきり