最近、カタログスペックだけで話をしてきて、実装ができるかどうかは後回し、さらに話が進むと全ての仕様はどうなっているのか?みたいな話が多いような気がする。使うこととかじゃなくて、スペックを売ってきているんじゃないか?と思うことがある。なので、いざ、使ってみると、全然使い物にならないとか、使いにくいとかになっていたりする。住宅の世界でいえば、やたら新しい工法の話をしてきて、そのの工法で使う素材の話になって、商談が終わる。何を売っていたんだろうと思えば、住宅だったみたいな。多分、ありえないところにお風呂とかトイレがありそうな感じ。
何をしたいのか聞くのは野暮かもしれないが、買う方からすると、一番重要のような気がする。
ちなみに、実家の建物は40年以上前のものだが、柱がやたらしっかりしていて壊すのは勿体無いと言われている。その分、間取りが変だが、住めないことはない。しかし、誰も気がついていない(いや気がついていたはずだが)ドアチェーンの金具が実は30年くらい逆についていた。。。細かい部分はそんなもん。まぁドアチェーンの向きが正しくても住める家じゃないと。
それにしてもこんな話が多いというか、多すぎるような。
閑話休題
kopiaは究極のSoftware Defined Storageだと思う。最近、コンテナ界隈では使われるようになったが、クライアント、ファイルサーバのバックアップはダントツ便利だと思う。
Kopiaのアップデートがでて、0.16になった。自分のパソコンは全部kopiaでバックアップしている。
こんな機能追加が。
https://github.com/kopia/kopia/releases/tag/v0.16.0
[EXPERIMENTAL] Implement volume shadow copy support on Windows (#3543) by Maxim Khitrov
kopia policy set <path> --enable-volume-shadow-copy=always
あるいは
kopia policy set <path> --enable-volume-shadow-copy=when-available
ただし、UI版にはkopia単体のバイナリは含まれていないので、シングルバイナリーのコマンドライン版から設定する必要がある。(Experimentalが外れたらUI実装されそうだが)
テストデータとして以下を作ってみた。HTMLファイルとロックされているtestfile.txt。裏で別プロセスでロックをかけているので、削除ができない。
kopiaでスナップショットを撮ってみる。案の定、スナップショットが撮れなかった。
ログには詳細なエラーが記載されている
ロックされているファイルもスナップショットに含まれていない。
kopiaUIと同じフォルダにkopia.exeをおき、ポリシーで指定しているスナップショットのパスを指定して、以下を実行。
kopia policy set C:\Data --enable-volume-shadow-copy=always
ポリシーがセットされるとメンテナンスタスクが動いている様子。
kopiaは、スナップショットのデータに情報が入っているので、サーバが変わっても多分、引き続き有効なのではと。しかし、ここからがはまりどころ。この後すぐ、スナップショットを実行してもダメだった。
一度、kopiaUIを修了させて再度kopiaUIを起動させる。
Volume Shadow Copyが有効になっているかをPolicyのjsonファイルで確認。
VolumeShadowCopy enable=1になっていればOK。
以下の場合はダメ
それでもダメなら、コマンドラインでポリシーを確認してみる。
kopia policy edit C:\Data
メモ帳が開き、実際の設定が確認できる。
設定されているのが確認できたら、もう一度スナップショットを実行。パスの定義にonSnapshotsというのが新しく表示されている。
エラーが表示されなくなった。
ロックファイルもちゃんとスナップショットに含まれている。
同じ時間にVolume SHadow Copyサービスが動き始めた。
もちろん、リストアも可能だった。
WindowsとLinuxだとスナップショットを撮ったボリュームを別ボリュームとしてマウントできるから便利。(スナップショットストレージからマウントしているのでリストアするマシンに空き容量はいらない。)
ストレージレベルのスナップショットだとこの手の問題は起きないのだが、ファイルレベルの場合は、オープンファイルの問題がいつも発生する。
オープンファイルのバックアップが厄介なのは、
- ステータスが「完了」とならない
- オープンされていたファイルが無理やりにでも保存されない
という2つの問題があるが、VSSを使うことに見事に解決している。
今気がついたんだが、UIの以下にPre-Postが仕込めるので、スナップショット前にプロセスを停止、再稼働もできる。(アプリケーション静止点)
これを使えば、VSS Frameworkの処理やら、アプリの停止、再開もできる。
個人的には、パソコン、NAS、あるいはサーバのフォルダ設定のバックアップはkopiaが一番お勧め。
利点をまとめると
- 保存先は、ローカル、リモート、オブジェクトストレージを選び放題。
- 重複排除や圧縮、暗号化はkopiaがやってくれるので、ストレージハードウェア機能も不要
- クライアントプッシュ、それもシングルバイナリーで、ポリシーはバックアップデータ側に保管されているので、バイナリが分散しているだけで、クライアントの管理は不要
- バックアップストレージをマウントさせてくれるので、実態をブラウズさせてくれるし、リストア先のストレージ領域もいらない。
- バックアップデータの保存先とパスワードがあればいつでも復帰できる。
- 集中管理はサーバを立ててればできそう。
- バイナリは、UIがあるクライアント用途か、シングルバイナリーのサーバにもクライアントになれるもののみ。
マウントさえできれば、古い、しょぼいNASとかでも十分機能を発揮するなぁ。
これでファイルサーバのバックアップに必要な機能がまた付いた。
そろそろNASのどうでもいいデータをオブジェクトストレージに逃すかな。ESX4とかESX5とか。いやー捨てちゃおうかなぁ。絶対使わないってw