你好,游客 登录
背景:
阅读新闻

存储知识:数据一致性、分级存储、分层存储与信息生命周期管理

[日期:2016-12-23] 来源:  作者: [字体: ]

  一、概述

  数据一致性是指关联数据之间的逻辑关系是否正确和完整。问题可以理解为应用程序自己认为的数据状态与最终写入到磁盘中的数据状态是否一致。比如一个事务操作,实际发出了五个写操作,当系统把前面三个写操作的数据成功写入磁盘以后,系统突然故障,导致后面两个写操作没有写入磁盘中。此时应用程序和磁盘对数据状态的理解就不一致。当系统恢复以后,数据库程序重新从磁盘中读出数据时,就会发现数据再逻辑上存在问题,数据不可用。

  二、Cache引起的数据一致性问题

  引起数据一致性问题的一个主要原因是位于数据I/O路径上的各种Cache或Buffer(包括数据库Cache、文件系统Cache、存储控制器 Cache、磁盘Cache等)。由于不同系统模块处理数据IO的速度是存在差异的,所以就需要添加Cache来缓存IO操作,适配不同模块的处理速度。这些Cache在提高系统处理性能的同时,也可能会“滞留”IO操作,带来一些负面影响。如果在系统发生故障时,仍有部分IO“滞留”在IO操作中,真正写到磁盘中的数据就会少于应用程序实际写出的数据,造成数据的不一致。当系统恢复时,直接从硬盘中读出的数据可能存在逻辑错误,导致应用无法启动。尽管一些数据库系统(如Oracle、DB2)可以根据redo日志重新生成数据,修复逻辑错误,但这个过程是非常耗时的,而且也不一定每次都能成功。对于一些功能相对较弱的数据库(如SQL Server),这个问题就更加严重了。

  解决此类文件的方法有两个,关闭Cache或创建快照(Snapshot)。尽管关闭Cache会导致系统处理性能的下降,但在有些应用中,这却是唯一的选择。比如一些高等级的容灾方案中(RPO为0),都是利用同步镜像技术在生产中心和灾备中心之间实时同步复制数据。由于数据是实时复制的,所以就必须要关闭Cache。

  快照的目的是为数据卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后源数据卷的更新(有新的数据写入),不会反映在快照视图中。利用这个快照视图,就可以做数据的备份或复制。那么快照视图的数据一致性是如何保证的呢?这涉及到多个实体(存储控制器和安装在主机上的快照代理)和一系列的动作。典型的操作流程是:存储控制器要为某个数据卷创建快照时,通知快照代理;快照代理收到通知后,通知应用程序暂停IO操作(进入 backup模式),并flush数据库和文件系统中的Cache,之后给存储控制器返回消息,指示已可以创建快照;存储控制器收到快照代理返回的指示消息后,立即创建快照视图,并通知快照代理快照创建完毕;快照代理通知应用程序正常运行。由于应用程序暂停了IO操作,并且flush了主机中的 Cache,所以也就保证了数据的一致性。

  创建快照是对应用性能是有一定的影响的(以Oracle数据库为例,进入Backup模式大约需要2分钟,退出Backup模式需要1分钟,再加上通信所需时间,一次快照需要约4分钟的时间),所以快照的创建不能太频繁。

  三、时间不同步引起的数据一致性问题

  引起数据不一致性的另外一个主要原因是对相关联的多个数据卷进行操作(如备份、复制)时,在时间上不同步。比如一个Oracle数据库的数据库文件、 Redo日志文件、归档日志文件分别存储在不同的卷上,如果在备份或复制的时候未考虑几个卷之间的关联,分别对一个个卷进行操作,那么备份或复制生成的卷就一定存在数据不一致问题。

  此类问题的解决方法就是建立“卷组(Volume Group)”,把多个关联数据卷组成一个组,在创建快照时同时为组内多个卷建立快照,保证这些快照在时间上的同步。之后再利用卷的快照视图进行复制或备份等操作,由此产生的数据副本就严格保证了数据的一致性。

  四、文件共享中的数据一致性问题

  通常所采用的双机或集群方式实现同构和异构服务器、工作站与存储设备间的数据共享,主要应用在非线性编辑等需要多台主机同时对一个磁盘分区进行读写。

  在 NAS环境中,可以通过网络共享协议N FS或CIFS来做到数据的共享。但是如果不在NAS环境中,多台主机同时对一个磁盘分区进行读写会带来写入数据一致性的问题,造成文件系统被破坏或者当前主机写入后其它主机不能读取当前写入数据的问题。可以通过使用数据共享软件装在多台主机上来实现磁盘分区的共享。由数据共享软件来调配多台主机数据的写入,保证数据的一致性。

  HSM:Hierarchical Storage Management,分级存储管理。起源于1978年,首先使用于IBM的大型机系统。是一种将离线存储与在线存储融合起来的技术。它将磁盘中常用的数据按指定的策略自动迁移到磁带库等二级大容量存储设备上。当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上。

  ILM:Information Lifecycle Management,信息生命周期管理。2001年由StorageTek(现被SUN收购)提出,然而ILM的大力宣传和实践却是由EMC来完成的。

  Tiered Storage:分层存储,指的是基于性能、业务连续性、安全、保护、数据保留、法规遵从以及成本的考虑,将数据分层存放,如主盘,备份盘,归档盘,磁带归档,光盘归档等。HP曾提出过TSC(Tiered Storage Classes)的概念。

  其实,Tiered Storage的意义和HSM相近,都是根据实际需求,选择存储性能、容量相适宜的存储设备,从而降低存储总成本。下面详细地探讨一下分级存储和信息生命周期管理的定义以及区别。

  一、分级存储

  分级存储,就是根据数据不同的重要性、访问频次等指标分别存储在不同性能的存储设备上,采取不同的存储方式。这样一方面可大大减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。在这里就涉及到几种不同性能的存储设备和不同的存储形式了。

  目前常用于数据存储的存储设备主要有磁盘(包括磁盘阵列)、磁带(包括磁带机和磁带库)和光盘(包括一切CD-R、CD-RW、DVD-R、DVD-RW等光盘塔和光盘库设备)。从性能上来说,磁盘当然是最好的,光盘次之,最差的是磁带。而从价格上来说,单位容量成本磁盘最贵、光盘次之,磁带最低。这就为我们不同的应用追求最佳性价比提供了条件,因为这些不同的存储媒介可应用于不同的存储方式中。这不同的存储形式包括在线存储、近线存储和离线存储。

  1、在线存储

  在线存储(OnStore),又称工作级的存储,存储设备和所存储的数据时刻保持“在线”状态,是可随意读取的,可满足计算平台对数据访问的速度要求。如我们PC机中常用的磁盘基本上都是采用这种存储形式的。一般在线存储设备为磁盘和磁盘阵列等磁盘设备,价格相对昂贵,但性能最好。

  2、离线存储

  离线存储(NearStore),主要是用于对在线存储的数据进行备份,以防范可能发生的数据灾难,因此又称备份级的存储。离线海量存储的典型产品就是磁带或磁带库,价格相对低廉。离线存储介质上的数据在读写时是顺序进行的。当需要读取数据时,需要把带子卷到头,再进行定位。当需要对已写入的数据进行修改时,所有的数据都需要全部进行改写。因此,离线海量存储的访问是慢速度、低效率的。

  3、近线存储

  近线存储(OffStore),就是指将那些并不是经常用到,或者说数据的访问量并不大的数据存放在性能较低的存储设备上。对这些的设备要求是寻址迅速、传输率高。因此,近线存储对性能要求相对来说并不高,但由于不常用的数据要占总数据量的大多数,这也就意味着近线存储设备首先要保证的是容量。

  二、信息生命周期管理

  信息生来并非平等的,不同的信息具有不同的价值,如与业务生产相关的关键数据和日志。同一信息在其不同阶段价值也不一样。

  信息从产生的那一刻起就自然地进入到了一个循环,经过创建、保护、访问、迁移、归档和销毁,最终完成一个生命周期,而这个过程必然需要良好的管理,否则,要么是浪费了过多的资源;要么是资源不足降低了工作效率。

  ILM的目标是让信息在其整个生命周期中实现最大价值,使信息在其生命周期的每一点都能以最低的TCO发挥最大的价值。ILM是一种战略,根据信息不断变化的价值,使IT基础结构与业务需要相协调。

  实施ILM战略共可以分为三个阶段:

  阶段 I ―建立基础结构分类或服务级别,并努力让信息存储在适当的存储层。这一阶段允许您利用分层基础结构的价值,尽管是手动进行的,但它为任何基于策略的信息管理奠定了基础。

  阶段 II ―完成详细的应用程序和数据分类,以及到业务策略的链接。可以使用工具为一个或多个应用程序自动执行制定的策略,实现存储资源的更好的管理和最佳分配。大量消耗 IT 资源的应用程序,或者能够利用信息生命周期管理快速实现 ROI 的应用程序,是本阶段的理想目标。

  阶段 III ―为已确立的策略增加自动化功能,将信息生命周期管理的范围扩展到更广大的一组企业级应用程序,并进一步优化基础结构。这一阶段允许您尽可能多地利用通用组件和方法,从而可以进一步减少操作和基础结构成本。

  三、分级存储与信息生命周期管理的关系

  分级存储只是一种存储数据的方式,它是实施ILM的重要组成部分,但并非全部。把它与ILM混为一体,就像是把备份或归档与ILM混为一体。分级存储是ILM实施过程中宝贵的第一步。但是仅此而已,它从未解决过因数据大量保存在数据中心而变得日益关键的很多重大问题,像如何迅速恢复数据、如何提供管理存储的服务等问题。

  四、分级存储与分层存储的关系(不太明白,望高手指点)

  Michael Peterson在2006年1月与SNIA 数据管理论坛里撰文ILM and Tiered Storage提到,分层存储有三种存放数据的机制:

  1、 静态的应用将信息指定存放到某一层

  2、 阶段的成批地移动数据(如归档)

 

  3、 动态的一些自动地数据迁移(如分级存储管理或者某些基于ILM策略的服务)

收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
热门评论