How to replace a zfs filesystem with a zfs clone in Solaris?



  • Create zfs filesystems:

    # zfs create test_pool/data
    # zfs create test_pool/data/sales
    

    Create a snapshot of test_pool/data/sales:

    # zfs snapshot test_pool/data/sales@today
    

    Create a clone identical to the above snapshot:

    # zfs clone test_pool/data/sales@today test_pool/data/sales_clone
    
    # zfs list
    NAME                            USED  AVAIL  REFER  MOUNTPOINT
    test_pool/data                   37K   976M    19K  /test_pool/data
    test_pool/data/sales             18K   976M    18K  /test_pool/data/sales
    test_pool/data/sales@today         0      -    18K  -
    test_pool/data/sales_clone         0   976M    18K  /test_pool/data/sales_clone
    

    Replace the zfs filesystem with the zfs clone:

    # zfs promote test_pool/data/sales_clone
    

    You will notice in the output below that the space accounting of the original test_pool/data/sales filesystem has been replaced with the test_pool/data/sales_clone filesystem

    # zfs list
    NAME                            USED  AVAIL  REFER  MOUNTPOINT
    test_pool/data                      39K   976M    21K  /test_pool/data
    test_pool/data/sales                  0   976M    18K  /test_pool/data/sales
    test_pool/data/sales_clone          18K   976M    18K  /test_pool/data/sales_clone
    test_pool/data/sales_clone@today      0      -    18K  -
    

    Rename the filesystems:

    # zfs rename test_pool/data/sales test_pool/data/sales_old
    # zfs rename test_pool/data/sales_clone test_pool/data/sales
    
    # zfs list
    test_pool/data                   39K   976M    21K  /test_pool/data
    test_pool/data/sales             18K   976M    18K  /test_pool/data/sales
    test_pool/data/sales@today         0      -    18K  -
    test_pool/data/sales_old           0   976M    18K  /test_pool/data/sales_old
    


© Lightnetics 2024