一个方案设计提早完成,周四,周五就轻松一些,那就写点东西吧。关于存储精简配置技术,算是一个古老的技术,不过仍然看到有论坛不少朋友没有一个完整的理解,包括:目前技术程度,发展过程,用到哪些方面环境,应该注意什么,产生的效益等等,所以我想阐述下本身一些卑微的见识;毕竟Thin Provisioning给我带来不少利益,同时也是我比较敬重技术之一。数据库
<之因此称他为古老的技术,那是由于存储技术的发展实在太快了>网络
首先,因为一些标准协会的成立,不少技术概念已被定义,不过一些技术概念在不一样的厂商使用不一样的专利技术实现,所呈现的结果多是不一样的。厂商为了符合市场需求,产品竞争力,一般在维护这些技术概念的基础上,进一步扩展其特性,这就比如Linux,简单来讲,最初阶段只是一个内核,而现在发展成各个分支与商业版本,惟一保留的则是那几个核心命令和系统名称,告诉人们它是从Linux演变而来的。架构
其次,我但愿任何对这篇文章感兴趣的朋友,可以按照文章的思路走下去,其一:可以完整的了解这个技术以及发展到目前的程度。其二:您可能接触不少一线厂商的存储中关于Thin Provisioning的技术例如:IBM,EMC等等,而这并不表明Thin Provisioning技术是他们强项,因此咱们的想象力绝对不能被他们限制。ide
******再次声明下:既然标识为原创,证实下方所阐述的所有来于我本身的观点。个人经验,阅历,知识程度等方面会有不足,请把此文做为一个参考,切勿较真。
性能
----------------------------
测试
先聊一下发展历程:spa
<*这不是一篇软文,因此我尽量隐去一些公司名称>操作系统
Thin Provisioning技术蓝图来自存储界的前辈STK公司,由于他们早在93年提出来的,这一点能够在Google.com.tw进行了解,只是一个蓝图或说是技术架构。而在2001年<或者以前>被一个软件厂商“V”公司使用在存储层并投入市场,使以前的蓝图转为商业技术,不过这一技术的命名并不是使用的是“Thin Provisioning”,其技术原理和结果倒是同样的。紧接着在Gartner 02年峰会,“P”公司实现了Thin Provisioning技术,且命名为:Thin Provisioning;在当时有趣的是,V公司和P公司在媒体,公开场合争论的不可开交,争论的焦点在于——Who is the first Thin Provisioning?或者Who invented the Thin Provisioning?但两个公司还算厚道,坦诚是STK首先提出的这一理念。设计
精简配置技术架构?3d
精简配置技术在于把存储内部的磁盘或者RAID进行“池”化,经过磁盘池提供LUN给应用主机,而提供LUN的体积不受实际空间的制约,经过图释也许可以更直观的了解:
经过上图可以看出,全部RAID容量被合并到一个大的池中,池能够包含一个RAID或者若干个:容量和数量取决于各厂商的技术原理和指标,而这一技术发展并未中止。
随之虚拟化技术普遍使用,一些跑在技术前沿的厂商创造了更高明的玩法,好比经过软件,创建一套虚拟化层,整合的资源从存储的内置RAID扩展到整合外置的资源。好比把一台或若干台存储也塞到磁盘池,而且让这些不一样厂商的存储相容性的工做,以下图:
实现这一技术的过程也许至关复杂的,可是就结构来看比较简单。
值得一提的是,任何技术都会有乐观的一面和消极的一面,关键是各个厂商是否投入精力去改善这些不利的因素。若是选择咱们运气好选择了一个不错的厂商,潜在问题都已解决或规避,咱们彻底认为这个技术是没有反作用的,那剩下的则是潜在效益,这是明智的。固然咱们也会遇到另外一种状况,厂商没有投入过多的精力或技术实力因素,致使这个技术不是很完善,咱们能够采起变通的方式解决,可是不要消极的看待某种技术,或完全的放弃。我以为做为技术人员,应该充分利用现有技术,由于这是用户投入的一部分,尽量不要为用户作主。
聊一下Thin Provisioning使用会带来哪些潜在的问题!如何规避以及那些更完善的技术厂商所带来的结果:
容量爆满:
经过上面图释可以看到,每一个主机都得到了一个更大致积卷,这些虚拟体积容量也会呈如今每一个主机的操做系统,正常状况下,主机会无止境的填满被本身识别到的空间;会不会有种可能,其中一个主机把磁盘池实际容量给填满了?答案是:默认状况下会发生的。而且全部的主机将会出现写入报错的信息,如图:
上图是预料中的结果,由于咱们实际的磁盘(5TB)都已经被其中一台主机填满了;
一些厂商比咱们更早意识到了这问题。因此,咱们选择这项是技术要咨询厂商如何解决这个问题。一部分厂商使用容量限制阀,也就说虽然提供了35TB-LUN给一个主机,固然主机在系统也能识别,可是咱们提早在存储对这个LUN设置了一个Reserve值,好比是33;哈哈,这下好了,这个主机虽然识别了35TB,但只能使用到2TB;另一部厂商使用优先级的设置,好比以整个磁盘池资源为基础,强制多少TB只能是给哪几个主机使用,而这几个主机可能运行着关键业务。容量爆满的问题已经解决了。对于有些存储厂商彷佛没有作到这么完善,那也OK,另外建立一个LUN,这个LUN不提供任何服务,只是Standby。一旦磁盘池容量被写爆,删掉这个LUN,让磁盘池多出一部分空间,而后尽快购买磁盘,而且,存储设备一般会有丰富的预警措施,请善用这一点。
聊一下空间自动回收
容量写爆问题,对Thin Provisioning了解的工程师彷佛都比较关注,可是,如今聊得话题更应该关注,由于可以解决此问题的厂商真的不多,但不少时候咱们须要解决。
一个有趣的回忆,在一台手提电脑,有些时候咱们误删除一堆东西,也多是格式化,而文件系统也显示了空间被释放,可是为何第三方软件仍然可以恢复这些内容呢?阅历比较丰富的技术人员明白了答案:这些被删除的文件仅仅是从系统上,由“1”被标记为“O”,而且告诉文件系统,“O”是可用空间,而实质来说,没有被覆盖以前,删除的内容仍然存在;<固然个人措辞不太严谨,请参照权威的诠释>
这个问题映射到存储层会是什么结果呢?一个10TB-LUN映射给主机A,首先存储的磁盘池被占用的空间则是“O”,这是Thin Provisioning的特性,以数据实际占用为主。这时候由于某一个测试,主机A把10TB的卷塞满,此时,磁盘池被占用的容量是10TB。再过一会,主机A的测试结束,删除了卷内的临时数据9TB,而这时,磁盘池被占用的容量则仍然是10TB,其实,不管主机删除多少内容,只要10TB卷被填满过,存储层的磁盘池就没法再释放。问题来了,一个新主机B加入网络中,须要2TB的容量,而磁盘池将没法提供任何容量给主机B,而且磁盘池显然容量可用为“0”;若是多台主机已经存在网络中,那么其它主机也没法写入。但是咱们很须要在磁盘池释放这些空间,尤为是更多台主机。Thin Provisioning的磁盘池在于提升容量的利用率,在此时看来却与之违背。
一个好的消息,这个已经能够解决。一个很差的消息,更多的厂商没有解决。
首先,这须要两部分来操做,第一:在应用主机上面,对已删除的数据作“Zeroed”—至零操做。我本身的经验告诉我,目前市场上主流的商业操做系统都会支持。第二:须要在存储执行“Recycle”—空间回收。两个操做原理能够用一个比较恰当的场景:小明向政府租借了10块地皮盖房子,而后以为本身一我的不必住这么多,就拆掉了9个房子,而后他通知政府,请把9块地皮拿走吧,我不要了,这时政府行动,收回来了地皮共9块,分与其它人使用。
之因此在此前强调,这个空间回收问题重要性,缘由是不少存储设备不支持Recycle。若是要回收这部分空间,意味必须整个删掉了LUN;
结论:在使用Thin Provisioning技术时,请选择有Recycle功能的存储,若是环境的系统是vSphere,而且存储设备支持VAAI,那就太棒了,由于这部分空间能够自动回收,无需繁琐的步骤。
那关于空间回收的问题也解决了,除此以外还没想到Thin Provisioning带来的其余问题。
在最后这一部分,我想称赞Thin Provisioning来了的利益!
在技术上:早期的文件系统没法提供更多的便捷性,假如一个卷写满了,管理员只能依靠堆积更大的卷组。没法保证1个TB卷,写满后扩容到2TB以此类推,像NTFS的扩展卷同样来的方便。而庞大的卷组会致使更多的隐患。好比存储阵列可以对磁盘进行更高级别的保护,那若是卷组下面有的5个卷,其中一个卷产生逻辑错误,存储阵列都没法帮助管理员。依靠快照技术,可以对每一个卷进行数据回退,可是,对于一个卷组依靠的是5个LUN来说,必须在同一时刻对5个LUN同时执行快照,我尝试过,若是存储阵列没法把5个LUN组合成LUN Group进行快照,而是单独为每个LUN作5个快照,不少时候卷组上面的数据库没法启动,可几乎就是一致性所致使的问题。
经过Thin Provisioning技术,管理员在第一期规划就给主机映射一个10TB,或者100TB空间,而无需关心实际容量是否知足?其它主机是否够用?,在从此容量扩展中,主机管理员不作任何操做,容量自动上浮,更不会产生由于卷扩容带来的停机。
不少用户厌倦了传统的存储方式,一个RAID 2TB的空间,若是划分一颗1TB LUN给主机,那下一个主机接入,只能映射一颗等于或者小于1TB的LUN,而不考虑第一个主机使用率是多少,Thin Provisioning则完美的解决了这个问题。
Thin Provisioning技术使用,磁盘池下面的RAID或者LUN采用最多的则是Striping技术,这无疑为每一个卷的IO增长了Spindle's,主机的应用程序会直接获益,减小IO队列,提升性能。
提供利用率,资源灵活分配,动态迁移等等好处还真是很多,关键在于除去节省用户的投资,没有用户规划周期是当前到下一个季度,一般是2年,3年,或是5年。为了后期兼容性及平滑融入环境,用户一般会一次性投入,好比年数据量增加是100TB,那么3年的规划就300TB的一次性投入。经过Thin Provisioning技术能够先投入100或50TB,而每一个主机早早的得到了一个300TB的空间,受益于虚拟化技术,后期可以平滑的接入存储设备,无需考虑兼容性,磁盘池屏蔽了主机与存储子系统的交互,扩展变得更随意。还记得最先说起的“V”公司吗?IBM早在01年,经过Resell<转售>“V”公司的产品,使数以万计的IBM存储用户下降采购成本,提升购买力。HDS公司则是直接采用OEM合做方式,让用户直接获益................
由此看来,Thin Provisioning是存储界伟大的技术发明之一!