RAID

=============================================================================

概述:

RAID(Redundant Array of Independent Disk,RAID)独立冗余磁盘阵列,技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。

=============================================================================

RAID的实现方式

★外接式磁盘阵列:

  • 通过扩展提供适配能力;

★内接式RAID:

  • 主板集成RAID控制器

★Software RAID

  • 软件方式实现RAID功能

硬RAID技术:

  • 基于硬件raid解决方案比基于软件raid技术在使用性能和服务性能上会更胜一筹,具体表现在检测和修复多位错误的能力,错误磁盘自动检测和阵列重建等方面,从安全性能考虑,基于硬件的raid解决方案也是更安全的,因此,在实际的生产场景工作中,基于硬件的raid解决方案应该是我们的首选,互联网公司常用的生产dell服务器,默认就会支持raid0,1。如果raid5,10就需要买raid卡(或者个别配置自带有,购买前,看参数)

软RAID技术:

  • 在Linux下安装系统的过程中或者安装系统后通过自带的软件就能实现raid功能,使用软raid可省去购买硬件raid控制器和附件就能极大地增强磁盘的IO性能和可靠性,由于是用软件实现的raid功能,所以它配置灵活,管理方便,同时使用软件raid,还可以将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的

如何操作实现RAID

★在安装操作系统之前通过BIOS进行设置

  • 此种方试主要目的在于将操作系统安装在RAID之上

★在安装操作系统之后通过BIOS或软件进行设置

  • 此种方式主要目的在于将操作系统和其他专用分区(如数据盘)独立开来

为什么选用RAID

★原因

  • 磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同办公,大大提高了读写速度,同时把磁盘系统的可靠性提高到接近无措的境界,使其可靠性极高。

★用raid最直接的好处是:

  • 提高数据安全性 ;

  • 提升数据读写性能 ;

  • 提供更大的单一逻辑磁盘数据容量存储

RAID级别

 1.简介

★level

  • RAID-0:0级别,条带卷,strip;

  • RAID-1:1级别,镜像卷,mirror

  • RAID-2

  • ...

  • RAID-5

  • RAID-6

  • RAID-10

  • RAID-01

 1.RAID-0 (又称为Stripe或Striping--分条)

★认识:

  • 即Data Stripping数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。

RAID 0的工作方式:

  • 如下图所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。

  • 从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。

RAID 0的特点

  • 在读写的时候可以实现并发,所以相对其读写性能最好,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快。因为没有冗余,一个硬盘坏掉全部数据丢失。至少两块硬盘才能组成Raid0阵列。

  • 读写性能提升;

  • 可用空间:N*min(S1,S2...)

  • 无容错能力;

  • 最少磁盘数:2,2+

生产应用场景

RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。

  • 负载均衡集群下面的多个相同RS节点服务器

  • 分布式文件存储下面的主节点或CHUNK server;

  • MySQL主从复制的多个slave服务器;

  • 对性能要求很高,对冗余要求很低的相关业务

 2.RAID-1

RAID-1 的工作方式:

  • 如图所示:当读取数据时,系统先从RAID1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回 的数据损失。

附图:

RAID-1 的特点

  • 由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。 Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

  • 读性能提升,写性能略有下降;

  • 可用空间:1*min(S1,S2...)

  • 磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。

  • 有冗余能力;

  • 最少磁盘数:2

 3.RAID-4

  • 多块数据盘异或运算值,存于专用校验盘。单块盘做集中校验盘(有性能瓶颈)。支持多接一块盘,做备用盘(热备)。

 4.RAID-5

RAID-5 的工作方式:

和RAID-4 工作原理相同,只不过是多个磁盘轮流做校验盘

  • RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID 5为例,其数据存储方式为,图中,Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

附图:

RAID-5 的特点

  • 读、写性能提升;

  • 可用空间:(N-1)*min(S1,S2,...);

  • 有容错能力:允许最多1块磁盘损坏;

  • 最少磁盘数:3, 3+

 5.RAID-10

认识

  • Raid10(Raid1+Raid0)是现在比较常用的一种磁盘阵列级别,它的容错好,读写数据效率较高,但经费相对也较高。

RAID-10 的工作方式:

  • 如下图所示,把磁盘两两拆成一组,做RAID-1,然后把RAID-1组合成 RAID-0。数据存储时,首先在 RAID-0 级别,将数据拆解成两部分,然后分配到两组 RAID-1的磁盘中,各 RAID-1 再将各自存储的那部分数据,分别存储在下面的两块磁盘中。

附图:

RAID-10 的特点

  • 读、写性能提升;

  • 可用空间:N*min(S1,S2,...)/2;

  • 有容错能力:每组镜像最多只能坏一块;

  • 最少磁盘数:4, 4+

 6.其他方式

RAID-7:

  • 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

JBOD:Just a Bunch Of Disks

  • 功能:将多块磁盘的空间合并一个大的连续空间使用;

  • 可用空间:sum(S1,S2,...)

CentOS 6 上的软件RAID的实现

★主要用到的命令:mdadm

mdadm 的作用:

  • 为软RAID提供管理界面;

  • 为空余磁盘添加冗余;

  • 结合内核中的md(multi devices);

  • RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等等

mdadm 模式化的工具

◆命令的语法格式:

  • mdadm[mode] <raiddevice> [options] <component-devices>

◆支持的RAID级别:

  • LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

◆模式:

  • 创建:-C;

  • 装配: -A;

  • 监控: -F;

  • 管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>:任意块设备

-C:创建模式

  • -n #:使用#个块设备来创建此RAID;

  • -l #:指明要创建的RAID的级别;

  • -a {yes|no}:自动创建目标RAID设备的设备文件;

  • -c CHUNK_SIZE:指明块大小;

  • -x #:指明空闲盘的个数;

-D:显示raid的详细信息;

  • mdadm -D /dev/md#

管理模式:

  • -f:标记指定磁盘为损坏;

  • -a:添加磁盘;

  • -r:移除磁盘

观察md的状态:

  • cat /proc/mdstat

停止md设备:

  • mdadm-S /dev/md#

试验步骤如下:

1.fdisk t fd(分区类型)2.创建raid设备     mdadm -C /dev/md0 -a yes -l 5  -n 4 -x1 /dev/sd{b,c,d,e,f}1    mdadm -D /dev/md0 显示详细信息     cat /proc/mdstat  查看md设备3.mkfs.ext4 /dev/md0  格式化4.vim /etc/fstab  写到文件中,开机自动挂载    UUID="b92ddd51-c555-4948-b1d5-8563b697a2f1" /mnt/raid ext4 defaults 0 0                5.mdadm  -Ds /dev/md0 > /etc/mdadm.conf 生成配置文件    mdadm -S /dev/md0 停止raid    mdadm -A /dev/md0 启动raid6.测试    mdadm /dev/md0 -f /dev/sdf1 模拟损坏    mdadm /dev/md0 -r /dev/sdf1 删除成员    mdadm /dev/md0 -a /dev/sdf1 增加    mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成员7.删除raid    umount /mnt/raid    mdadm -S /dev/md0 停止raid    rm -f /etc/mdadm.conf    vi /etc/fstab    fdisk /dev/sda    mdadm --zero-superblock /dev/sdd1

watch命令

★watch 命令:

  • watch -n# 'COMMAND'

  • -n #:间隔刷新,单位是秒

示例:

  • watch -n1 'ifconfig'

dd命令

★dd 命令

作用:

语法:

  • dd if=/PATH/FROM/SRC of=/PATH/TO/DEST(if为源文件,of为目标文件)

  • bs=#:block size, 复制单元大小

  • count=#:复制多少个bs

用法:

1)磁盘拷贝:

  • dd if=/dev/sda of=/dev/sdb

2)备份MBR:

  • dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

3)破坏MBR中的bootloader

  • dd if=/dev/zero of=/dev/sda bs=256 count=1

4)有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?

  • #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc

其他用法:

1)拷贝内存资料到硬盘

  • dd if=/dev/mem of=/root/mem.bin bs=1024

  • 将内存里的数据拷贝到root目录下的mem.bin文件

2)从光盘拷贝iso镜像

  • dd if=/dev/cdrom of=/root/cd.iso

  • 拷贝光盘数据到root文件夹下,并保存为cd.iso文件

3)销毁磁盘数据

  • dd if=/dev/urandom of=/dev/sda1

  • 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。

4)测试硬盘读写速度

  • dd if=/root/1Gb.file bs=64k | dd of=/dev/null

  • dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

  • 通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度

5)修复硬盘

  • dd if=/dev/sda of=/dev/sda

  • 当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

两个特殊设备

★/dev/null:数据黑洞

★/dev/zero:吐零机

转载于:https://blog.51cto.com/1992tao/1844922

6.RAID(廉价冗余磁盘阵列)相关推荐

  1. RAID 廉价冗余磁盘阵列

               RAID raid 是廉价冗余磁盘阵列,可以基于块状设备存储,做数据的备份,可以做为外围设备(外部存储)独立存在.它根据原理的不同分为不同的等级.RAID的磁盘类型为fd < ...

  2. Raid是廉价冗余磁盘阵列的简称

    Raid是廉价冗余磁盘阵列的简称. 主要从容量.性能.冗余.应用场景四个方面介绍 Raid 0 (以四块盘为例) 容量:是四块盘加在一起的容量. 性能:读取性能理论上是单个磁盘的4倍,磁盘越多倍数越小 ...

  3. 文件管理 廉价冗余磁盘阵列

    目录 随着磁盘驱动器变得越来越小和廉价,在计算机系统中连接多个磁盘在经济上是可行的.如果计算机系统中的多个磁盘能够并行操作,可以提高数据读写的速率.此外由于冗余信息可以存储在多个磁盘上,这种组织结构潜 ...

  4. RAID——独立冗余磁盘阵列

    RAID 磁盘冗余阵列 本章将深入讲解RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)技术方案的特性,并通过实际部署RAID 10.RAID 5+ ...

  5. RAID 独立冗余磁盘阵列详解(RAID 0、RAID 1、RAID 5、RAID 10)

    目录 什么是RAID RAID 0 RAID 1 RAID 5 RAID 10 Linux系统中部署磁盘阵列 mdadm命令 损坏磁盘阵列及修复 磁盘阵列+备份盘 什么是RAID RAID(Redun ...

  6. RAID(廉价冗余磁盘阵列 )的介绍及各级别对比

    一:名词解释 磁盘阵列(Redundant Arrays of Independent Drives,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. 磁盘阵列是由很多价格 ...

  7. 廉价冗余磁盘阵列(RAID)介绍 各级RAID的比较

  8. 5种raid冗余磁盘阵列

    1 RAID?作用? 1.1 RAID RAID就是冗余磁盘阵列,通常称作「磁盘阵列」的RAID (Redundant Array of Independent Disks)功能,多半是应用在NAS这 ...

  9. 7.1 RAID(独立冗余磁盘阵列)

    目录 7.1.1 RAID 0 7.1.2 RAID 1 7.1.3 RAID 5 7.1.4 RAID 10 7.1.5 部署磁盘阵列: 7.1.6 损坏磁盘阵列及修复 7.1.7 磁盘阵列+备份盘 ...

最新文章

  1. Python读取保存在hdf5文件中的脑电数据
  2. ME2N标准报表中加EKKO/EKPO中没显示的字段
  3. 【论文解读】多视图多示例多标签的协同矩阵分解
  4. 微信小程序页面跳转、逻辑层模块化
  5. ESXI开启SNMP服务
  6. mybatis 动态SQL-foreach标签
  7. JAVA字节流(读写文件)
  8. [转载] Golang-简洁的并发
  9. INCONEL 625合金介绍
  10. 复合高斯求积matlab代码,谁有复何求积公式和高斯求积公式在matlab中实现的代码...
  11. 甘超波:NLP信念系统
  12. 2014美团校园招聘笔试(10.8北京)
  13. ERROR: Maven JVM terminated unexpectedly with exit code 137
  14. 怎么放大图片不模糊?
  15. 算法高级(32)-搜索引擎中的自动补全功能该如何实现?
  16. Openjudge1.5答案
  17. think php5 离线手册,thinkphp5.0离线手册下载
  18. 微型计算机能直接识别并执行的语言,微处理器能直接识别并执行的命令语言称为...
  19. 半加器和全加器的维基百科
  20. 做一次完美的数据迁移

热门文章

  1. 如何得到优酷网mp4格式视频文件url
  2. Docker环境部署PHP后端项目集群
  3. 【网络】IPV4数据报头部格式
  4. 绿色小安卓机器人 详解Android发展历史
  5. 微信小程序-文本与图片无法对齐
  6. DC(域控)的安装与配置
  7. 【联诚发】今日热搜,我的女人我宠着
  8. C++ 2的幂次方表示
  9. 在Linux中进行MySQL数据迁移
  10. 三星android耗电量大怎么办,三星S9耗电太快怎么办?四个省电小技巧教给你!