1.
1.
1.1. 用户态实现
对lv1创建一个快照卷时,有前面章节可知会创建多个dm设备,如下图所示:
以上几个设备的创建过程如下:
1. 创建snap_lv1,其类型为linear,分配其存储空间,与磁盘映射关系如上图所示;
2. 创建lv1-real,其类型为linear,其映射的磁盘空间和lv1原有的映射一致;
3. 更改lv1的类型为origin,此时lv1被标记为只读,并且把io操作都重定向到lv1-real设备;
4. 创建snap_lv1-cow,其类型为linear,将其映射到snap_lv1分配的磁盘空间上,也即是和snap_lv1的映射一致;
5. 更改snap_lv1的类型