• Joe Thornber's avatar
    dm thin: provide userspace access to pool metadata · cc8394d8
    Joe Thornber authored
    This patch implements two new messages that can be sent to the thin
    pool target allowing it to take a snapshot of the _metadata_.  This,
    read-only snapshot can be accessed by userland, concurrently with the
    live target.
    
    Only one metadata snapshot can be held at a time.  The pool's status
    line will give the block location for the current msnap.
    
    Since version 0.1.5 of the userland thin provisioning tools, the
    thin_dump program displays the msnap as follows:
    
        thin_dump -m <msnap root> <metadata dev>
    
    Available here: https://github.com/jthornber/thin-provisioning-tools
    
    Now that userland can access the metadata we can do various things
    that have traditionally been kernel side tasks:
    
         i) Incremental backups.
    
         By using metadata snapshots we can work out what blocks have
         changed over time.  Combined with data snapshots we can ensure
         the data doesn't change while we back it up.
    
         A short proof of concept script can be found here:
    
         https://github.com/jthornber/thinp-test-suite/blob/master/incremental_backup_example.rb
    
         ii) Migration of thin devices from one pool to another.
    
         iii) Merging snapshots back into an external origin.
    
         iv) Asyncronous replication.
    Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    cc8394d8
dm-thin-metadata.c 34.1 KB