在上一篇博客中讲了lvm相关知识、如何建立逻辑卷、如何扩展和缩减逻辑卷,接下来要讲的是lvm的第二个魅力所在:支持快照功能,使得对于数据库的备份变得更加简便。
数据库
1、lvm的快照(snapshot)功能介绍
bash
对于一个繁忙的系统,如一些在线的购物系统,要对其数据库进行备份是件很麻烦的事。对数据库备份,通常都要在离线的状况下进行,而对于那些繁忙的系统来讲,它们的数据甚至每时每刻都在变化。若是为了对其数据库进行备份,而让繁忙的系统离线一段时间,那就会出大问题的,公司亏损不起啊!这些系统的数据每时每刻都在更新、都有可能会被用到,又不能离线,要想对其进行数据库备份,那该怎么好呢?这时候就体现出lvm快照功能的好处了! app
那么,接下来,咱们来讲说lvm的快照功能是怎么的一回事:ide
站在逻辑卷的角度来看,快照实际上是个快照卷。spa
快照卷能对目标逻辑卷作一次快照,作完快照后,快照卷拥有了对目标逻辑卷的一条访问通路。blog
快照卷刚开始的存储空间里实际上是空的,并不存有任何数据,作完快照的那一刻起,当目标逻辑卷里的数据要发生改变时,就会把要改变的数据复制到快照卷中,复制完后,要改变的数据就在目标逻辑卷中任由它改变,而不发生改变的数据仍然留在目标逻辑卷中。rem
所以经过快照读取数据,就能在快照卷中读取到改变以前的数据,更能经过那条访问通路进入目标逻辑卷读取到从没有发生改变的数据,从而形成的结果是:能经过快照读取到作成快照那一刻的数据(也就是改变前的数据)。get
于是当你建立一个快照卷时,不须要建立和目标逻辑卷同样的大小的快照卷,快照卷的大小取决于有多少数据须要改变和你但愿保留lvm快照多长时间。而当目标逻辑卷的改变量超出了快照卷的大小时,快照卷就会面临崩溃。快照卷仅是为了对数据进行备份而建立的,没有永存的概念,用完了就会被释放。 博客
注意:快照卷是对某逻辑卷进行的,所以必须跟目标逻辑卷在同一个卷组中;无须指明卷组;it
(注:此图是起点梦想的博文:http://pangge.blog.51cto.com/6013757/1256568 中的图,这个图已经生动形象地展现了快照的工做原理。)
由此,咱们知道快照使得数据库备份变得更加简单、便捷:对于一个繁忙的系统,要对其进行数据库备份,可让系统离线极短的一段时间(不影响系统运行),而后对其作一个快照,就能正常便捷地备份数据库了,而不会对系统形成不便的影响。
2、快照卷
建立快照卷的命令介绍:
因快照卷也是逻辑卷,因此建立快照卷的命令也是lvcreate。
lvcreate
-L 指定快照卷的大小
-n 指定快照卷的名称
-s 建立快照卷
-p r 指定访问权限(快照只能读)
再次提醒:快照卷是对某逻辑卷进行的,所以必须跟目标逻辑卷在同一个卷组中;无须指明卷组;
为了让各位读者可以更好地理解快照卷是怎么建立、怎么用的,如下用实例来说解:
一、建立快照卷
[root@localhost mnt]# mount # mylv逻辑卷已经挂载在/mnt目录下 /dev/mapper/myvg-mylv on /mnt type ext4 (rw) [root@localhost mnt]# ls issue lost+found [root@localhost /]# lvcreate -s -L 200M -p r -n mylv-snap /dev/myvg/mylv # 对逻辑卷mylv建立快照卷 Logical volume "mylv-snap" created [root@localhost /]# ls /dev/myvg/ # 快照卷和目标逻辑卷在同一个卷组中 mylv mylv-snap [root@localhost /]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv myvg owi-aos--- 5.00g mylv-snap myvg sri-a-s--- 200.00m mylv 0.01 # 快照卷 root vg0 -wi-ao---- 20.00g swap vg0 -wi-ao---- 2.00g usr vg0 -wi-ao---- 10.00g var vg0 -wi-ao---- 20.00g
二、挂载快照卷
要想使用快照卷,同样要先挂载。
[root@localhost ~]# mount -o ro /dev/myvg/mylv-snap /media # 挂载快照卷到/media目录下(-o ro 表示以只读的方式挂载) [root@localhost media]# mount /dev/mapper/myvg-mylv on /mnt type ext4 (rw) /dev/mapper/myvg-mylv--snap on /media type ext4 (ro) [root@localhost media]# ls issue lost+found [root@localhost media]# rm issue # 快照卷是只读的,不能修改其文件 rm: remove regular file `issue'? y rm: cannot remove `issue': Read-only file system
三、验证快照卷的功能
[root@localhost media]# cd /mnt [root@localhost mnt]# ls issue lost+found [root@localhost mnt]# cp /etc/fstab ./ # 目标逻辑卷中的数据发生了修改 [root@localhost mnt]# ls fstab issue lost+found [root@localhost mnt]# cd /media [root@localhost media]# ls # 经过快照卷访问的数据仍是改变以前的数据 issue lost+found
3、巩固练习
好了,为了进一步加深理解,特留几道练习题,但愿各位作得愉快! ~
一、建立一个由至少两个物理卷组成的大小为10G的卷组;要求,PE大小8M;然后在卷组中建立大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录;
2、新建用户gentoo,其家目录为/users/gentoo,然后su至gentoo用户,复制/etc/fstab文件至本身的家目录;
3、扩展mylv1至7G,确保/users/gentoo的数据不受影响;然后su至gentoo用户,验正数据可正常访问;
4、缩减mylv1至4G,确保/users/gentoo的数据不受影响;然后su至gentoo用户,验正数据可正常访问;
5、对mylv1建立快照卷snap-mylv1,并经过其cp内部的数据至/backups/目录中,要求保留原有属主属组等信息;