存储基础知识(一)重定向写快照原理

           我目前所了解的快照有两种,第一种是COFW 写时拷贝,在修改数据块时将原来数据原封不动的拷贝到快照资源存储空间,已达到保护的目的,第二种,就是我将要说的写时重定向ROW,他跟COFW不同的时在保护数据的时候不会发生数据拷贝,只需要在原存储空间申请新的数据块,用户读数据时会重定向到新的数据块,不需要做拷贝。

            这种重定向的快照基于一种特殊的lun,精简LUN,简单介绍下这种LUN。有两个存储区,物理区和私有区,私有区用来存储管理信息,地址映射,而物理区真正的存储数据。

             当用户首次写原Lun的时候,假设从0位置起始开始写数据,大小为一个数据块8k,原理图如下:

首先,根据用户所写的范围大小,产生一个逻辑地址,这里也叫lba,标志用户写数据的位置。物理区也会产生一个标志哪个数据块的物理地址pba,这个pba与lba通过私有区一一映射,也即,一个数据块有lba和pba且一一对应。二元组是用来记录所保护的数据,有两个值一个lba,一个pba,表示lba数据块的数据修改前的数据存放在pba的位置。

用户刚开始写的时候,发现原Lun 是没有数据的,此时要给第一个数据块写A。它会先去根据写的位置lba=0读地址映射,查改lba对应的pba,发现未映射过,pba为全ff,此时要去保护写A之前的数据,写A之前没数据,所以lba=0,pba = ff;再把A写到lba=0,pba=0的位置。

同理有数的lun也是如此:

用户给A位置写A',查地址映射发现A的地址映射存在且为0,即pba = 0;这时,会在物理区新分配一个数据块,并把A'写进去,同时把之前映射A的地址修改为映射A',二元组中存放的是lba =0,pba= 0;用户下次来读lba=0的位置会读到A',而A被保护在二元组中,要想回到A,需要会滚到该时间点之前。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值