====== Snapshots on a filesystem AIX ======
There are 2 ways to create snapshots for a filesystem:
* Inline (into the filesystem)
* Into a new LV (logical volume)
A snapshot don't need the same space as intial filesystem. If it's full, then it die.
Here we only explain commands only for snapshot on a separarte LV. Both LV (source and snapshot) must be an the same volume group
**List all snapshots on a filesystem:**
[root@labotest:/root/]# snapshot -q /TEST
/TEST has no snapshots.
**Create a snapshot:**
[root@labotest:/root/]# mklv -t jfs2 -y snap_testlv rootvg 1 ==> PPsize=32M
snap_testlv
[root@labotest:/root/]# snapshot -o snapfrom=/TEST /dev/snap_testlv
Snapshot for file system /TEST created on /dev/snap_testlv
[root@labotest:/root/]# snapshot -q /TEST
Snapshots for /TEST
Current Location 512-blocks Free Time
* /dev/snap_testlv 65536 64768 Tue Oct 18 17:45:46 2011
**Copy data into the filesystems, the snap free parameter reduce:**
[root@labotest:/TEST/]# du -sm /tmp/*
16.87 /tmp/sysload
[root@labotest:/TEST/]# cp -Rhp /tmp/sysload .
[root@labotest:/TEST/]# ll
4 drwxr-xr-x 10 mysql system 4096 Jun 15 16:22 mysql
4 -rw-rw---- 1 mysql 209 106 Jun 15 16:46 mysql-bin.000001
4 -rw-rw---- 1 mysql 209 125 Jun 15 16:49 mysql-bin.000002
4 -rw-rw---- 1 mysql 209 329 Jun 15 16:53 mysql-bin.000003
4 -rw-rw---- 1 mysql 209 125 Jun 15 17:49 mysql-bin.000004
4 -rw-rw---- 1 mysql 209 125 Jun 15 18:03 mysql-bin.000005
4 -rw-rw---- 1 mysql 209 125 Jun 22 10:11 mysql-bin.000006
4 -rw-rw---- 1 mysql 209 114 Jun 15 18:04 mysql-bin.index
17252 -rw-r--r-- 1 root system 17664000 Oct 18 17:51 syslo.tar
17252 -rw-r--r-- 1 root system 17664000 Oct 18 17:51 syslo1.tar
51740 -rw-r--r-- 1 root system 52981760 Oct 18 17:52 syslo2.tar
4 drwxr-xr-x 4 root system 4096 Oct 6 15:32 sysload
[root@labotest:/root/]# snapshot -q /TEST
Snapshots for /TEST
Current Location 512-blocks Free Time
* /dev/snap_testlv 65536 64512 Tue Oct 18 17:45:46 2011
**Mount the snapshot on a mount point /TEST1:**
For example to do a consistent backup. It's mount in read-only.
[root@labotest:/root/]# mkdir /TEST1
[root@labotest:/root/]# mount -o snapshot /dev/snap_testlv /TEST1
[root@labotest:/root/]# ll /TEST1
4 drwxr-xr-x 10 mysql system 4096 Jun 15 16:22 mysql
4 -rw-rw---- 1 mysql 209 106 Jun 15 16:46 mysql-bin.000001
4 -rw-rw---- 1 mysql 209 125 Jun 15 16:49 mysql-bin.000002
4 -rw-rw---- 1 mysql 209 329 Jun 15 16:53 mysql-bin.000003
4 -rw-rw---- 1 mysql 209 125 Jun 15 17:49 mysql-bin.000004
4 -rw-rw---- 1 mysql 209 125 Jun 15 18:03 mysql-bin.000005
4 -rw-rw---- 1 mysql 209 125 Jun 22 10:11 mysql-bin.000006
4 -rw-rw---- 1 mysql 209 114 Jun 15 18:04 mysql-bin.index
[root@labotest:/root/]# df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/fslv04 9.00 2.16 76% 510 1% /TEST
/dev/snap_testlv 0.03 0.03 4% - - /TEST1
**Rollback the filesystem /TEST to his previous state when we take the snap:**
[root@labotest:/root/]# umount /TEST1
[root@labotest:/root/]# rollback /TEST /dev/snap_testlv
rollback: File system /TEST must be unmounted to perform command.
[root@labotest:/root/]# umount /TEST
[root@labotest:/root/]# rollback /TEST /dev/snap_testlv
rmlv: Logical volume snap_testlv is removed.
Rollback complete
[root@labotest:/root/]# mount /TEST
[root@labotest:/root/]# ll /TEST
4 drwxr-xr-x 10 mysql system 4096 Jun 15 16:22 mysql
4 -rw-rw---- 1 mysql 209 106 Jun 15 16:46 mysql-bin.000001
4 -rw-rw---- 1 mysql 209 125 Jun 15 16:49 mysql-bin.000002
4 -rw-rw---- 1 mysql 209 329 Jun 15 16:53 mysql-bin.000003
4 -rw-rw---- 1 mysql 209 125 Jun 15 17:49 mysql-bin.000004
4 -rw-rw---- 1 mysql 209 125 Jun 15 18:03 mysql-bin.000005
4 -rw-rw---- 1 mysql 209 125 Jun 22 10:11 mysql-bin.000006
4 -rw-rw---- 1 mysql 209 114 Jun 15 18:04 mysql-bin.index
**Command to delete a snapshot:**
[root@labotest:/root/]# snapshot -d /dev/snap_testlv
rmlv: Logical volume snap_testlv is removed.