raid技术快速入门

2023-10-26

RAID技术

简介
raid全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列。这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。Raid技术意图在于把多个独立的磁盘设备组成一个容量更大,安全性更高的磁盘阵列组,将数据切为多个区段之后分别存储在不同的物理硬盘上。利用分数读写技术提升磁盘整体性能,数据同步在不同的多个磁盘,数据也得到了冗余备份的作用。

raid特性
Raid磁盘阵列能够提升数据冗余性,当然也增加了硬盘的价格成本,只不过数据本身的价值是超过硬盘购买的价格的,Raid处理能够保障数据丢失造成的严重损失,还能提升硬盘读写效率,被广泛应用在企业中。

磁盘的模式
独立模式:一块硬盘单独的工作,读写数据
热备模式:为了防止单独的一块磁盘损坏,随时准备好另一块硬盘准备接替工作
集群模式:一堆硬盘共同提高服务,提高读写效率

raid技术级别

raid技术分为多个级别,不同的级别由于技术角度的考虑,还有公司运营成本的考虑,不同的企业选择不同级别的raid技术。raid0,raid1,raid5,raid10。

Raid0–(>=2)

两个或两个以上相同型号容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。
数据依次写入到物理磁盘,在理想状态下,写入速度是翻盘的。
特点:
数据写入到两块磁盘中,没有备份的功能,但凡任意一块磁盘损坏,数据都将被破坏。
适用场景:
使用追求极致性能的场景,而不是关注于数据安全性的场景,读写效率高,但是数据没有安全性保障。

raid1-- (>=2)

将两块以上硬盘绑定,数据同时写入多块硬盘,因此即使硬盘故障损坏,也不惧怕数据丢失,因为由备份。但是这种方式极大降低了磁盘利用率,假设两块硬盘一共4T,真是数据只有2T,利用率只有50%,如果是三块硬盘组成raid1,利用率只有33%,也是不可取的。大小可以一样,以小的为准。缺点是浪费资源,成功过高。

raid3-- (>=3)

至少需要3块硬盘,只要校验盘没有损坏,坏了一块数据盘可以通过异或运算反推数据来恢复。特点是:存储着异或值的磁盘不得损坏。

异或运算

A B AXORB
0 0 0
0 1 1
1 0 1
1 1 0

raid5-- (>=3)

校验码均匀的放在每一刻硬盘上,依次即使挂了任意一块硬盘都能反推出原来的数据。读性能一般,写性能较差。

raid10-- (>=4)

raid10其实是raid0加速raid1,即由raid0的效率,又有raid1的安全性,因此至少需要四块硬盘搭建raid10。

1.通过raid1两两镜像复制,保证数据安全性
针对两个raid1部署raid0,进一步提升磁盘读写速度
只有坏的不是同一组中所有硬盘,那么就算坏掉一半硬盘读不会丢失数据

总结:
冗余从好到坏:1,10,5,0
性能从好到坏:0,10,5,1
成本从低到高:0,5,1,10

根据数据的存储和访问需求,匹配对应raid级别:
单台服务器,很重要,磁盘不多,系统盘,raid1
数据库服务器,主库,raid10,从库raid5\0
web服务器,如果没有太多的数据的情况下,raid5,raid0
有多台监控应用服务,raid0和raid5

部署raid10

mdadm命令

用于建设,管理和监控raid技术的命令

安装: yum install mdadm -y

参数:
-C  用于未使用的设备,创建raid
-a  yes or no ,自动创建阵列设备
-A  激活磁盘阵列
-n  指定设备数量
-l  指定raid级别
-v  显示过程
-S  停止raid阵列
-D  显示阵列详细信息
-f  移除设备
-x  指定阵列中备用盘的数量
-s  扫描配置文件或/proc/mastat,等到阵列信息
--misc  --zero-superblock  卸载磁盘

raid10的创建和使用

环境准备
准备四块硬盘
[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

2.创建raid10
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

3.检查raid10分区
[root@localhost ~]# fdisk -l |grep /dev/md
Disk /dev/md0: 42.9 GB, 42914021376 bytes, 83816448 sectors

4.格式化磁盘阵列文件系统
[root@localhost ~]# mkfs.xfs /dev/md0

5.挂载使用
[root@localhost ~]# mkdir /myraid10
[root@localhost ~]# mount /dev/md0 /myraid10/
[root@localhost ~]# mount -l |grep md0
/dev/md0 on /myraid10 type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=2048,noquota)

6.检查挂载分区使用情况
[root@localhost ~]# df -hT | grep md0
/dev/md0       xfs        40G   33M   40G   1% /myraid10

7.检查raid10磁盘阵列的信息
mdadm -D  /dev/md0

8.将raid10加入开机挂载配置文件,让它开机自动挂载
[root@localhost ~]# echo -e "/dev/md0 /myraid10 xfs  defaults 0 0" >> /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
/dev/md0 /myraid10 xfs  defaults 0 0
#至此raid10创建完成

raid故障修复

1.剔除一块硬盘,模拟一块硬盘故障
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0

2.检查raid10的状态
[root@localhost ~]# mdadm -D /dev/md0 
#结论:挂掉一块磁盘并影响使用,只需重新替换损坏硬盘即可

3,修复
a.在无人使用的时候先取消raid阵列的挂与开机自动挂载   
b.从重启操作系统	reboot

4.添加新设备
mdadm /dev/md0 -a /dev/sdd
在此有一个修复过程,等待raid10修复完毕
可用是mdadm -D /dev/md0 #检查进程
[root@localhost ~]# mdadm -D /dev/md0 | grep Rebuild
    Rebuild Status : 25% complete
# 等到修复完毕即可

软raid10 重启

注意要配置raid配置文件,否则如果停止软raid后就无法激活了,严格按照笔记操作。

1.手动创建配置文件
[root@localhost ~]# echo DEVICE /dev/sd[b-e] > /etc/mdadm.conf
#扫描磁盘阵列信息,追加到/etc/mdadm.conf下
[root@localhost ~]# mdadm -Ds >> /etc/mdadm.conf 
[root@localhost ~]# cat /etc/mdadm.conf 
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=a6783a55:84dea1f9:ad400817:d7aac4ed

2.取消挂载
[root@localhost ~]# umount  /dev/md0
umount: /dev/md0: not mounted

3.停止raid10
[root@localhost ~]# mdadm  -S /dev/md0
mdadm: stopped /dev/md0
# 检查
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory

4.在有配置文件的情况下,可用正常启动raid10
mdadm -A /dev/md0

5.检查激活情况
mdadm -D /dev/md0 

删除raid10

1.先卸载磁盘
[root@localhost ~]# umount /dev/md0
umount: /dev/md0: not mounted

2.停止raid服务
mdadm -S /dev/md0

3.卸载raid中所有的硬盘
mdadm --misc --zero-superblock  /dev/sdb
mdadm --misc --zero-superblock  /dev/sdc
mdadm --misc --zero-superblock  /dev/sdd
mdadm --misc --zero-superblock  /dev/sde

4.删除raid配置文件
rm /etc/mdadm.conf 

5.删除开机自动挂载配置文件中的相关内容
sed '$d' /etc/fstab -i

raid与备份盘

1.用四块硬盘做演示,三块盘搭建raid阵列组,一块左备份盘
以raid5来配置三块磁盘,加上一块备份盘
[root@localhost ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

2.检查raid状态
mdadm -D /dev/md0

3.格式化文件系统
 mkfs.xfs -f /dev/md0

4.挂载文件系统开始使用分区
 mount /dev/md0 /mnt

5.检查挂载情况
mount -l |grep md0

6.写入数据,检查raid阵列是否可用正常使用
[root@localhost ~]# df  -hT |grep md0
/dev/md0       xfs        40G   74M   40G   1% /mnt

7.查看备用盘
[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       3       8       64        -      spare   /dev/sde

8.见证备份磁盘的作用,提出一块磁盘
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0

8.惊喜发现备份磁盘自动补上
[root@localhost ~]# mdadm -D /dev/md0 |grep sd
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       64        2      active sync   /dev/sde
       4       8       48        -      faulty   /dev/sdd


[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       3       8       64        2      spare rebuilding   /dev/sde
# rebuilding  重建,使复原
# faulty  错误的

9.恢复
# 取消挂载
umount /dev/md0
# 重新加进来
mdadm /dev/md0 -a /dev/sdd
#此时备份盘已经变成了sdd
[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       4       8       48        -      spare   /dev/sdd

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

raid技术快速入门 的相关文章

  • linux shell脚本替换反斜杠

    1 windows中的脚本 路径均是反斜杠 在linux中 路径是斜杠 需要将反斜杠替换为斜杠 使用sed命令 如下 sed i s g home pp install sql 将 home pp install sql 文件中的 替换为
  • 【C++】C++从入门到精通教程(持续更新...)

    前言 最近在整理之前一些C 资料 重新整理出了一套C 从基础到实践的教程 包含概念 代码 运行结果以及知识点的扩展 感兴趣的后续大家持续关注 以下是更新的文章目录 文章之后整理了一个知识思维导图 看起来比较清楚点 目录 1 C 基础知识 C
  • Java 基础--- 静态绑定与动态绑定

    Java 基础 静态绑定与动态绑定 declared type actual type Static Binding 静态绑定 Dynamic Binding 动态绑定 为什么要区分动态绑定和静态绑定 declared type actua
  • ubuntu 16.04 安装redis 5.0.8

    上一个博客我给Ubuntu 16 04安装了SSH服务器 这篇博客主要展示在该系统上安装最新的redis 5 0 8 redis官方的地址为https redis io download 在Linux安装软件通常有两种方式 第一种是通过各个
  • 9、 Mac 实用软件清单

    Mac 实用软件清单 一 编辑器 Sublime Text 一个比较简洁大方带插件管理系统的流行编辑器 Sublime常用插件 PyCharm 一款 Python 开发集成环境 有专业版和社区版 IntelliJ IDEA 一款 Java
  • STM32独立看门狗IWDG和休眠(低功耗)共存那些事儿

    总结方法 1 寄存器写入标志位方法为主要手段 2 看门狗初始化放在标志位判断后方 3 合理利用单片机复位 标志位复位后不会丢失的特点 4 不同系列单片机寄存器不一样 调试不进入看门狗的做法 调试进入断点时不管停留多久 都不会触发看门狗 论坛
  • Vue实现loading加载动画

    Vue实现loading加载动画 1 在main js里引入axios import axios from http index js 2 在vuex中设置状态 state isLoading false 3 配置拦截器 import ax
  • 宇宙第一 IDE,放弃了 Mac....

    微软发布了 Visual Studio for Mac 退役的公告 公告写道 最新版本 Visual Studio for Mac 17 6 会继续获得额外 12 个月的支持 直至 2024 年 8 月 31 日 并提供针对安全问题的服务更
  • Bootstrap 入门

    一 Bootstrap 简介 框架顾名思义就是一套架构 它会基于自身的特点向用户提供一套较为完整的解决方案 框架的控制权在框架本身 使用者要按照框架所规定的某种规范进行开发 而插件一般是为了解决某个问题专门存在的 其功能单一 并且比较小 前
  • docker windows 下载安装 Update the WSL kernel by running “wsl --update“ or follow instructions at xxx

    下载 Docker Accelerated Containerized Application Development 我这里安装的是windows版的 docker windows 下载安装运行之后提示更新WSL 1 打开cmd窗口记得是
  • firefly如何安装mysql_Firefly安装ROS及ssh远程登录配置

    一 在Linux firefly 3 10 0 上安装ROS indigo 快捷键 CTRL ALT T 打开终端并安装ROS indigo sudo sh c echo deb http packages ros org ros ubun

随机推荐

  • C++ 私有构造函数的作用

    很多情况下要求当前的程序中只有一个object 例如一个程序只有一个和数据库的连接 只有一个鼠标的object 通常我们都将构造函数的声明置于public区段 假如我们将其放入private区段中会发生什么样的后果 这意味着什么 当我们在程
  • (Java)leetcode-84 Largest Rectangle in Histogram( 柱状图中最大的矩形)

    题目描述 难度 hard 给定 n 个非负整数 用来表示柱状图中各个柱子的高度 每个柱子彼此相邻 且宽度为 1 求在该柱状图中 能够勾勒出来的矩形的最大面积 以上是柱状图的示例 其中每个柱子的宽度为 1 给定的高度为 2 1 5 6 2 3
  • SFTP对文件重命名 删除 退出 查看

    常用命令 rename A B ls 空格 t ls 空格 lt sftp gt help Available commands bye Quit sftp
  • php-MD5()函数漏洞

    一 数字与字符串之间的比较 var dump 0 a true var dump 0 a false php把字母开头的字符串转化为整型时 转化为0 前面数字后面字母的话就只取到第一个字母出现的位置之前的数字 二 MD5函数漏洞 GET n
  • P3391 【模板】文艺平衡树(Splay)

    题目链接 splay的学习链接 基于这道题的关于splay的讲解 将由这篇博客开始 include
  • vue页面添加锚点

    本文实例为大家分享了vue实现锚点定位的具体代码 供大家参考 具体内容如下 这里主要是实现了一个简单的滚动触发锚点高亮 以及点击锚点触发滚动的功能 如果是获取浏览器的滚动高度 各个浏览器有所差异 使用以下几种方式 Chrome docume
  • CVPR 2021 人脸编辑GAN汇总

    点击上方 机器学习与生成对抗网络 关注星标 获取有趣 好玩的前沿干货 1 Exploiting Spatial Dimensions of Latent in GAN for Real time Image Editing 生成对抗网络 G
  • Vue项目引入Echarts可视化图表库教程&踩坑

    Apache ECharts是一个基于 JavaScript 的开源可视化图表库 ECharts是一款基于JavaScript的数据可视化图表库 提供直观 生动 可交互 可个性化定制的数据可视化图表 ECharts最初由百度团队开源 并于2
  • AD如何设置单个元器件规则

    在我们使用AD进行PCB绘制时 有时候可以将两个元器件重叠放置 但这时由于规则设置的原因 导致DRC检检查报错 那么如何将这种报错解决呢 一 在英文模式下 按下T M 忽视掉这个检查 但这种方法一旦移动元器件又会显示报错 二 设置单个元器件
  • 负载均衡器ribbon和LoadBalancer

    负载均衡器ribbon和LoadBalancer 客户端负载均衡器 目前主流的负载方案分为以下两种 集中式负载均衡 在消费者和服务提供方中间使用独立的代理方式进行负载 有硬件的 比如 F5 也有软件的 比如 Nginx 客户端根据自己的请求
  • 测试key-value

    package com datacloudsec test collect import com alibaba fastjson JSON import com datacloudsec UEBAApplication import co
  • 【ERROR】本地计算机上的mysql服务启动停止后 Windows下mysql数据库恢复

    MySQL突然连不上的 提示 本地计算机上的mysql服务启动停止后 某些服务在未由其他服务或程序使用时将自动停止 折腾半天网上各种查 才找到方法完美解决 数据库恢复 步骤1 删除原有mysql服务 mysqld remove lt 你的m
  • 面向应用学习stm32(7)-TIM通用定时器-PWM输出和输入

    前导 本文的目的与 意在于面向应用的学习单片机 故不会涉及太多的原理知识 例如寄存器之类的 主要目的在于面向应用的学习单片机 学会单片机的基础用法 开发板采取野火的指南者f103 作者大二小白 写的不好的地方轻点喷 欢迎评论区交流 全部工程
  • 常见的函数式接口介绍

    Supplier
  • linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的 因此在大多数Linux计算机中都默认安装了Python 1 检查Python版本 在系统中运行应用程序Terminal 如果是Ubuntu 可按Ctrl Alt T 打开终端窗口 通过执行python 注意是
  • [学习opencv]彩色图像通道分离、合成

    将彩色图像RGB三色分离出来是一个很有意义的操作 用到void split const Mat mtx vector
  • LeetCode 61. 旋转链表

    题目链接 61 旋转链表 一共用两个指针 第一个记录链表的尾节点 第一次遍历记录链表的长度 由于k可能很大所有我们对k模上n 第二次遍历记录我们用第二个指针记录要翻转的第二段链表的前一个节点 然后用尾部指针tail的next指针指向头结点
  • (超详细)基于MTCNN+FaceNet实现人脸识别及轻量级网络探索和改进(附数据集及预训练模型)

    目录 一 原理分析 二 FcaeNet源码使用 三 爬虫自制数据集 提高亚洲人脸准确率 四 加载预训练模型 五 加载自制pairs验证文档 六 轻量级网络研究 七 FaceNet扩展使用 FaceNet SVM KNN或者改进损失函数 八
  • Windows安装Linux虚拟机详细教程

    文章目录 一 VirtualBox安装 二 Vagrant安装 三 Centos安装 在线安装 离线安装 四 启动与连接 方式一 命令行登入 无需输入用户名与密码 方式二 Xshell登入 自定义ip 一 VirtualBox安装 下载 V
  • raid技术快速入门

    RAID技术 简介 raid全称为Redundant Arrays of Independent Drives 即磁盘冗余阵列 这是由多块独立磁盘 多为硬盘 组合的一个超大容量磁盘组 Raid技术意图在于把多个独立的磁盘设备组成一个容量更大