RAID基础
磁盘类型
类型 |
IDE Integrated Drive Electronics |
SATA Srial ATA |
SCSI Small Computer System Interface |
FC Fiber Channe |
接口 |
IDE接口,并行 |
串行 |
Scsi接口 并行 |
FC接口 |
传输率 |
133Mbs |
150Mbs |
320Mbs |
1.06G |
优缺点 |
老了,太慢 |
常用 |
性能好,占用CPU少,稳定但费用高; SAS:新一代scsi 串行,小 |
热插拔性,高速带宽,远程连接,连接设备数量大 |
RAID
由于单个普通硬盘的速度的限制和高端设备价格的限制,使得raid(Redundant Arrays of independent/inexpansive Disks)诞生由来,
RAID Level:
Level |
RAID0条带 |
RAID1镜像 |
RAID5校验 |
RAID10 |
读写性能 |
读写性能提升 |
写性能低下读性能提升 |
读写都提升 |
读写都提升 |
有无冗余 |
无冗余 |
有冗余 |
有冗余 |
有冗余 |
利用率 |
100% |
50% |
(n-1)/n |
50% |
需要的盘数 |
至少2块盘 |
至少2块盘 |
至少3块盘 |
至少4块盘 |
原理图 |
|
|
|
|
- RAID4与RAID5:两者都是基于校验算法来实现数据的性能的提升和冗余,不同的是RAID4将校验的数据存在一个磁盘上,这样磁盘读写的瓶颈将在数据校验盘上。而RAID5是将校验数据放在不同的盘上,这样会优于RAID4
- RAID10和RAID01:两者在性能上差不多,但是如果在RAID01的情况下,最下面的RIAD0中如果有一块盘损坏,那么整个上面的RAID1将不能够正常使用。所以这方面应使用RAID10,先镜像在条带存储
- RAID50: 读写都提升;有冗余;空间利用率(n-2)/n;至少6块盘。一般在使用在磁盘有很多的情况下,主要来存储非常庞大的数据集,如数据仓库和非常庞大的OLTP系统
- jbod(hdoop hdfs):基本不用。无性能提升;无冗余;空间利用率100%;;至少2块盘
软RAID配置
由于软RAID的使用需要额外的CPU来计算数据的分片,而且如果操作系统的崩溃,RAID恢复其他也是件麻烦的事,所以一般生产环境中很少使用,而是使用硬件级别的RAID
内核支持:md(multidisks)用来模拟RAID,即逻辑RAID
mdadm使用:
创建:-C
管理:--add,--remove, --fail
装配:-A
详细:-D
其他选项:-l 级别, -n 设备个数, -a <yes/no> 自动创建设备文件 –c 指定chrunk大小 –x 指定spare disk空闲盘
实例:
创建1G的raid10,需要4块512M磁盘
mdadm -C /dev/md0 -a yes --level=10 -n 4 /dev/sd[b-e]
创建1G的raid5,要求有个备盘;需要4块512M磁盘
mdadm -C /dev/md0 -a yes --level=5 -n 3 -x 1 /dev/sdb /dev/sdc /dev/sdd
查看状态:cat /proc/mdstat
查看详细的信息:mdadm -D /dev/md0
导出当前的配置信息:mdadm –detail –scan /dev/md0 >/etc/mdadm.conf
mdadm –A /dev/md0 #之后会根据配置文件直接生产md
停止RAID:mdadm -S /dev/md0
删除: rm -fr /etc/md0
硬件RAID的配置:
由于本人大三狗一枚,我只接触过学校的dell 6580,下面以dell的机型配置的信息,这里只做了参考
http://wenku.baidu.com/link?url=Pcb5bZgf0ftL2fVQaSgoRZpts6UtpkNpctET1xvuvtw-Xgsz2yGEAAODm_axr2diVmJEcBDAyGp21XKRsY2iDJkUoy86dqO8T7XKQMQSbNa
软RAID和硬RAID比较
硬件RAID在内部有独立cpu,内存,和电池。有了CPU可以自己独立计算数据校验及数据分片等操作,特别是在RAID5,6这样级别。另外有独立的内存,读的时候,RAID控制器会先预读一些数据到自己内存,从而在一定程度上加速读取;写的时候,会先将部分数据缓存到cache中,然后在定时flush到磁盘上。控制器上的电池,可以保证RAID在掉电的时候,即使在内存中"还没来得及"flush到磁盘的数据得翼保存48小时的时间。一定程度上保证数据的安全,提示了数据读写效率
软RAID需要占用操作系统的CPU,如果在CPU繁忙的时候,可能会出现I/O等待问题等
但在RAID1,RAID10级别上,软硬件RAID差别不大。
另外补充下RAID5的大概原理
摘自知乎
简单通过Raid5来进行比较。Raid 5基本原理是异或运算来实现。
XOR (0, 1) = 1
XOR (1, 0) = 1
XOR (0, 0) = 0
XOR (1, 1) = 0
硬盘1 硬盘2 硬盘3
| 101 | 010 | 011 |
XOR (101, 010, 011) = 100
过程如下:
XOR (101,010) = 111 , XOR (111, 011) = 100
校验盘P
| 101 | 010 | 011 | 100 |
| 101 | 挂了 | 011 | 100 |
还原010
XOR (101, 011, 100) = 010
当然实际过程比这个要复杂的多的多。
Raid5 写一份数据,需要下列操作,普通硬盘只要1次写操作。
控制器读取旧的数据块,
读取旧的校验块。
并和新计算出来的进行比对,如果有修改,则要改写旧块为新块(数据快和校验块)。
如果只是同等内容修改,没有用到新的块。就到此为止了。
简单的例子是,我新建一个文本文档,只有一个字符A,没有空格,空行,tab。我修改A为B,然后保存,文件大小是不变的。如果我把A改成两个字母"AB",再保存。相当于申请新的空间来保存另外一个字符B。(此例子只能用来理解,不能代表100%Raid控制器和文件系统是这样存储数据)
如果有追加的数据
则还要写入新的数据块和新的校验块。
RAID基础的更多相关文章
- 3.raid基础应用
raid分为软备份和硬备份 软备份主要用来实验 应备份用于生产环境 raid0(带区卷) 具有很高的数据传输率,没有数据的冗余 1块磁盘 raid1(镜像卷) 提供数据冗余,利用率低 2块 ...
- [转]RAID基础,RAID10与RAID01比较,RAID10与RAID5比较
原文:http://blog.itpub.net/787018/viewspace-666280/ 文档内容3部分:1.基本的RAID级别介绍2.RAID10和RAID01的比较3.RAID10和RA ...
- 服务器RAID配置全程与RAID基础知识
服务器RAID配置全程 一.RAID介绍 RAID是Redundent Array of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”.后来RAID中的字 ...
- RAID基础知识总结
1.RAID RAID:Redundant Arrays of Inexpensive(Independent)Disks,即独立磁盘冗余阵列,简称磁盘阵列.简单地说就是把多个独立的硬盘组合起来,从而 ...
- [svc]raid基础知识-冷知识
参阅:磁盘接口与RAID Dell 服务器做Raid 1,raid形象理解(饮水机模型) http://dingyichao.blog.51cto.com/442449/698762 2,raid利用 ...
- hdu1151 Air Raid 基础匈牙利
#include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> ...
- 存储专栏:一句话说清RAID2.0
今天,西瓜哥来谈谈高端存储的一股势力,RAID 2.0,最近被华为HVS搞得风生水起,神奇的让人摸不着头脑.我还是从一个高端存储的江湖说起吧. 据说很久很久以前(别扔臭鸡蛋,讲故事都是这样的…),L ...
- 根据生产场景对Linux系统进行分区
转自:http://oldboy.blog.51cto.com/2561410/629558 老鸟谈生产场景如何对linux系统进行分区? █ 前言: 我们买房子时,会考虑1室1厅,2室1厅, ...
- 马哥Linux SysAdmin学习笔记(一)
Linux入门 Linux系统管理: 磁盘管理,文件系统管理 RAID基础原理,LVM2 网络管理:TCP/IP协议,Linux网络属性配置 程序包管理:rpm,yum 进程管理:htop,glanc ...
随机推荐
- dotnet core 入门
之前一至用的dotnet 做开发,项目没有用过.netcore,现在看微软对dotnetcore的重视度越来越高,所以dotnetcore也是每一个.dotnet开发人员的一项必备技能.一个偶然的机会 ...
- css hack (ie6-ie9+)
IE6 css hack: 1. *html Selector {} /* Selector 表示 css选择器 下同 */ 2. Selector { _property: value; } /* ...
- bootstrap的学习注意点
1.bootstrop里面所有的内容都需要用一个container 容器包裹起来: 2.一屏二屏什么的,是通过id 与href实现的: 3.下拉与菜单之类的都有固定的代码: 4.需要修改相关属性的话, ...
- Hihocoder #1014 : Trie树 (字典数树统计前缀的出现次数 *【模板】 基于指针结构体实现 )
#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助, ...
- ios蓝牙开发(四)BabyBluetooth蓝牙库介绍
BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你 ...
- html5--6-44信纸设计
html5--6-44信纸设计 实例 <!doctype html> <html> <head> <meta charset="utf-8" ...
- Oracle:通过oracle sql developer工具导入excel数据
我使用的是oracle sql developer3.1版本,以前developer2.×老版本的excel导入功能有问题. excel文件内容如下: 第一步:找到要导入的表,右键-->导入数据 ...
- BDB c++例子,从源码编译到运行
第一步先下载源码,解压后 ./dist/configure --enable-cxx编译,然后make, make install --enable-cxx To build the Berkeley ...
- Spss22安装与破解教程
Spss22安装与破解教程 Spss22安装与破解教程 1.下载安装包 可以去IBM官网.人大论坛等网站下载,全部文件应包括spss22安装包(含32位及64位)和破解文件,这里提供一个64位的百度网 ...
- 【215】◀▶ IDL 文件操作说明 (黑底)
参考:I/O - General File Access Routines —— 基本文件操作函数 01 CD 修改当前的工作空间路径. 02 FILE_SEARCH 对文件名进行特定的查找. ...