RAID介绍及RAID5配置实例

2023-11-12

一、RAID磁盘阵列介绍

1.1RAID磁盘阵列介绍

  1. RAID是Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
  2. 把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术
  3. RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求
  4. 组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
  5. 常用的RAID级别:RAID 0,RAID 1,RAID 5,RAID 6,RAID 1+0 等

1.2常见的几种RAID

1.2.1 RAID 0(条带化存储)

在这里插入图片描述

  • RAID 0连续以位或字节为单位进行分割数据,将数据分段存储在各个硬盘中,n块硬盘并行读/写数据,因此具有很高的数据传输率,可以达到单个硬盘的N倍,但它没有数据冗余;
  • RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据,因此并不能算真正的RAID结构;
  • RAID 0不能应用于数据安全性要求高的场合。

特点:
(1)最少需要两块磁盘

(2)数据条带分布式

(3)没有冗余,性能最佳(不存储镜像、校验信息)

(4)不能应用于对数据安全性要求高的场合

1.2.2 RAID 1(镜像存储)

在这里插入图片描述

  • 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据

  • 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID1可以提高读取性能

  • RAID
    1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据

  • N(偶数)块硬盘组成镜像,容量为N/2

特点:
(1)最少需要两块磁盘

(2)提供数据冗余(提供备份)

(3)性能好

(4)N(偶数)块硬盘组成镜像,容量为N/2

1.2.3 RAID 5

在这里插入图片描述

  • N (N>=3) 块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高;
  • (N-1) /N磁盘利用率(有一块是用来校验的);
  • 可靠性高,允许坏1块盘,不影响所有数据

特点:

(1)最少3块磁盘

(2)数据条带形式分布

(3)以奇偶校验作冗余

(4)适合多读少写的情景,是性能与数据冗余最佳的折中方案

1.2.4 RAID 6

在这里插入图片描述

  • N(N≥4)块盘组成阵列,(N-2) /N磁盘利用率
  • 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
  • 两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用
  • 相对于RAID 5有更大的"写损失" ,因此写性能较差

1.2.5 RAID 1+0

RAID 1+0(先做镜象,再做条带)
在这里插入图片描述

  • N (偶数,N>=4)。块盘两两镜像后,再组合成一个RAID 0
  • N/2磁盘利用率
  • N/2块盘同时写入,N块盘同时读取
  • 性能高,可靠性高

特点:
(1)最少4块磁盘

(2)先按RAID 0 分成两组,再分别对两组按RAID 1 方式镜像

(3)兼顾冗余(提供镜像存储)和性能(数据条带形式分布)

(4)在实际应用中较为常用

1.2.6 RAID 0+1

RAID 0+1先做条带,再做镜像
在这里插入图片描述

  • 读写性能与RAID 1+0相同;
  • 安全性低于RAID 1+0;
  • 使用较少。

1.3各级别RAID对比|

RAID级别 硬盘数量 硬盘使用率 是否有校验 保护能力 写性能
RAID 0 N N 单个硬盘的N倍
RAID 1 N(偶数) N/2 允许一个设备故障 需写两对存储设备,互为主备
RAID 5 N≥3 (N-1)/N 允许一个设备故障 需写计算校验
RAID 6 N≥4 (N-2)/N 允许两个设备故障 需双重写计算校验
RAID 10 N≥4(偶数) N/2 允许两个基组中各坏一个 N/2块盘同时写入

二、磁盘阵列

2.1阵列卡介绍阵列卡是用来实现RAID功能的板卡

  • 阵列卡是用来实现RAID功能的板卡
  • 通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成的
  • 不同的RAID卡支持的RAID功能不同
  • 例如支持RAID0、 RAID1、 RAID5、 RAID10等
  • RAID卡的接口类型 IDE接口、SCSI接口、SATA接口和SAS接口
    • IDE接口(并行接口,价格低廉,兼容性强)
    • SCSI接口(串行接口,是小型计算机系统接口,广泛应用于小型机上的高速数据传输技术,支持热拔插,CPU占用率低,但是价格高)
    • SATA接口(串行接口)
    • SAS接口(新一代scsi接口,向下兼容SATA)

2.2阵列卡的缓存

  • 缓存(Cache)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。
  • 缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存可以提高命中率
  • 不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等。

三、创建软RAID磁盘阵列步骤

需求:

1.为Linux服务器添加4块SCSI硬盘

2.使用mdadm软件包,构建RAID5磁盘阵列,提磁盘存储的性能和可靠性

步骤说明:

检查是否安装mdadm,准备用于RAID阵列的分区

为Linux服务器添加4块SCSI硬盘,并使用fdisk工具各划分出一块2GB的分区,依次为:/dev/sdb1、/dev/sdc1./dev/sdd1、/devsde1

将其类型ID更改为“fd",对应为“Linux raidautodetect”,表示支持用于RAID磁盘阵列创建RAID设备

示例:

3.1检查是否已安装mdadm软件包

[root@localhost ~]# rpm -q mdadm ###检查是否安装了mdadm命令

显示已安装
这里显示已安装有,如未安装可使用进行安装

[root@localhost ~]# yum install -y mdadm

在这里插入图片描述

3.2往虚拟机里添加四块硬盘

在这里插入图片描述
重启系统(init 6),系统就可以识别到硬盘了
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3使用fdisk工具将新磁盘设备/dev/sdd、/dev/sde、/dev/sdf、/dev/sdg、划分出主分区sdd1、sde1、sdf1、sdg1,并且把分区类型的ID标记号改为“fd”

[root@localhost ~]# fdisk /dev/sdd
n->p->enter->enter->enter->t->fd->w
[root@localhost ~]# fdisk /dev/sde
n->p->enter->enter->enter->t->fd->w
[root@localhost ~]# fdisk /dev/sdf
n->p->enter->enter->enter->t->fd->w
[root@localhost ~]# fdisk /dev/sdg
n->p->enter->enter->enter->t->fd->w
[root@localhost ~]# fdisk -l   ###查看硬盘

在这里插入图片描述
在这里插入图片描述

3.4创建RAID设备

[root@localhost ~]# madam  -C -v -n3 /dev/md0  -l5  /dev/sd[def]1   -x1  /dev/sdg1

选项 说明
mdam 命令字
-C 表示新建
-v 显示新建过程中的详细信息
/dev/md0 创建RAID 5的名称
-a yes –auto,表示如果有什么设备文件没有存在的话就自动创建,可省略
-l 指定RAID 的级别,-l5 表示RAID 5
-n 指定使用几块硬盘创建RAID , -n3 表示使用3块硬盘创建RAID
/dev/sd[def]1 指定使用者三块磁盘分区去创建RAID
-x 指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用
/dev/sdge1 指定用于备用的磁盘

在这里插入图片描述

3.6查看RAID

mdadm -E /dev/sd[d-g]1
ls -l /dev/md0
cat /proc/mdstat
mdadm -D /dev/md0

3.7创建并挂载文件系统

[root@localhost ~]# mkfs -t xfs /dev/md0
[root@localhost ~]# mkdir /home/cs1   ###创建文件系统
[root@localhost ~]# mount /dev/md0 /home/cs1 ###挂载文件系统

在这里插入图片描述

在这里插入图片描述

3.8故障测试

扫描或查看磁盘阵列信息

启动/停止RAID阵列

设备恢复操作 模拟阵列设备故障 更换故障设备,并恢复数据

mdadm命令其他常用选项:

-r:移除设备

-a:添加设备

-S:停止RAID

-A:启动RAID

-f :模拟故障

命令:

mdadm /dev/md0 -f /dev/sdd1    模拟/dev/sdd1故障
mdadm /dev/md0 -f /dev/sdd1   #查看发现sdg1已顶替sdd1

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RAID介绍及RAID5配置实例 的相关文章

  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 大数据代表技术:Hadoop、Spark、Flink、Beam

    大数据代表技术 Hadoop Spark Flink Beam Hadoop 从2005年到2015年 说到大数据都是讲hadoop Hadoop是一整套的技术框架 不是一个单一软件 它是一个生态系统 Hadoop有两大核心 第一个是它解决
  • ubuntu系统安装pangolin

    ubuntu 安装 pangolin 1 安装pangolin依赖项以及安装过程中用到的工具 2 创建安装目录 3 下载pangolin源文件 4 安装pangolin 1 安装pangolin依赖项以及安装过程中用到的工具 ctrl al
  • LeetCode_BinaryTree_1129. Shortest Path with Alternating Colors 颜色交替的最短路径【BFS求最短路径】【java】【中等】

    一 题目描述 英文描述 You are given an integer n the number of nodes in a directed graph where the nodes are labeled from 0 to n 1
  • Vue面试题(一)

    目录 一 vue2和vue3的区别 二 mixin混入对象 三 hooks 特点 四 keep alive 五 生命周期 六 el template render 七 vue router 有哪几种导航钩子 路由守卫 八 HTTP和TCP的
  • CVPR‘2023 即插即用系列!

    Title BiFormer Vision Transformer with Bi Level Routing Attention Paper https arxiv org pdf 2303 08810 pdf Code https gi
  • 电商入门_仓库管理系统wms

    在2010电商WMS第一个阶段 那时的双十一就是各个仓库的噩梦 库区不够用 WMS系统瘫痪 拣货人员都被埋在商品里 往往半个月之后才能发出订单 那时京东的亚洲一号仓刚开始立项 大家还半信半疑 大部分电商库房后台还是处于小作坊状况 纯粹靠人工
  • react动态给组件添加事件_React实战—组件行为:React中的事件(4)

    网页是组件构成的 组件是一系列标签形成的单一功能 所以考虑组件无非也就三件事 结构 表现 和行为 结构JSX搞定了 当然JSX不仅仅干这个 表现是CSS的事儿 我们重点说下行为 也就是事件和钩子 事件好说 就是户干了啥事儿 然后有什么样的相
  • Fiddler / Charles - 夜神模拟器证书安装App抓包

    Fiddler Charles 夜神模拟器证书安装App抓包 文章目录 Fiddler Charles 夜神模拟器证书安装App抓包 前言 一 软件安装 1 Openssl安装 1 1下载安装 1 2配置环境变量 1 3查看openssl版
  • 基于AWS的云服务架构最佳实践 #CSDN博文精选# #IT# #云服务实践#

    大家好 小C将继续与你们见面 带来精选的CSDN博文 在这里 你将收获 将系统化学习理论运用于实践 系统学习IT技术 学习内容涵盖数据库 软件测试 主流框架 领域驱动设计和第三方生态等 离全栈工程师更近一步 精心整理的CSDN技术大咖博文
  • Java版工程项目管理系统源码 工程项目源码

    数 据 库 MySQL 开发语言 Java 开发工具 MyEclipse 源码类型 WebForm 以甲方项目管理为中心 包括项目启动 计划 执行 控制与收尾阶段的全生命周期管理 并对范围 预算 进度 质量 资源 风险等管理要素进行控制与预
  • 06FFMPEG的AVCodecContext结构体分析

    06FFMPEG的AVCodecContext结构体分析 概述 该结构体位于libavcodec库中的avcodec h中 1 AVCodecContext编解码上下文结构体 位于libavcodec库里 AVFormatContext A
  • C++的sort函数如何实现从大到小排序

    C 的sort函数如何实现从大到小排序 一 sort的基本用法 1 所在的头文件 2 包含的参数 3 时间复杂度 二 具体示例 USACO07DEC Bookshelf B 题目描述 输入格式 输出格式 样例 1 样例输入 1 样例输出 1
  • CMake应用:生成器表达式

    目录 一 概述 二 常用的生成器表达式 1 布尔生成器表达式 2 字符串值生成器表达式 3 调试 CMake的生成器表达式不算是特别常用 但是有一些场景可能是必须要使用的 或者在针对不同编译类型设置不同编译参数的时候可以巧妙应用 从而减少配
  • 数据结构顺序表的基本操作—插入

    include
  • uniapp history打包 解决公众号支付的问题

    微信公众号支付的时候 会在商户平台中配置支付目录 如 http www xxx com mypro 上面的路径是支付的url 页面地址 但是我们使用 uniapp 或者vue 的时候 默认的是 router 的 mode 是 hash 模式
  • [转载]使用@value注解注入properties配置信息

    首先 value需要参数 这里参数可以是两种形式 Value configProperties t1 msgname 或者 Value t1 msgname 其次 下面我们来看看如何使用这两形式 在配置上有什么区别 1 Value conf
  • Centos 服务器禁止 IP访问/ IP黑名单

    本文结合上文的一起使用体验更佳 Centos实时网络带宽占用查看工具iftop 一 iptables 防火墙 yum install iptables services 2 安装 iptables 防火墙 systemctl enable
  • IDEA控制台中文乱码解决

    关于IDEA中文乱码的解决方法 如下 1 打开idea安装目录 选择 打开文件 末尾添加 Dfile encoding UTF 8 2 打开IntelliJ IDEA gt File gt Setting gt Editor gt File
  • js获取当前时间和倒计时

    一 当前时间 获取当前时间显示年月日 时分秒 function newDate var date new Date var Y date getFullYear var M date getMonth 1 lt 10 0 date getM
  • RAID介绍及RAID5配置实例

    一 RAID磁盘阵列介绍 1 1RAID磁盘阵列介绍 RAID是Redundant Array of Independent Disks的缩写 中文简称为独立冗余磁盘阵列 把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组 逻辑硬盘 从