智者,既能奋发不休,又能尽人事,顺天命
分类: LINUX
2013-02-28 12:12:59
在LVM中,可针对某一个LV创建某一时刻的快照卷,快照卷创建时会复制源卷的元数据。
当源卷某个block被修改时,在修改前会将这个block复制到到快照卷。
例如一个文本文件1.txt占用了编号为1000的block,如果修改1.txt的内容,则修改前这个block会被复制到快照卷。
需要注意的是,在源卷中未被使用的block被写进内容,依然会做复制。例如编号为2000的block未被使用,也就是说块位图中的值为0。此时源卷新建一个文件,占用了这个block,那么这个block依然会被复制到快照卷。
这么一来,快照卷就意味着是源卷某一个时刻的精确副本,哪怕未被使用的block都要保存下来。
个人感觉没什么必要,当从快照恢复时,把被修改的数据复制回来,那些原来未被使用,建立快照后在源卷中才被使用的block,在块位图中置0就OK了。也就是说,把快照卷当初复制的元数据覆盖回来。
如果快照卷不复制原来未使用的block,性能应该会有所提高,但也许不够安全,因为恢复后,源卷并不是百分百回到建立快照时的状态,之后写入的数据依然存在,只不过被标识为未使用的block而已。