Second, snapshots allow the creation of incremental physical dumps. Since
each snapshot has a bitmap indicating which blocks are in the snapshot, we
can easily determine which blocks are new and need to be dumped by
considering the sets of blocks included in the two snapshots.
Suppose that our full backup was performed based on a snapshot called
A, and we have just created a new snapshot called
B from which we wish to make an incremental image dump.
Higher level incrementals are handled in the same manner.
A level 2 incremental whose snapshot is C and which is based
on the full and level 1 incremental described above needs to include all
blocks in:
Of course, a block based dump does not want to be too closely linked to the internal file system, or you lose the advantage of running at device speed. Therefore, image dump uses the file system only to access the block map information, but bypasses the file system and writes and read directly through the internal software RAID subsystem. This also enables the image dump and restore to bypass the NVRAM on the file system, further enhancing performance.
Finally, the block based dump allows for some features that the file-based dump cannot provide. Unlike the logical dump, which preserves just the live file system, the block based device can backup all snapshots of the system. Therefore, the system you restore looks just like the system you dumped, snapshots and all.
Unfortunately, the other two limitations detailed above, portability and single file restore, seem to be fundamental limitations of physical backup and are not addressed by WAFL. We'll return to the single file restore issue in Section 6.