RAID技术主要有以下三个基本功能:

(1).通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
(2).通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
(3).通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
(4).RAID常见的组合有01510

RAID0、RAID1、RAID5、RAID10的特点

RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。

将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。

RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。

实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。

RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。

如下图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。

这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。

RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。

继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。

因这种结构的成本高,一般用于存放要求速度与差错控制的数据。

linux虚拟机模拟 独立磁盘冗余阵列RAID5配置5块磁盘、3块做raid,2块做备份)

1.准备mdadm

Linux下需要安装mdadm软件包,mdadm命令用于管理系统软件RAID硬盘阵列。

[root@yyd-hbza ~]# rpm -qa |grep mdadm

mdadm-4.0-5.el7.x86_64

mdadm命令格式为:”mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。

mdadm管理RAID阵列的动作有:

名称

作用

Assemble

将设备加入到以前定义的阵列

Build

创建一个没有超级块的阵列

Create

创建一个新的阵列,每个设备具有超级块。

Manage

管理阵列(如添加和删除)。

Misc

允许单独对阵列中的某个设备进行操作(如停止阵列)。

Follow or Monitor

监控状态。

Grow

改变阵列的容量或设备数目。

mdadm管理RAID阵列的参数有:

参数

作用

-a

检测设备名称

-n

指定设备数量

-l

指定raid级别

-C

创建

-v

显示过程

-f

模拟设备损坏

-r

移除设备

-a

添加设备

-Q

查看摘要信息

-D

查看详细信息

-S

停止阵列

2.在虚拟机中再添加5块硬盘

如上操作,重复五次,出现五块新磁盘。

3、使用mdadm命令创建RAID5,名称为”/dev/md0″。

(1).启动主机,在终端下查看磁盘是否成功添加

输入命令:

#fdisk  -l

(2).分区转换

-C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别  -x 使备用磁盘格式  而后面写上要加入阵列的硬盘名称, 这里新的磁盘再/dev/md0 下

输入命令:

mdadm -Cv  /dev/md0   -n  3  -l  5  -x  2  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf

(3).查看RAID组的详细信息:

#mdadm -D /dev/md0

4.格式化并挂载使用

(1).格式化为xfs格式。

输入mkfs,按两次tab键,查询格式,根据需求格式化。

在这里我们格式化成xfs格式,输入命令:

#mkfs.xfs /dev/md0

(2).挂载

首先创建挂载目录:

#mkdir  /RAID

进行文件系统的挂载:mount  /dev/md0  /RAID

查看磁盘挂载信息:

# df -h

设置 开机自动挂载:#echo "/dev/md0 /RAID xfs defaults 0 0" >> /etc/fstab

查看 /etc/fstab 文件内容写入是否正确 #cat /etc/fstab

5.模拟有1块硬盘损坏的情况

(1).将/dev/sdb移出阵列:

#mdadm /dev/md0 -f /dev/sdb

(2).查看RAID组的详细信息: /dev/sdb磁盘损坏,备份磁盘/dev/sdf自动顶替/dev/sdb作用

#mdadm -D /dev/md0

RAID硬盘依然可以正常的创建或删除文件

(3).重启主机,查看RAID组的详细信息:     发现/dev/sdf代替成为为raid

#mdadm -D /dev/md0

(4).将磁盘添加回阵列/dev/sdb

#mdadm  /dev/md0 -a /dev/sdb

(5).查看RAID组的详细信息:

#mdadm -D /dev/md0

结果 /dev/sdf磁盘成为raid,/dev/sdb成为备份磁盘

linux虚拟机模拟 独立磁盘冗余阵列RAID10配置5块磁盘

RAID10配置,除第三步创建RAID进行分区转换的命令有所差别,其余配置步骤相同。

RAID进行分区转换命令:#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-f]

磁盘冗余阵列之RAID5、RAID10的更多相关文章

  1. 磁盘冗余阵列之RAID5的配置

    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...

  2. RAID 独立磁盘冗余阵列 - redundant array of independent disks

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

  3. RAID(独立磁盘冗余阵列)简介

    RAID(独立磁盘冗余阵列) 在大数据技术出现之前,人们就需要面对这些关于存储的问题,对应的解决方案就是RAID技术. RAID(独立磁盘冗余阵列)技术主要是为了改善磁盘的存储容量,读写速度,增强磁盘 ...

  4. 转 关于Raid0,Raid1,Raid5,Raid10的总结

    关于Raid0,Raid1,Raid5,Raid10的总结   RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能 ...

  5. 使用mdadm创建磁盘RAID10整列,RAID5出现故障,自动替换硬盘

    首先需了解mdadm的参数使用 . 第一步: 先在虚拟机中添加四块硬板 第二步:使用mdadm命令创建RAID10名称为"/dev/md0" -C代表创建操作,v 显示创建过程,- ...

  6. 磁盘冗余阵列之RAID10的配置

    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...

  7. linux系统中RAID5磁盘冗余阵列配置(5块磁盘)

    RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. 如图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RA ...

  8. linux系统中RAID10磁盘冗余阵列配置

    介绍:RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高,RAID10用两个磁盘做RAID0,用其他两个做RAID1当备份. 配置流程: 第一步:在原有基础上为磁盘再填入五块磁盘(至少 ...

  9. 关于Raid0,Raid1,Raid5,Raid10的总结

    RAID0 定义: RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就 ...

随机推荐

  1. Java动态代理——框架中的应用场景和基本原理

    前言 之前已经用了5篇文章完整解释了java动态代理的原理,本文将会为这个系列补上最后一块拼图,展示java动态代理的使用方式和应用场景 主要分为以下4个部分 1.为什么要使用java动态代理 2.如 ...

  2. 【Flutter 1-5】运行Flutter的第一个项目——计数器

    创建项目 创建Flutter项目有很多种方法,各个IDE工具也都集成了创建Flutter项目的快捷操作.我们这里列举三种方式:使用命令行创建.使用Android Studio创建和使用VSCode创建 ...

  3. Redis常用命令(6)——SortedSet

    ZADD 格式:ZADD key score member [[score member] [score member] ...] 作用:向有序集合key中插入一个或多个元素.如果元素已经存在,更新s ...

  4. python数据类型之String(字符串)

    String(字符串) 1.概述 ​ 字符串是以单引号或双引号括起来的任意文本,比如"abc",'xy'等等,请注意''或者""本身只是一种表示方式,并不是字符 ...

  5. Git远程推送常见错误及解决方案:

    Git远程推送 关注公众号"轻松学编程"了解更多. 1.问题:git远程提交时出现错误: error: RPC failed; curl 56 OpenSSL SSL_read: ...

  6. Linux系统目录简介

    Linux系统目录简介 boot 系统启动 grub(内核加载程序,内核≈操作硬件) 界面 自检程序 bin 系统可执行文件 bash=终端程序 sbin 超级用户的可执行文件 root root家目 ...

  7. Hadoop调优 | NameNode主备宕机引发的思考

    大家都知道在双十一这些电商大型营销活动期间,电商网站的访问量等是平时的N倍.每当这个时候到来,无论是开发还是运维人员都严阵以待生怕服务出现问题.很不幸,笔者的一个朋友在一家电商公司上班,在双十一时,恰 ...

  8. 11content_processor

    1,content_processor 上下文处理器应该返回一个字典,字典中的key会被模板中当成变量来渲染 上下文处理器返回的字典,在所有页面中都是可以使用的 被这个装饰器修饰的钩子函数,必须要返回 ...

  9. linux nf_conntrack 连接跟踪机制

    PRE_ROUTING和LOCAL_OUT点可以看作是整个netfilter的入口,而POST_ROUTING和LOCAL_IN可以看作是其出口; 报文到本地:PRE_ROUTING----LOCAL ...

  10. menuconfig

    1. menuconfig 的存在意义 原由是 项目的 config 项太多了,需要一个人性化的方式设置. menuconfig 背后是一个应用程序,用户和该应用程序交互,完成 config 设置. ...