本次实验是在VMWare上的Linux虚拟机实现的,步骤如下: 先给虚拟机添加一块硬盘,再启动虚拟机,通过“fdisk -l”命令查看新硬盘的标识符,我这里显示的是“/dev/sdb”。 初始化硬盘:
本次实验是在VMWare上的Linux虚拟机实现的,步骤如下:
先给虚拟机添加一块硬盘,再启动虚拟机,通过“fdisk -l”命令查看新硬盘的标识符,我这里显示的是“/dev/sdb”。
初始化硬盘:
pvcreate /dev/sdb
创建一个卷组用于实验:
vgcreate test /dev/sdb # test为卷组名,可随意更改。
创建一个逻辑卷,用于存放数据:
lvcreate -L 10G -n data test
格式化:
mkfs.ext4 /dev/test/data
挂载:
mkdir /datamount /dev/test/data /data
准备一些模拟数据:
cp -r /usr/* /data/
创建快照:
lvcreate -L 2G -s -n data-snap /dev/test/data# 这里的2G是快照的容量,它是根据你对你要做快照的分区的容量增长的一个预判。# 比如说你每周做一次快照,你预计下周该分区的容量增长不会超过2G,那你就可以给快照2G的容量。# 一旦增长的容量大于2G,这个快照就废了,所以要根据做快照的频率把握好快照容量的设定。
此时,用“lvdisplay test/data-snap”命令查看“Allocated to snapshot”为0.00%。
新增些数据:
cp -r /lib/* /data/
此时,再用“lvdisplay test/data-snap”命令查看“Allocated to snapshot”为9.20%。
模拟破坏数据:
rm -rf /data/*
尝试恢复数据:
# 将快照挂载到空目录下mount /dev/test/snap-data /mnt# 新建一个临时目录mkdir /tmp/data# 将快照中的数据全部拷贝到临时目录cp -ar /mnt/* /tmp/data/*# 卸载快照umount /dev/test/snap-data# 删除快照lvremove /dev/test/snap-data# 将临时目录的数据拷贝到正式目录下cp -ar /tmp/data/* /data/
有些人可能会问,为什么不直接将快照中的数据全部拷贝到正式目录,因为快照的容量一般比它的分区的容量小,如果直接拷贝过去,可能会使快照的容量爆满,到时所有数据都会丢失。
最后说一句,快照是基于逻辑卷的,如果逻辑卷被删除了(通过lvremove命令删除),那么快照也就失效了。
本次实验到此结束。