Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315277
  • 博文数量: 89
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 691
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-20 16:58
文章分类

全部博文(89)

文章存档

2017年(1)

2016年(35)

2015年(53)

我的朋友

分类: 服务器与存储

2015-09-29 10:39:13


        Snapshot一般都是利用cow(copy on write)来实现的,  
        
        首先,Snapshot会占用磁盘空间,占用空间的多少是由变化数据的多少决定;极端情况下,所有的数据都有变化,就需要有与Target Lun一样大小的Lun。 

        Snapshot开始工作的时候,在RAID控制器的Cache中建立一个数据区域指针,与Target的Block一一对应;当某一个Block的数据中要变化,Controller先将原始数据复制到Snapshot Lun中,同时修改指针,指向Snapshot Lun中的Block。 

        当Host需要读Target Lun中数据的时候,直接读取Targe Lun;如果读取Snapshot Lun中的数据,现查询内存指针;数据没有改变,就直接读取Target LUn中的Block,如果改变,就直接读取Snapshot Lun中的Block。 

        也就是说,Snapshot的核心是建立一个指针列表,指示读取数据的地址。 提供一个瞬时数据的影像,只有当数据要改变时,才复制到一个新的Lun中;数据在一段时间内的变化不是太频繁,就不会占用太多的空间。
阅读(1785) | 评论(0) | 转发(0) |
0

上一篇:raid简介

下一篇:LVM的使用

给主人留下些什么吧!~~