大话存储学习笔记(3)

五、磁盘IOPS和传输带宽

磁盘IOPS:每秒能进行多少次IO,每次IO根据写入数据的大小,这个值也不是固定的。

如果IO每次都写入很大的一块连续的数据,则每秒所做的IO次数是比较低的;

如果磁头频繁换道,每次写入的数据还是较大的话,此时IOPS是这块硬盘的最低数值了。

如果在不频繁换道,每次写入最小的数据块,如512字节,则此时IOPS将是最高值。

传输带宽:指硬盘或设备在传输数据是数据流的速度,如果写入1000个1kb的文件需要10s,那么传输带宽只能达到每秒1MB,而写入一个10MB的文件用了0.1s,此时传输带宽是100MB/s。所以,即使同一块硬盘在写入不同大小的数据时,表现出来的带宽也是不同的。

具有高规格的硬盘在传输大块连续数据时具有优势,而具有IOPS的硬盘在传输小块不连续的数据时具有优势。

六、七种RAID

1.RAID0

RAID0即Data Stripping数据分条技术,RAID0只需要两块硬盘,成本低,但是没有提供冗余和错误修复能力。

横分竖割思想:

图1.1所示是4块普通硬盘,其上布满了扇区。

图1.2所示引入分割思想后的硬盘。许多文件系统或者卷管理软件都使用块而不是扇区作为基本存储单元,所以图1.2中采用4个扇区组成的块作为基本单元。

不同磁盘的相同偏移出的块组成Stripe,也就是条带。

   

                     图1.1                                                图1.2

1.RAID1

RAID1称为磁盘镜像,原理是把一块磁盘数据镜像到另一块磁盘上,也就是数据备份。

2.RAID2

RAID2带有海明码校验,数据条带化分布在所有磁盘上,使用海明码技术来提供错误检查和恢复,技术实施复杂,在商业环境中很少使用。由一个数据不同的位运算得到的海明校验码可以保存另一组磁盘上。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。海明码可以判断修复一位错误的数据,并且校验盘的数量较多,4块数据盘需要3块校验盘。但是随着数据盘数量的增多,校验盘的比例会显著减小。

RAID2最适合产生连续IO,大块IO的情况。视频流服务等应用适合RAID2。

3.RAID3

RAID3和RAID2类似,两者都是将数据条带分布于不同的硬盘上,条块单位为位或者字节。RAID3采用奇偶校验码,这种码只能查错,不能纠错。

不同于RAID 2,RAID 3使用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据。 如果奇偶盘失效,则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。

4.RAID4

RAID4在RAID3基础上增加了条带深度。和RAID3,唯一不同的是,在数据分割上RAID3对数据的访问时按位进行的,RAID4是以数据块为单位。

一块数据块是一块完整的数据集合,比如一个文件就是一个典型的数据块。当然,对于硬盘的读取,一块数据块不是一个文件,而是由操作系统决定的,这就是簇(Cluser)

控制器的一个IO过来,如果这个IO小于条带深度,那么这次IO就被完全“禁锢”在一个磁盘上,写入一个磁盘的Segment,这次IO只用了一个磁盘。而其他IO也可以和这个IO同时进行,但是前提条件是,其他IO的目标不是这个IO要写入或读取的磁盘。所以实现IO并发还需要增大数据的随机分布性,而不要连续一个磁盘上分布。

5.RAID5

RAID5是分布式奇偶校验,实现了多IO并发。奇偶校验码分布于所有的磁盘上。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。

RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并发操作(原因是奇偶校验分布式)。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

RAID5和RAID0通过条带来提升性能,但是它又克服了RAID0的鲁莽急躁,对数据用校验的方式进行保护。但是RAID5连续读性能不如RAID3。由于RAID3的条带深度很小,每次IO都能能牵动所有的磁盘为它服务,对于大块连续的数据的读写速度快。但是RAID5的条带深度比较大,每次IO一般使用一块数据盘。而通用的RAID5系统一般被设计为数据块都是先放满一个Segment,再去下一个Segment存放。RAID5在随机读方面,是首屈一指的,这要归功于它的多IO并发的实现,原因是奇偶校验采用分布式,这里指随机IO。RAID3和RAID4在IOSIZE值大的时候具有高性能,RAID5在随机IOPS大的时候具有高性能。

6.RAID6

RAID6采用双奇偶校验方法。

附:

条带深度:指的是条带的大小,也叫条带大小。有时也被叫做block size, chunk size, stripe length 或者granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大),其数值是2 的次方,即2KB,4KB,8KB,16KB这样。

条带大小对性能的影响比条带宽度难以量化的多。

  • 减小条带大小: 由于条带大小减小了,则文件被分成了更多个,更小的数据块。这些数据块会被分散到更多的硬盘上存储,因此提高了传输的性能,但是由于要多次寻找不同的数据块,磁盘定位的性能就下降了。

  • 增加条带大小: 与减小条带大小相反,会降低传输性能,提高定位性能。

[email protected] liupan

[email protected]

时间: 2024-10-03 15:53:20

大话存储学习笔记(3)的相关文章

大话存储学习笔记(1)

一.存储历史 二.计算机IO 1.什么叫IO I表示in,对于CPU来说,从内存中取数据:O表示out,CPU运算完后将数据发送至内存 同理,对于磁盘来说,将数据写入磁盘表示in,将输入从磁盘读出来叫out 2.总线 PCI总线:一种南桥与外设连接的总线技术 PCI总线特点:中断共享,即不同设备使用同一中断而不发生冲突.硬件上采用电平触发:软件上采用中断链,即,假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A:系统发现板卡B也用了中断7,这是

大话存储学习笔记(4)

七.逻辑卷管理 逻辑卷管理(简称LVM),是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层. 通过LVM管理可以轻松管理磁盘分区,如:若干个磁盘分区连接为一整块的卷组,形成一个存储池.管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统.管理员通过LVM可以方便调整卷组大小,并且可以按照磁盘存储的方式进行命名.管理和分配. LVM的配置信息记录在叫做VGDA(Volume Group Descriptor Area)的区域,LVM就是通过读

大话存储学习笔记(5)

九.磁盘阵列 1.关于LUN LUN是SCSI ID的更细一级的地址号,每个SCSI ID下有更多的LUN ID.对大型磁盘阵列来说,可以生产几百几千个虚拟磁盘,为每个磁盘分配一个SCSI ID是远远不够的.因为每个SCSI总线最多允许16个设备接入(目前32位SCSI标准可以接入32个).LUN是一个次级寻址ID.磁盘阵列可以在一个SCSI ID下虚拟多个LUN地址,每个LUN对应一个虚拟磁盘.硬件层次生成的虚拟磁盘,称为LUN:软件生成的虚拟磁盘,称为卷. 2.双控制器的磁盘阵列 如果盘阵内

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

大话设计模式学习笔记

大话设计模式笔记 1. 使用简单工厂模式(使用反射可以解决避免分支判断问题) 注重创建不同的对象 2. 使用策略模式处理 不同的时间应用不同的业务规则 3. 单一原则:一个类仅有一个变化的原因  发现职责并把职责分离 4. 开放-封闭原则:软件实体可以扩展但不能修改  对扩展开放 对更改封闭 开发人员对程序中呈频繁变化的那部分做出抽象 5. 依赖倒转原则: A.高层模块不应依赖底层模块.两者都应该依赖抽象. B.抽象不应该依赖细节,细节应该依赖于抽象.即针对接口编程, 不应针对实现编程. 里氏替

[大话设计模式]学习笔记——简单工厂模式

序 说好的每天进步一点点的,结果工作太忙,一直在加班,都没有学习新东西.我还要进BAT呢. 坚持每天学习新东西. 写代码时,意识到在代码结构上还是有点欠缺.赶紧补上. 纪录对设计模式的认识.小菜变大鸟.进攻BAT. 应用场景: 编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果. 这本书使用C#写的.已有博主用JAVA写出来,参考:http://blog.csdn.net/ghsau/article/details/8163418 常见的做法: 写一个方法封装计算机的功能,我们只需传参

js数据类型,及内存存储学习笔记

一.Javascript的数据类型 (1)基本类型: undefined :指的是,使用var声明变量但未对其加以初始化, var meddling,对未初始化的变量执行typeof操作符会返回undefined,而对未声明的变量执行typeof操作符同样也会返回undefined null  :typeof操作符会返回object,只要保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值. Boolean:该类型有俩个字面值:true ,false 大小写区分 Number :

《大话设计模式学习笔记》2:策略模式

商场促销示例: 1.策略类: public abstract class CashSuper { public abstract double AcceptCash(double money); } 2.具体策略类(以打折类为例): public class CashRebate:CashSuper { private double moneyRebate; public CashRebate(double moneyRebate) { this.moneyRebate = moneyRebat

【大话存储】学习笔记(7,8章),FC协议

Fibre Channnel 我们之前引入了SAN的概念,SAN首先是个网络,而不是存储设备.这个网络是专门来给主机连接存储设备用的. 我们知道按照SCSI总线16个节点的限制,不可能接入很多的磁盘,要扩大SAN的规模,只使用SCSI总线是不行的,所以必须找到一种可寻址容量大.稳定性强.速度块.传输距离远的网络结构.FC网络就应运而生. FC网络 Fibre Channnel也就是网状通道,FC协议从1988年出现,最开始作为高速骨干网技术. 任何互联系统都逃不过OSI模型,所以我们可以用OSI