Introduction
Elastifile provides advanced features around the snapshot capability.
Snapshot is a "Point in Time" copy of the data for disaster recovery or backup purposes.
When using ECFS, you can create snapshots with the scheduler mechanism per data container.
In addition to that, you can create a manual snapshot as well.
One of the unique capability of Elastifile is shifting the snapshots to an object store which configured by the same UI.
This options saves you the fast primary storage capacity for your critical application, and put the snapshots on the cheap storage.
Restoring files from snapshot
In the following example, I will mount an Elastifile DC called "test" on a linux client.
I create a text file and write some data, and then take a snapshot called 'first_snap'.
[root@instance-1 ~]# showmount -e 172.22.0.1
Export list for 172.22.0.1:
/test/root *
[root@instance-1 ~]#
[root@instance-1 ~]# mkdir /mnt/test
[root@instance-1 ~]# mount 172.22.0.1:/test/root /mnt/test
[root@instance-1 ~]#
[root@instance-1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 10G 1.9G 8.2G 19% /
172.22.0.1:/test/root 1000G 0 1000G 0% /mnt/test
[root@instance-1 ~]#
[root@instance-1 ~]# cd /mnt/test
[root@instance-1 test]# vi file.txt
[root@instance-1 test]# cat file.txt
orig
After that, I will write more data on the same file and take another snapshot called 'second_snap'.
[root@instance-1 test]# vi file.txt
[root@instance-1 test]# cat file.txt
orig
new_data
Now, by viewing the Elastifile DC I created, I can find my 2 snapshots.
In my client, under the mount point I created, I can enter an hidden directory called 'snapshot.
In that directory I can find all the snapshots which are related to the mounted DC.
In each snapshot directory, I can find a view of all the files were exist in the same point in time the snapshot was taken.
The files in the snapshot directories are read only and cannot be modified, but can be copied for restoring the file into the client share.
[root@instance-1 test]# cd .snapshot
[root@instance-1 .snapshot]#
[root@instance-1 .snapshot]# ll
total 0
drwxr-xr-x. 2 root root 0 Feb 3 06:59 first_snap
drwxr-xr-x. 2 root root 0 Feb 3 07:00 second_snap
[root@instance-1 .snapshot]#
[root@instance-1 .snapshot]# cd first_snap/
[root@instance-1 first_snap]# cat file.txt
orig
[root@instance-1 first_snap]#
[root@instance-1 first_snap]# cd ../second_snap/
[root@instance-1 second_snap]# cat file.txt
orig
new_data
[root@instance-1 second_snap]#
[root@instance-1 second_snap]# cd ../first_snap/
[root@instance-1 first_snap]#
[root@instance-1 first_snap]# cp file.txt /mnt/test
cp: overwrite ‘/mnt/test/file.txt’? y
[root@instance-1 first_snap]# cd /mnt/test
[root@instance-1 test]# cat file.txt
orig