辛星浅析raid
我们来分析一下影响计算机性能的主要组件,主要就是CPU、主板的总线IO、内存IO、硬盘IO、网卡IO等等,并且如今CPU的性能已经非常好了,可是计算机的总体的IO性能却较低,严重影响了计算机的性能,如今的计算机的总线IO、内存IO的速度都能够达到5G/s以上。可是磁盘IO往往较低。
我们来分析一下常见的几种吧,对于SATA硬盘来说,速度小于150MB/s。对于SCSI硬盘来说。速度小于200MB/s,对于SAS硬盘来说,速度大约在200MB/s左右,而固态硬盘,也就是SSD,速度大约在500MB/s左右。我们平时自己使用的硬盘大多数是SATA接口的机械硬盘,而SATA3接口还是比較快的。能够达到6GB/s,而SCSI SAS一般用于server,通常转速非常快,能够达到每秒一两万转,所谓SAS就是串行SCSI。而SSD就是固态硬盘啦。
硬盘式绝大多数计算机的性能瓶颈,而IOPS也起到了非常大的作用,所谓IOPS。它是Input/Output Operation Per Second的缩写,也就是每秒进行读写(IO)操作的次数,多用于数据库等场合,他是衡量随机訪问的性能的一个重要參数。并且我们发现现代磁盘的缺陷:IO性能弱,稳定性差。
所谓RAID。也就是Redundant Array of Independent Disks,也就是便宜磁盘冗余阵列,它通过多磁盘并行执行。来提供计算机的存储IO性能。RAID有非常多种类。称之为RAID的级别,现代RAID有7类。经常使用的则有4类。也就是RAID0、RAID1、RAID5、RAID6.对于冗余性。能够类比备份。多块磁盘组成了一个RAID,可是在OS看来仅仅有一块RAID硬盘,而RAID5同意并行中的多块硬盘,能够有一块出现问题,而不丢失数据。
对于RAID0。它最少须要两块硬盘,它将数据分别读写到多块硬盘。来提升读写性能,有几块硬盘。就能够吧数据分为几份来写,它的空间利用率是全部硬盘空间之和。它的性能也是全部硬盘速度之和,它没有冗余能力。它的长处就是能够并行的读和谐。并且空间利用率高,性能也最好。它的缺点就是一旦RAID中的某块硬盘出现问题,则数据将会全部丢失。
对于RAID1,它须要偶数块硬盘,在读数据时。同一时候从多块硬盘读取数据来提高读取性能。它与RAID0的读速度一样,在写数据时它须要将同一数据拷贝到多块磁盘,从而提供冗余性。
它应用于数据安全性以及完整性要求比較高的情景,并且读远多于写。
它的空间利用率就是组成RAID1中最小的那块磁盘,它的读性能为全部硬盘速度之和。可是写性能比读性能要差一些。
它的冗余能力就是。仅仅要有一块硬盘没有损坏。那么数据就是完整的。对于RAID1来说,它的读非常快,冗余性也非常高。可是缺点就是有几块硬盘就须要有几份同样的数据,写数据非常慢。
对于RAID5来说,它最少使用3块硬盘,在读数据时。同RAID0,分布式的往磁盘上写数据,在读数据时,对数据进行奇偶校验。将校验信息同一时候保存在磁盘上。而校验信息在数据恢复时使用。当中RAID0性能最高。而RAID1冗余性最高。可是使用场景都不多。而实际的生产环境中多使用RAID5和RAID6.它的空间利用率是1-1/硬盘数,它的读性能非常接近RAID0。写性能比RAID0弱,它的冗余能力就是假设有一块磁盘损坏,不会丢失数据。
对于RAID6来说,它最少使用4块硬盘,它和RAID5一样。仅仅是多一块硬盘保存校验信息的副本,读数据时,同RAID5,分布式的往磁盘上写数据,在写数据时。对数据进行奇偶校验,将校验信息同一时候保存在磁盘上,可是会再额外保存一份校验信息。它的空间利用率是1-2/硬盘数。它的读性能接近RAID5,可是写性能比RAID5弱,它的冗余能力就是假设有一块 硬盘损坏,不会丢失数据。
对于RAID的实现。能够分为软件实现 和硬件实现。
假设是软件实现,能够通过系统功能或者软件来实现。它没有独立的硬件和接口,它会占用一定的系统资源。比方cpu、内存、硬盘接口速度,受操作系统的稳定性影响。假设是硬件实现。能够通过购买独立的RAID硬件卡来实现RAID。有些主板集成了RAID硬件,硬件RAID不须要占用其它的硬件资源,并且稳定性和速度都比软件RAID要强。
辛星浅析raid的更多相关文章
- 辛星浅析跨域传输的CORS解决方式
首先我们有一个概念.那就是"同源准则",也就是same-origin policy,它要求一个站点(协议+主机+port号)来确定的脚本.XMLHttpRequest和Webso ...
- 辛星浅析Linux中的postfix
Postfix是眼下Linux下主流的邮件server,也就是MTA,主要用来实现SMTP协议,它能够兼容sendmail.而postfix也是为了改进sendmail而制作产生的. 通常来说.pos ...
- 辛星浅析html5中的role属性
我们使用role属性告诉辅助设备.这个元素所扮演的角色.比方点击的按钮,我们通常就使用role="button",会让这个元素可点击. 可是它很多其它的是用来增强语义性,当现有的h ...
- 辛星浅析一次ajax的实现过程
说到ajax,那绝对是一个老生常谈的话题,近些年ajax技术的使用颇为盛行. 以下我们就以jQuery为例来从一个真实的项目中看一下ajax的实例. 首先是前端页面,这个页面我们使用的是bootstr ...
- 辛星浅析yaf框架中的类的自己主动载入问题
因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...
- 2014年辛星完全解读Javascript第七节 数组和对象
由于Javascript是脚本语言,因此,使用起来非常方便,数组的使用也是比较简单的,下面我们就主要介绍一下Javascript中数组的介绍,以及上一节中没有完成的对象的介绍. *********** ...
- 2014年辛星完全解读Javascript第八节 json
json是JavaScript Object Notation的简写,它是一种轻量级的数据交换格式,而且表达上很容易靠字面去理解.json是用于存储和传输数据的格式,通常用于向服务器端传递数据. ** ...
- 2014年辛星完全解读Javascript第六节 对象
随着面向对象的普及,现在很多语言都在支持面向对象,Javascript也不例外,所谓对象,就是拥有属性和方法的数据.这里的属性其实就是变量,这里的方法,其实就是函数.但是Javascript的面向对象 ...
- 2014年辛星完全解读Javascript第五节 break和continue与错误处理
先说一下break和continue的主要用法吧,break用于跳出循环,continue用于跳过该循环中的一个迭代.简单的说,就是break直接从该语句跳出,但是continue不会跳出该循环语句, ...
随机推荐
- 玩App怎么赚钱(二)
紧接上篇文章,谈到App前赚钱的一些门道,其实还有很多了,需要你自己去挖掘App到底有什么价值.有价值的东西就能形成交易,而交易的过程中是用金钱作为流通手段,所以说赚钱没那么高大上,它的本质就是价值的 ...
- rocketmq源码分析3-consumer消息获取
使用rocketmq的大体消息发送过程如下: 在前面已经分析过MQ的broker接收生产者客户端发过来的消息的过程,此文主要讲述订阅者获取消息的过程,或者说broker是怎样将消息传递给消费者客户端的 ...
- day03_05 Python程序文件执行和与其他编程语言对比
python在windows操作系统上是没有的,但是在linux上默认就有python 执行python程序的方式有两种: 1.交互器,缺点 程序不能永久保存,主要用于简单的语法测试 2.文件执行 对 ...
- Linux中的more命令
ore命令,功能类似 cat , cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,而且还有搜寻 ...
- 使用xmake检测编译器特性支持
如果我们要写跨平台的c/c++代码,很多时候需要处理由于不同编译器对c/c++各个标准支持力度不同导致的兼容性问题,一般通常的解决办法是:自己在代码中通过宏去判断各个编译器的版本.内置宏.标准库宏._ ...
- 面向对象编程(二)封装--构造方法,this关键字,static关键字,方法重载
面向对象三大特点:封装.继承.多态 封装概念 ① 将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ② 信息隐藏,隐藏对象的实现细节,不让 ...
- Linux Shell系列教程之(一)Shell简介
本文是Linux Shell系列教程的第(一)篇,更多shell教程请看:Linux Shell系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识. S ...
- iOS---->CADisplayLink、比NSTimer更精确的定时器
什么是CADisplayLink CADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器.我们在应用中创建一个新的 CADisplayLink 对象,把它添加到一个r ...
- iOS开发笔记--UILabel的相关属性设置
在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...
- hihoCoder #1072 辅导
题意 $\DeclareMathOperator{\lcm}{lcm}$选 $k$ ($k\le 10$) 个 $1$ 到 $n$($n\le 10^9$)之间的整数(可以相同),使得 $\lcm(a ...