转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/25/3099464.html

  硬盘类型     速度
  SATA  <150M/s
  SCSI <200M/s
  SAS 200M/s左右
  SSD固态硬盘   500M/s左右

磁盘的缺陷就是:I/O性能极差,稳定性极差

RAID(Redundant Array of Independent Disks)

速度:读写速度的提升

磁盘使用率:多磁盘的空间使用率

冗余性: 能够支持几块磁盘损坏而不丢失数据

RAID一共有7个级别,分别是RAID0~RAID6 ,但常用的RAID级别主要是以下四种:

RAID0:提高读写性能

RAID1:提高读写性能、冗余性

RAID5:提高读写性能、冗余性(允许1块硬盘发生故障)

RAID6:提高读写性能、冗余性(运行2块硬盘发生故障)

1.RAID0 至少需要2块硬盘

①空间利用率:所有硬盘空间之和

②性能:所有硬盘读写速度之和

③冗余能力:无

读写数据的时候是将数据分开读写到多块硬盘上,所以其读写速度是最快的,但是因为多块硬盘上保存了数据的一部分,所以当一块硬盘发生损坏时,其整个RAID的数据也就损坏了

2.RAID1 至少需要2块硬盘

①空间利用率:所有磁盘中最小的那块(其实在使用RAID时,最好每块硬盘的大小及型号都一样)

②性能:读性能是所有硬盘之和,写性能有所减弱

③冗余能力:只要有一块硬盘正常,数据就正常

同于RAID0了,RAID1在写数据时会将数据复制到多块硬盘上,即每块硬盘都会保存该数据的一个备份,在读数据时,以提高冗余性。读的时候同时从多块硬盘上读取数据,以提高读的性能

3.RAID5 少需要3块硬盘

①空间利用率:1 - 1/n

②性能:读性能接近RAID0,写性能相比RAID0要弱一些

③冗余能力:可以接受1块硬盘的损坏

RAID5与RAID0类似,读写数据的时候会将数据分布的读写到所有硬盘上。但是在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,所以即使我们其中一块硬盘发生了损坏,RAID5也能通过其他硬盘以及校验信息对数据进行恢复使用。但是如果2块或者2块以上的硬盘发生了损坏,整个数据也就损坏了。

4.RAID6 至少需要4块硬盘

RAID6与RAID5相类似,读写数据的时候会将数据分布的读写到所有硬盘上。在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,但是RAID6会比RAID5多保存一份校验信息,所以RAID6的冗余性比RAID5就有所提升,可以允许2块硬盘发生损坏。

①空间利用率:1 - 2/n

②性能:读性能接近RAID5,写性能相比RAID5还要弱一些

③冗余能力:可以接受2块硬盘的损坏

RAID级别           速度   冗余性     磁盘利用率  
  RAID 0       读写速度均有提升   0   所有磁盘之和
  RAID 1     读速度有提示   n   一个磁盘大小
  RAID 5     读写速度均有提升       1   1-1/n
  RAID 6     读写速度均有提升   2   1-2/n

Linux操作系统的软件RAID是通过mdadm 这个程序来实现的,使用Linux下的 mdadm 这个软件需要注意的几点:

①mdadm 支持的RAID级别有:RAID0、RAID1、RAID4、RAID5以及RAID6。我们看到对于常用的四种RAID级别,mdadm都能够支持

②mdadm 可以基于多块硬盘、分区以及逻辑卷来创建RAID。对于硬件实现RAID来说,就只能是基于多块硬盘了

③创建好的软件RAID对应于 /dev/mdn,n表示的是第几个RAID,如第一个创建的RAID对应 /dev/md0, 第二个创建的RAID就对应 /dev/md1,当然这个名字是可以自己随便取的

④RAID的信息保存在 /proc/mdstat 文件中,或者通过 mdadm 命令来查看

mdadm 这个命令来创建软件RAID的语法格式:

创建RAID 0:  mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev sdc
创建RAID 1:    mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb /dev/sdc

创建RAID 5:    mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd

创建RAID 6:    mdadm -C /dev/md3 -a yes -l 6 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

① -C  创建一个新的RAID  我们这里就是创建第一个RAID,名字叫做 /dev/md0

② -a  自动创建对应的设备  yes表示会自动在/dev下创建该RAID设备

③ -l  指定要创建的RAID级别  0我们这里创建RAID 0

 -n  指定硬盘数量  2表示使用2块硬盘来创建这个RAID0,分别是 /dev/sdb 和 /dev/sdc

我们也可以使用 -x 参数来指定一个备份磁盘,备份磁盘一般不使用,当出现一个磁盘故障的时候,指定的备份磁盘可以自动上线工作:

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x /dev/sdb /dev/sdc /dev/sdd /dev/sde

mdadm -D 这个命令来查看刚创建的RAID的详细信息
或者来查看 /proc/mdstat 这个文件来查看RAID的信息 RAID的信息保存到 /etc/mdadm.conf 这个文件里,这样在下次操作系统重新启动的时候,系统就会自动加载这个文件来启用我们的RAID
mdadm -D --scan > /etc/mdadm.conf

使用RAID 0这个设备来对其进行文件系统格式化和挂载使用
mkfs.ext4 /dev/md0 
mount /dev/md0 /mnt

通过 mdadm -S 这命令来关闭我们的 RAID ,当然在关闭RAID之前,我们需要先卸载掉RAID
umount /mnt
mdadm -S /dev/md0  通过 mdadm --zero-superblock 这个命令即可,但是我们首先必须要停止我们的RAID,即使用 mdadm -S 命令。例如我要将刚才创建的RAID 0 的两块硬盘完全移除,就可以使用如下命令:
mdadm -S /dev/md0
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdc

试验:

创建一个 RAID 5
mdadm -C /dev/md0 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd
cat /proc/mdstat
mdadm 命令来模拟RAID故障,通过 mdadm /dev/md0 -f /dev/sdd 命令

mdadm -D /dev/md0查看信息
mdadm /dev/md0 -r /dev/sdd 来移除这块硬盘

换上新的硬盘,使用 mdadm /dev/md0 -a /dev/sde 这个命令

Linux -RAID的更多相关文章

  1. 【原】Linux Raid 实验

    本文参照以下两个链接,将实验重做了一遍,目的就是加深印象及提升实操能力 参照链接:http://www.opsers.org/base/learning-linux-the-day-that-the- ...

  2. 第8天【文件系统挂载、ext文件系统及read命令、Linux RAID、lvm应用】

    文件系统挂载与管理工具(01)_recv 文件系统管理: 将额外文件系统与根文件系统某现存的目录建立关联关系,进而使得此目录作为其他文件访问入口的行成为挂载: 解除此关联关系的过程 吧设备关联挂载点: ...

  3. linux raid技术

    一.概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意.是为了提高文件在磁盘上的读写速度而研究出来的. ...

  4. Linux RAID 磁盘管理

    Linux RAID 磁盘管理 RAID工作模式介绍:https://www.cnblogs.com/xiangsikai/p/8441440.html 本章主要讲解 Linux下 RAID5 与 R ...

  5. Linux raid信息 查看

    Linux下查看软.硬raid信息的方法. 软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装 ...

  6. Linux RAID卡优化

    200 ? "200px" : this.width)!important;} --> 介绍 我们的生产服务器经常会做raid存储,但是单单做了raid就能保证性能高效和数据 ...

  7. Linux - RAID和LVM

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一个技术(软件或 ...

  8. Linux RAID简介

    现代磁盘的缺陷:IO性能极弱,稳定性极差 RAID廉价磁盘冗余阵列:通过多磁盘并行运行来提高计算机的IO性能,在创建RAID时要求硬盘大小.品牌.型号一样 RAID可分为多种,称之为RAID级别,现代 ...

  9. Linux RAID磁盘阵列

    RAID磁盘阵列 什么是RAID RAID是磁盘阵列的英文缩写,多块磁盘组成了一个组合,一起完成存储任务,就是磁盘阵列. RAID几种常用的类别(组合) RAID0:条带卷:最低磁盘个数2+,空间利用 ...

随机推荐

  1. linux常用命令:4文件压缩和解压命令

    文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...

  2. Could not launch "app_name"

    真机测试 不报错 编译通过后 Xcode总出这个错 process launch faild:NotFound-------解决办法 :重启设备

  3. OpenFlow Switch学习笔记(四)——Matching

    这次我们着重详述来自于网络中的数据包在OpenFlow Switch中与Flow Entries的具体匹配过程,以及当出现Table Miss时的处理方式,下面就将从这两方面说起. 1.Matchin ...

  4. 完美解决IE6不支持position:fixed的bug

    示例代码: <!DOCTYPE html><html><head><meta http-equiv="Content-Type" cont ...

  5. tablet 的使用

    之前一直用jbrowse  发现有些信息展示的不准确,如浏览一个bam文件的比对情况.在某一位点,深度为1000,但是浏览器显示的小于1000,并且read也经常会缺少.所以果断放弃jbrowse,用 ...

  6. hdu 4248 A Famous Stone Collector

    首先发现一个很头痛的问题,下面是2个求排列组合的代码 memset(C,,sizeof(C)); ;i<;i++) { C[i][]=; ;j<=;j++) C[i][j]=(C[i-][ ...

  7. iOS学习笔记---c语言第十天

    动态内存分配 一.存储区划分 从低到高(内存地址小----内存地址大)  :  代码区---常量区---静态区---堆区---栈区 栈内存 //凡是在函数体内定义的变量 都存储在栈区(包括形参). ; ...

  8. Ubuntu下输入su - [root]后提示“su:认证失败”

    Ubuntu下,进行用户到管理员切换时,使用命令su - 时,提示输入的是root密码,而在Ubuntu下root的密码起始是随机生成的(后续可由用户自己设置),且ubuntu下只能调用root,不能 ...

  9. 在WAS 中建立db2 dataSource

    1: 安全性->JAAS配置->J2C认证数据: 新建-> 名称(随意起) 数据库用户名 密码.数据库密码 2:应用程序服务器?server1?Web容器?会话管理?分布式环境设置 ...

  10. 382. Linked List Random Node

    Given a singly linked list, return a random node's value from the linked list. Each node must have t ...