【存储】RAID 知识之二

   从 章中我们了解到多个磁盘驱动器通过可以通过RAID卡并行传输数据,达到单个的磁盘篇文驱动器几倍、几十倍甚至上百倍的速率。而除了并行传输数据提高系统io性能之外还有 RAID缓存--cache 。cache具有两大功能: 

   a) 预读:根据一定的预读算法提前将系统将要读取的数据存放到cache中,以便提高命中率,减少磁盘访问。预读有两种方式:

Read Ahead

     由于数据在磁盘中经常是以一族连续的扇区组织起来的,所以如把系统所请求的扇区随后的一个扇区里的数据同时读到缓存中。

Pre-Fetch

    当RAID卡发现系统要读的是先前已经读过的数据时,便将这一个数据块的数据写到CACHE里。

    b) 回写:操作系统发出的一系列写 IO 命令并未真正的执行而是暂时将数据存在CACHE中,然后再一次性的将缓存的中的数据写入磁盘。这样可以达到合并小IO为大IO,同时也可以将多个小的随机IO转换为顺序写IO,减少磁盘寻道时间,提高写入效率。

    读缓存虽然可以提高效率,但是也存在数据安全问题,对于WB策略,由于操作系统发出的写IO命令写入到缓存中后即被认为写入成功,而实际上数据是没有被真正写入磁盘的,此时如果掉电,缓存中的数据就会永远的丢失了,对于数据安全性要求极高的数据库应用而言这是不可接受的。目前解决掉电最好的方法是给缓存配备电池,保证存储掉电之后依然有足够的电源将缓存中的数据写入磁盘。说道这里必须介绍一下RAID 卡的三种Write policy:

   Write Through :控制器只在数据成功写入磁盘后才发送写入请求完成信号给上层系统,因此WT的数据安全性要高于WB.

   Write Back    :在数据进入控制器高速缓存但尚未写入磁盘时,控制器会发送写入请求完成信号。回写高速缓存可以改善性能,因为后续的读取请求可以更快地从控制器高速缓存检索数据,而不必从磁盘检索。不过,回写高速缓存也需要数据安全保护磁盘,因为系统故障可能会使数据无法写入磁盘,即使控制器已发送了写入请求完成信号。此时,可能会遗失数据。其它应用程序如果假定数据在磁盘上而采取相应的操作,也可能会遇到问题。

   Force Write Back:不管控制器是否有电池,写入高速缓存都会启用。如果控制器没有电池并且使用强制回写式高速缓存,在出现电源故障时就可能会发生数据丢失。 

时间: 2024-09-21 17:27:57

【存储】RAID 知识之二的相关文章

android-关于安卓数据存储的知识

问题描述 关于安卓数据存储的知识 sharepreference中怎么存类似于数组的数据,类似于分类存储,每个类有几个内容 解决方案 1.使用sethttp://www.2cto.com/kf/201305/210049.html2.字符串分隔http://doublekj.blog.163.com/blog/static/146818474201322944643761/3.转换成json字符串后存储 解决方案二: PostgreSQL的数据存储(十七)---数据存储的知识扩展安卓数据存储方式

JavaScript知识(二)

原文:JavaScript知识(二)  你要保守你心,胜过保守一切,因为一生的果效,是由心发出的.----O(∩_∩)O... ...O(∩_∩)O...老师因有事下午没来上课,今天就只把中午讲的知识总结一下.由于昨天只是讲了JavaScript的一些基础入门知识点,所以今天就详细地总结一下Javascript的基础. Javascript语言组成: ECMAScript:描述了该语言的语法和基本对象. DOM(Document Object Model):文档对象模型,描述处理网页内容的方法和

【存储】RAID 知识之一

   作为一名小小DBA,接触的很多数据库应用,通常情况下对于OLTP类型的数据库应用属于IO bond 型 ,IO往往会成为瓶颈.后续会写一系列与数据库相关的存储的文章,正如本博客的标题所言"DBA的价值不仅仅在于维护数据库本身,而应该在数据存储方案的选择上做出最专业的判断,这是DBA最大的价值所在.--淘宝DBA 张瑞".回归正题,解决该问题方法有    1 软件方面主要是一主多从读写分离,垂直拆分,水平拆分,分区表技术,使用cluster 集群技术.    2 硬件方面主要是使用

存储基础知识

内容:存储和相关基础知识 范围:限opensystem和windows 版本:Version 0.1 build 20060904 有些新手总是在各式各样的概念里绕来绕去,弄的不亦乐乎.所以我就把我的一些理解写了下来,供您参考.我说的不局限于任何一种具体产品和厂家,也可能有些说法和某些厂家的说法不一样,但是我觉得应该算的上是本原的东西,有以不变应万变之功效,呵呵,见笑. 1.关于HBA HBA的全称为Host Bus Adapter,即主机总线适配器. a.总线适配器是个什么东西呢? 我们首先要

IBM 存储RAID硬盘离线和数据库损坏的恢复处理办法

IBM DS5020 光纤存储上一共16块FC硬盘,单盘容量600G.存储前面板10号和13号硬盘亮黄灯,存储映射到redhat上的卷挂载不上,业务崩溃. 存储恢复流程 通过IBM storage manager/frombyte.com连接到存储查看当前存储状态,存储报告逻辑卷状态失败,再查看物理磁盘状态,发现6号盘报告"警告",10号和13号盘报告"失败",通过IBM storage manager将当前存储的完整日志状态备份下来,解析备份出来的存储日志获得了关

存储-获取一维或二维条码 多条内容,

问题描述 获取一维或二维条码 多条内容, 有这样一个思路:先取得手机相机权限, 获得相机自动对焦,获取一维或二维条码 多条内容,存储内容到一个文本.这样可以 实现吗?请朋友们指点 解决方案 没什么不可以. 条码扫出来只不过是一个字符串,你可以用特定的分隔符(比如回车换行)把多次扫描结果拼起来就成了. 解决方案二: 网上有二维码的控件,你随便参考一个就行,都是封装好的,在回调方法里会给你返回扫出来的二维码信息(也就是一串字符串,多数为url),你再把这些数据存到本地,至于储存方式很多(你可以百度)

Android系统的五种数据存储形式实例(二)_Android

之前介绍了Android系统下三种数据存储形式,http://www.jb51.net/article/99468.htm.今天补充介绍另外两种,分别是内容提供者和网络存储.有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所以这里还是将这两种形式简要的说明一下.  Content Provider: Content Provider,中文名是内存提供者,Android四大组件之一,内容提供者是应用程序之间共享数据的接口,以数据库形式存入手机内存

存储那些事儿(二): 下一代Linux文件系统BTRFS简介

    BTRFS,通常念成 Butter FS,Better FS 或B-tree FS.下一代的Linux文件系统.     它基于写时拷贝(copy-on-write),支持高效的snapshot和clone.它使用b-tree作为存储的数据结构.在BTRFS项目主页上对自己是这么描述的:"一个新的针对Linux的写时复制文件系统,致力于实施高级的功能,同时关注容错.修复和管理方便性."    它有哪些高级功能呢?下面的feature来自BTRFS的项目主页:http://btr

高性能JavaScript--数据存储(简要学习笔记二)

1.JavaScript中四种基本数据存取位置:字面量,本地变量,数组元素,对象成员. 一般来说:[字面量,局部变量]运行速度>[数组,对象成员]   2.内部属性包含了一个函数被创建的作用域中对象的集合.这个集合被称为作用域链.   3.执行函数->创建执行环境->创建活动对象(即函数运行时变量对象). 所以多次调用同一个函数会导致创建多个执行环境.   4.函数执行过程 每遇到一个变量都会经历一次标识符解析过程,从哪里获取或存储数据.该过程搜索执行环境的作用域链.正是这种搜索过程影响