漫谈高端存储的快照效率和一致性快照

西瓜哥 发表于:13年09月04日 12:02 [原创] 存储在线

  • 分享:
[导读]今天西瓜哥通过厂商的实例深入简出的解读了高端存储快照实现原理以及快照效率和一致性快照技术。

最近我重点看了IBM的DS8870的手册,800多页全英文的,看得我头都大了。前面介绍open system的时候有一个错误,这里纠正一下。

IBM说DS8000支持open systems and system z/os。从IBM的描述来看,如果z系列大机安装linux应该算open system。另外,DS8000的FC主机接口支持FCP和FICON协议,不需要单独的FICON口。我 原来以为DS8000分不同的口,发现物理层都一样,只是上面管理员要选择跑FCP协议还是FICON协议,但不能同时支持。因此3PAR和HW HVS这些只支持open system的高端存储,也可以支持大机了,只要和大机做一个兼容性的测试就可以了。以后,大机和open system并不能对立来看,这是我的理解。

上面我们说了快照实现的两种方法COW和ROW。虽然采用同样的技术,但每个厂商实现的细节都 不同,加上底层RAID技术不同,因此空间的利用率方面差距也比较大。大家看到,同样采用COW技术,3PAR和HW由于底层采用RAID 2.0技术,因此实现的效率更高,性能指标也高不少。因为RIAD 2.0具备完全块虚拟化能力,存储空间是在写时完成分配,而且具备非常灵活的扩展能力。

1、在创建快照的时候,不用为快照匹配资源池。按照COW原理,当快照需要额外空间保存数据时,RAID 2.0会自动从存储池中分配空闲空间给快照。

2、当存储池空闲存储空间不足时,只需要简单给存储池扩容即可。

3、因为业务LUN和快照共享存储池,所以不会出现资源池浪费或不足等存储空间管理问题。

但采用传统RAID的高端存储,如EMC V-MAX,在最新的Enginuity version 5876才加入TimeFinder VP Snap功能,只有针对thin LUN做快照具有上面的部分优点,一般LUN的快照系统需要保留20%-30%左右的预留快照空间才行。

快照另外一个非常重要的特性是快照一致性组(Consistency Group)。我们今天重点来介绍这个功能对于高端存储的意义。

这个功能就是支持多个LUN或者叫卷volume同时做快照,保证数据的一致性。我们举一个生活的照集体照的例子来说明这个这个功能的用处。

我的大情人在银行工作,她曾经告诉我,她们银行很NB,每次部门合影,别人一般只会喊“茄子”,她们都是这样喊的:

摄影师:大家别动,马上要拍照了。

摄影师:我们银行什么最多?

众人:钱!(啪,第一张快照)

摄影师:钱多怎么办?

众人:花!(啪,第二张快照)

摄影师:花完怎么办?

众人:抢!(啪,第三张快照)

你看,是否是很有气势。以后你们照合影都可以这么学,把银行改成你们部门就好了。不过现在银行银根缺紧,应该没这么牛气了吧。

为什么要大家统一喊“钱”、“花”、“抢”?意思这个口型类似“茄子”,说起来像笑的样子,关键是同时笑,这张集体照才完美。

看这样的毕业照多美,是吧。为什么一般集体照要多照几张,就是怕有些人脸长,笑容爬得慢,不同步。你看这个小伙就不老实,需要重拍。

快照一致性组就是解决这个问题。我说一个ORACLE数据库的例子,10多年前我还是一个认证的ORACLE DBA(当时中国认证的人很少,我们封闭学了一个月,考了5门课才拿到证书。据说当时如果直接技术移民加拿大都没有问题,和CCIE有一拼。不过现在好像 掉下个椰子都会砸着两,哎),我们建数据库的时候一般采用多个裸设备(LUN),不同的LUN用来放不同的数据。如果采用阵列的快照来做数据库的备份,必 须所有的LUN都是一个时间点的才行,这样数据库恢复的时候才能起来,否则数据库必须回滚到某一个一致的时间点,意味数据的丢失。比较完美的做法就是在主 机安装一个快照的agent,最好是多路径软件具备这个功能(据说华为已经整合在一起了),在高端存储要做快照的时候,对主机的快照agent说,别动, 要照相了。主机agent接受到摄影师的命令后,把ORACEL主机缓存的内容flush一下到陈列来,然后hold住,阵列也尽快把cache的内容 flush到硬盘里,ORACLE用到的所有硬盘一块喊”茄子“,摄像师一按快门,一幅完美的快照就产生了。

一致性组除了保证照相的时候一致性外,还有恢复的时候要一致性恢复。这块的实现的重要性就不如照相的时候重要,可以人工选择同一时间的LUN快照恢复就可以了。最重要的是照相的时候必须要一致,而且这个人工干不了。

高端存储手册里面的KiB,MiB,GiB是啥意思?

接下来随便聊一个我过去不太注意的小细节。也就是在我看使用的厂商手册里面,经常出现KiB,MiB,GiB这些术语,我详细里面有很多童鞋了解它的意思,我也相信很多童鞋不太了解。

这个原因只要是KiB,MiB,GiB是采用2进制来,而我们常见的KB,MB,GB都是采用10进制来表示的单位。

这是十进制的单位:

这是采用二进制的单位:

造成这种原因主要是计算机操作系统都是采用二进制来表示的,而一般硬盘厂商都喜欢采用十进制来表示容量(估计这样容量就可以大一些?),害得我们经常需要在这两种容量中算来算去。

在 购买硬盘之后,细心的人会发现,在操作系统当中硬盘的容量与官方标称的容量不符,都要少于标称容量,容量越大则这个差异越大。标称40GB的硬盘,在操作 系统中显示只有38GB;80GB的硬盘只有75GB;而120GB的硬盘则只有114GB。这并不是厂商或经销商以次充好欺骗消费者,而是硬盘厂商对容 量的计算方法和操作系统的计算方法有不同而造成的,不同的单位转换关系造成的。

众所周知,在计算机中是采用二进制,在电脑世界里,以2的次 方数为“批量”处理Byte会方便一些,整齐一些。每1024Byte为1KB,每1024KB为1MB,每1024MB为1GB,每1024GB为 1TB,而在国际单位制中TB、GB、MB、KB是“1000进制”的数,为此国际电工协会(IEC)拟定了"KiB"、“MiB”、“GiB"的二进制单位,专用来标示“1024进位”的数据大小;而 硬盘厂商在计算容量方面是以每1000为一进制的,每1000字节为1KB,每1000KB为1MB,每1000MB为1GB,每1000GB为1TB, 在操作系统中对容量的计算是以1024为进位的,并且并未改为"KiB"、“MiB”、“GiB"的二进制单位,这差异造成了硬盘容量“缩水”。

还有,硬盘需要分区和格式化,操作系统之间存在着差异,再加上安装操作系统时的复制文件的行为,硬盘会被占用更多空间,所以在操作系统中显示的硬盘容量和标称容量会存在差异,而硬盘的两类容量差值在5%-10%左右应该是正常的。

大家了解了这些知识后,希望以后看到带“i"的单位就知道是啥意思了,不要以为是厂商创造的新术语哦。

不过,我看到很多国产的产品手册,好像从来不区分这两个单位,因此,我感觉严谨性不够。比如,IBM DS8870的Extent大小,写得很清楚是1GiB,XIV的手册也很严谨,MB和MiB区别得很清楚。我们中国人需要学习这种严谨的写法(啊,又扔 臭鸡蛋,我错了,行吗,我前面的文章所有的单位都应该带i,除了表示硬盘容量的单位外。看来讲别人容易,自己改起来难啊)。

好的,今天我们先聊到这里。希望大家积极反馈你的意见和建议,微信扫描如下二维码,关注微信公众号“高端存储知识”,与作者微信互动。

[责任编辑:西瓜哥]
前几期存储专栏,西瓜哥分享了对各个厂商高端存储的一些看法,今天让我们放松一下,聊得高端存储江湖的人和事。学高端存储知识也可以很快乐,对吧。 我们今天来探讨高端存储的关键人物。大家认为,谁是高端存储之父?
官方微信
weixin
精彩专题更多
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
12月15日,中国闪存联盟成立,同时IBM Flash System卓越中心正式启动
DOIT、DOSTOR、易会移动客户端播报中国存储峰会盛况。
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved.