続・dm-snapshot
いろいろと検証。
1MBの元イメージに、10MBのスナップショットを適応し、マウントして5MBのファイルをコピーするとどうなるか。
答え:1MBコピーしたところで No space has left on device
これは予想通り。適当な量のスパース領域を元イメージに加えておけば、問題なし。(現状と同じ)
10MBの元イメージに、1MBのスナップショットを適用し、マウントして5MBのファイルをコピーするとどうなるか。
答え:コピーは一見成功し、アンマウントした後再びマウントを試みると、破損していますよ〜、と言われる。
これはマズイ。とてもマズイ。
cowloopの場合、Copy-on-Writeイメージは常に元イメージと同じサイズになるので、この心配はなかった。しかし、Copy-on-Writeイメージを保存するファイルシステムは、スパースファイルをサポートしていなければならない(巨大ファイルができても良いなら、サポートしていなくても良いけど)。だから、Copy-on-WriteイメージはFATには置けないわけです。
一方、dm-snapshotなら、置ける。スパースじゃないから。そもそもサイズが小さい。その上、既に置いてある適当なファイルをスナップショットとして使えるので、NTFSにも置ける。
つまり、FATやNTFSでも、今のようにループバックマウントする必要がない。これはイイ。
でも、容量オーバーしたくらいで壊れるのはマズイ。
うーむ…どうしようか…。