bash-3.00$ df -h /
Filesystem size used avail capacity Mounted on
tank/rpool
234G 2.4G 231G 98% /
To Take snapshot of a mark dataset use below command
#zfs snapshot tank/home/mark@snap1
#zfs snapshot tank/home/mark@snap2
Parent/individual Snapshots are destroyed by using the zfs destroy command
#zfs destroy tank/home/matt@friday
How to create the clone from a snapshot
# zfs clone tank/home/mark@snap2 tank/home/mark1
# zfs clone tank/home/mark@snap2 tank/home/mark1
#zfs list -r tank/home
NAME USED AVAIL REFER MOUNTPOINT
tank/home/snap1 0 - 34K -
tank/home/mark/snap1 0 - 2.00G -------->Look's Ok
tank/home/mark/snap2 550M - 2.00G ------->Issue space occupying on root 550MB
tank/home/matt/snap1 0 - 1.00G -
tank/home/tom/snap1 0 - 2.00G -
tank/home/mark1 0 - 2.00G
If you create a snapshot from a parent snapshot then we can't delete the parent snapshot with out deleting the chaild snapshot
For that we need to find out the parent and chaild snapshots for that particular dataset by using the name,creation format.
Process:-
#zfs list -t snapshot -r tank/home
NAME USED AVAIL REFER MOUNTPOINT
tank/home@snap1 0 - 34K -
tank/home/mark@snap1 0 - 2.00G -
tank/home/mark@snap2 550M - 2.00G -
tank/home/matt@snap1 0 - 1.00G -
tank/home/tom@snap1 0 - 2.00G -
# zfs list -r -t snapshot -o name,creation tank/home
NAME CREATION
tank/home/cindy@today Fri May 6 6:32 2011
tank/home/mark@snap1 Fri May 6 6:22 2011
tank/home/mark@snap2 Fri May 12 6:22 2012
tank/home/matt@tuesday Tue May 3 6:27 2011
tank/home/matt@wednesday Wed May 4 6:28 2011
tank/home/matt@thursday Thu May 5 6:28 2012
From the above command we can find the difference in year i.e 2011 and 2012.
2012 was chaild snapshot and 2011 was parent snapshot.
If You want to delete the snapshot of the "tank/home/mark@snap1"
Below error occurred due to parent-chaild interconnection
# zfs destroy tank/home/mark@snap1
cannot destroy 'tank/home/mark@today': snapshot has dependent clones
use '-R' to destroy the following datasets:
tank/home/mark@snap2=====>It's recommended to delete 2nd
tank/home/mark1==========>It's recommended to delete 1st
Note:-Why We have to delete "tank/home/mark1" first?
Ans :-We have created a clone copy from chaild snapshot to check the date consistency.
Before destroy the any chaild snapshot we need to clear/destroy/separate the clone copy.
1) Find out the origin of the chaild snapshot
# zfs get origin tank/home/mark1
NAME PROPERTY VALUE SOURCE
tank/home/mark1 origin tank/home/mark@snap2 -
tank/home/mark1 origin tank/home/mark@snap2 -
# zfs get origin tank/home/mark@snap2
NAME PROPERTY VALUE SOURCE
tank/home/mark@snap2 origin tank/home/mark@snap1 -
NAME PROPERTY VALUE SOURCE
tank/home/mark@snap2 origin tank/home/mark@snap1 -
# zfs get origin tank/home/mark@snap1
NAME PROPERTY VALUE SOURCE
tank/home/mark@snap1 origin tank/home/mark -
tank/home/mark@snap1 origin tank/home/mark -
First We need to destroy the chaild clone i.e "tank/home/mark1"
# zfs destroy tank/home/mark1
And then
# zfs destroy tank/home/mark@snap2
Then
# zfs destroy tank/home/mark@snap1
Issue:-
If you are taking the snapshots continuously and creating a clone copy from chaild snapshots and you are not removing the previous snapshot/clones before taking the new snapshot at that time snapshots will occupy more space on root.
To clear/reduce the root space below process need to follow
Solution:-
If you are having space in other pool.Then by using the send receive method's in zfs we can move the date from one pool to other Pool and delete the clones and snapshot copy's.
#zfs send tank/home/mark@snap2| zfs receive zpool1/test1clone.
Or
Enable the promote option in zfs .This will divide the clone from snapshot and then there was no dependence to delete the chaild snapshots.
Once if you enable this feature in zfs it's actlike individual dataset. Before enabling to this feature please check the available space in root/ANY
#zfs promote tank/home/mark1
Conclusion:-
Do send receive process from source server to destination and delete the clones and snapshots.
After deleting the clones and snapshots space will free and do vice verse.
i.e Take the snapshot from destination server and do the send receive process to source server.
No comments:
Post a Comment