转自http://www.linuxprobe.com/chapter-06/

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,作用是防止硬盘物理损坏以及增加存储设备的吞吐量

RAID常见的组合有01510

    • RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
    • 将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
    • RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。
    • 实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
    • RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
    • 如上图所示"parity"块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
      这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
    • RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
    • 继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
      因这种结构的成本高,一般用于存放要求速度与差错控制的数据。

常见的做软RAID的工具是mdadm。下面就简单写几个实用的小例子快速上手这个命令。

1.配置RAID10

  ①在虚拟机上给主机分配4块1G的磁盘(为了实验磁盘就不分配大的了)

  

  ②创建raid10

    mdadm -Cv /dev/md1 -n4 -l 10 -a yes /dev/sd{b..e}

    • -C是创建
      -v是显示过程
      /dev/md1 是做成的raid磁盘名
      -n 是使用磁盘数
      -l是raid级别
      -a 检查raid名称
      /dev/sd{b..e}是之前分配的四块盘

      mkfs.ext4 /dev/md1

       partprobe /dev/md1 #内核同步磁盘

  ③挂载raid磁盘

    mkdir /RAID

    mount /dev/md1 /RAID

    此时一个raid10的磁盘创建挂载已经完成

    

  ④开机自动挂载

    在这里不是很建议用设备名写入fstab表中,因为我之前使用的设备名md1结果开机md1在dev目录下没了,变成md127了,具体原因不明,因此可以使用UUID

    使用blkid获取UUID

    

    echo “UUID=d3986c95-11d9-4afa-935e-bd4e637f4754 /RAID  ext4  default  0 0” >> /etc/fstab

  ⑤查看RAID磁盘详细信息

    mdadm -D /dev/md1

    

  ⑥模拟一块硬盘损坏

    mdadm /dev/md1 -f /dev/sdb

    #-f将sdb移出阵列,此时sdb状态是被移除,通过mdadm -D /dev/md1查看sdb是失败状态

    此时硬盘状态是坏的,你需要将它从取出

    mdadm /dev/md1 -r /dev/sdb

    换上同样大小的硬盘后执行

    mdadm /dev/md1 -a /dev/sdb

    即可将sdb重新加入阵列(如果磁盘真有问题必须要先-r移除才能-a添加)

    重新挂载

    mount /dev/md1 /RAID

    

  ⑦停止阵列设备

    umount /RAID    #必须先卸载

    mdadm -S /dev/md1

    此时dev目录下没有md1了,若想恢复,目前我使用的方法是

    mdadm -A /dev/md1 /dev/sd{b..e}

使用RAID进行磁盘管理的更多相关文章

  1. RAID与磁盘管理之——综合应用

    为了实现磁盘的管理和RAID的综合,现将四块硬盘组合成一个RAID10,并在此基础之上创建物理卷.卷组.逻辑卷,实现在线扩容,最后挂载使用. 其中也部分包含了swap分区的创建和使用. 1.根据lin ...

  2. 每天进步一点点——Linux磁盘管理LVM与RAID

    转载请注明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,仅仅能通过加入硬盘. ...

  3. linux磁盘管理系列-软RAID的实现

    1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...

  4. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  5. Linux RAID 磁盘管理

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

  6. liunx 磁盘管理命令记录

    Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...

  7. LVM磁盘管理

    http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html Linux LVM硬盘管理及LVM扩容 LVM磁盘管理 一.LVM简介... ...

  8. linux磁盘管理系列-LVM的使用

    LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...

  9. Linux第七节随笔-下磁盘管理

    baidubaike 磁盘管理物理磁盘---> RAID--->文件系统--->用户使用LVM概念简述Raid详细解说                0                ...

随机推荐

  1. jmeter录制接口以及并发测试

    http://jingyan.baidu.com/article/15622f2475601dfdfdbea548.html

  2. Split The Tree

    Split The Tree 时间限制: 1 Sec  内存限制: 128 MB 题目描述 You are given a tree with n vertices, numbered from 1 ...

  3. Oracle命令行创建数据库

    创建数据库文件 CREATE TABLESPACE MyDataBase LOGGING DATAFILE 'D:\Oracle\database\MyDataBase.dbf' SIZE 100M ...

  4. 2018.11.7 PION 模拟赛

    期望:100 + 80 + 75 = 255 实际:0 + 80 + 60 = 140 唉~一天比一天犯的错误智障,感觉noip要凉啊... 吓得我赶紧吃几颗药补补脑子. 奶一下大佬: lgj AK ...

  5. error MIDL2311 解决方法

    error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode : [] 在编 ...

  6. 【java】java base64编码与解码

    参考地址:http://blog.csdn.net/zhou_kapenter/article/details/62890262 要求:JDK1.8+ 使用java原生工具类即可实现 [这里展示字符串 ...

  7. flask-limiter限制单个IP访问的频率和次数

    Flask-Limiter provides rate limiting features to flask routes. It has support for a configurable bac ...

  8. 线性表的顺序存储和链式存储的实现(C)

    //线性表的顺序存储 #include <stdio.h>typedef int DataType;#define MaxSize 15//定义顺序表typedef struct { Da ...

  9. [Javascript] Cancel A Promise Using AbortController

    The AbortController interface enables us to cancel a one or more DOM requests. In this lesson, we wi ...

  10. [Adobe Analytics] Segments types

    There are three types of Segmentation Hit-based Visit-based Visitor-based There are four segment con ...