I just finished doing a simple backup using logical volume management's snapshot tool. I decided to use an unused hard disk (empty) that's already a PV on my volume group for backup storage. If you intend to use another storage solution, perhaps that would be the subject of another blog post.
Create An LV
In my case, I have to create 2 LVs for each originLV I want to make a backup of. I want to make a backup of my Musiclv and my Videoslv. Also I have to create a standard LV where my backup file will end up. If you have "other" destinations for your backup file then you don't have to create these standard LVs.
To create a snapshot LV the command is:
$ lvcreate -s -n Musicbackup -L <size> /dev/vol2/Musiclv
$ lvcreate -s -n Videosbackup -L <size> /dev/vol2/Videoslv
A snapshot LV creates a frozen image of the originLV. So these are: Musiclv -->> Musicbackup and Videoslv -->> Videosbackup. The -s flag is the --snapshot option for the lvcreate command. The -n flag gives you the option to give your snapshot an appropriate name. The -L option is the size of your snapshot. There's no rule as to the size but in my case since I'm removing the snapshot LV after I'm finished with my backup, it doesn't have to be big. Snapshot LVs are considerably smaller, a fraction, of their originLVs. The snapshot LV only grow in size once changes are made to their originLV and only by how much changes there are.
We have to mount the snapshot so we have to create the directory first.
$ mkdir -p /mnt/vol2/Musicbackup
$ mkdir -p /mnt/vol2/Videosbackup
We can mount our snapshot.
$ mount /dev/vol2/Musicbackup /mnt/vol2/Musicbackup
$ mount /dev/vol2/Videosbackup /mnt/vol2/Videosbackup
We can check for the files listed there with:
$ ls -l /mnt/vol2/Musicbackup
$ ls -l /mnt/vol2/Videosbackup
Now let us create the standard LVs I mentioned before. I have an unused PV (/dev/sdd1: 3TB ) and I want to use it for backup.
$ lvcreate -L 50G Musicbackups vol2 /dev/sdd1 ##explicitly included the PV to use in the VG
$ lvcreate -L 100G Videosbackups vol2 /dev/sdd1 ##explicitly included the PV to use in the VG
A very good tip here for the size of the LV is to start small. Also take note of the existing sizes of the originLVs here. Adjust the numbers to your use case.
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vol1-root 30G 16G 13G 55% /
/dev/mapper/vol1-home 174G 93G 72G 57% /home
/dev/mapper/vol2-Videoslv 2.0T 34G 1.8T 2% /home/donato/Videos
/dev/mapper/vol2-Musiclv 689G 23G 631G 4% /home/donato/Music
After creating the standard LV, you have to create the filesystem.
$ mkfs.ext4 /dev/mapper/vol2-Musicbackups
$ mkfs.ext4 /dev/mapper/vol2-Videosbackups
Create a mountpoint and mount the standard LV.
$ mkdir -p /backups/Music
$ mount /dev/mapper/vol2-Musicbackups /backups/Music
$ mkdir -p /backups/Videos
$ mount /dev/mapper/vol2-Videosbackups /backups/Videos
To summarize, we have created the snapshots and then created the LV's where we'll store the backup tarballs. It's time to create the backup tarball.
$ tar -pczf /backups/Music/music.tar.gz /mnt/vol2/Musicbackup
$ tar -pczf /backups/Videos/videos.tar.gz /mnt/vol2/Videosbackup
I want to remove the snapshots since i'm only using them for backups.
$ umount /mnt/vol2/Musicbackup
$ lvremove vol2/Musicbackup
$ umount /mnt/vol2/Videosbackup
$ lvremove vol2/Videosbackup
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home vol1 -wi-ao---- <177.08g
root vol1 -wi-ao---- 30.00g
swap vol1 -wi-ao---- 16.00g
Musicbackups vol2 -wi-a----- 50.00g
Musiclv vol2 -wi-ao---- 700.00g
Videosbackups vol2 -wi-a----- 100.00g
Videoslv vol2 -wi-ao---- 1.95t
All that is left are the originLVs and the regular LVs containing the backups.
Comments