I don't understand why snapshots increase in size.
(I'm reading through the User Guide and I'm only as far as the introduction, but it is suggesting I read the ZFS Primer -- maybe I shouldn't worry about this right now and keep on plugging away?)
Let's make this simple. Let's say my pool is 100 MB. One of the files in the pool, dakota.ods, is 10 MB.
If I create a snapshot of the pool, the data doesn't change, right? All I'm doing is creating a new set of pointers to the original data. Let's say those pointers originally take up 10 KB.
So, one month later, I modify dakota.ods so it is now 20 MB. With a COW system, this modified file gets written to disk and verified before the old data block is marked for deletion. Except that the old data block has pointers that identify it as part of a snapshot, so it won't get deleted until that snapshot is deleted.
The old snapshot pointers still exist and haven't changed. So the snapshot isn't any bigger.
Or is it?
Does the old data now become part of the snapshot? Is a snapshot more than just a set of pointers?
I know this is all pretty basic, but I'm having a hard time following along because I'm missing something very simple.
Cheers,
(I'm reading through the User Guide and I'm only as far as the introduction, but it is suggesting I read the ZFS Primer -- maybe I shouldn't worry about this right now and keep on plugging away?)
Let's make this simple. Let's say my pool is 100 MB. One of the files in the pool, dakota.ods, is 10 MB.
If I create a snapshot of the pool, the data doesn't change, right? All I'm doing is creating a new set of pointers to the original data. Let's say those pointers originally take up 10 KB.
So, one month later, I modify dakota.ods so it is now 20 MB. With a COW system, this modified file gets written to disk and verified before the old data block is marked for deletion. Except that the old data block has pointers that identify it as part of a snapshot, so it won't get deleted until that snapshot is deleted.
The old snapshot pointers still exist and haven't changed. So the snapshot isn't any bigger.
Or is it?
Does the old data now become part of the snapshot? Is a snapshot more than just a set of pointers?
I know this is all pretty basic, but I'm having a hard time following along because I'm missing something very simple.
Cheers,