一: 磁盘阵列详解

1.1 RAID磁盘阵列介绍

是 Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘) ,从而提供比单个硬盘更高的存储性能和提供数据备份技术
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
常用的RAID级别 :

RAIDO, RAID1, RAID5, RAID6 , RAID1+0等

1.2 RAID 0

RAID 0 (条带化存储)

  • 连续以位或字节为单位分割数据,并行读/写 于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余
  • 只是单纯地提高性能,而且其中的一个磁盘失效将影响到所有数据
  • 不能应用于数据安全性要求高的场合


N块硬盘并行组合成一个新的逻辑盘

1.3 RAID 1

RAID 1 (镜像存储)

  • 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据 当原始数据繁忙时,可以直接从镜像拷贝中读取数据,因此,RAID 1
  • 可以提高读取性能 RAID 1
  • 是磁盘阵列中单位成本最高的,但是提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据


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

1.4 RAID 5

RAID 5

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

1.5 RAID 6

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

1.6 RAID 1+0

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

小结:各级别raid 对比

RID 级别 硬盘数量 硬盘利用率 是否有校验 安全性 写性能
RAID0 N N 单个硬盘的N倍
RAID1 N(偶数) N/2 允许一个设备故障 需要写两对存储设备
RAID5 N>=3 (N-1)/N 允许有一个设备故障 需要写计算校验数据
RAID6 N>=4 (N-2)/N 允许有两个设备故障 需要写双重计算校验数据
RAID1+0 N>=4 N/2 允许两个基组中各坏一个 N/2 块盘同时写入

1.7 阵列卡介绍

  • 阵列卡是用来实现RAID功能的板卡
  • 通常是由I/O处理器,硬盘控制器,硬盘连接器和缓存等一系列组建构成
  • 不同的RAID 卡支持的RAID 功能不同
  • RAID 卡接口类型:IDE接口,SCSI 接口, SATA 接口 ,SAS 接口

1.8 阵列卡的缓存

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

阵列的写缓存是将数据写到Cache,当Cache 的数据积累到一定程度,阵列才把数据刷到磁盘,这样可以实现批量的写入,大幅提高写的速度。 Cache的大小对整个I/O性能的影响是非常大。但是, 一旦服务器断电,缓存数据就是丢失。因此,出现了一种可循环充电式电池被应用到阵列卡缓存单元上。平时使用主板供电,一旦服务器断电,自动使用电池供电。

2.1 下载mdadm 软件包
使用 rpm -qa | grep mdadm , 检查软甲包是否已经下载安装
如果没有下载,用 yum -y install mdadm 下载mdadm 软件包

2.2 分区并修改ID标记
使用fdisk工具将新磁盘设备/dev/sdb /dev/sdc /dev/sdd /dev/sde划分出主分区sdb1、 sdc1, sdd1、 sdel,并且把分区类型的ID标记号改为"fd"

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 55.5G  0 part /
sdb      8:16   0   20G  0 disk
sdc      8:32   0   20G  0 disk
sdd      8:48   0   20G  0 disk
sde      8:64   0   20G  0 disk
sr0     11:0    1  4.2G  0 rom  [root@localhost ~]# echo 'n
> p
>
>
>
> t
> fd
> w' | fdisk /dev/sdb                #非交互式磁盘分区,并修改分区系统类型为raid##磁盘/dev/sdbc /dev/sdd /dev/sde  同样操作[root@localhost ~]# for i in {b,c,d,e}; do fdisk -l /dev/sd$i | grep /dev/sd$i ; done    #查看分区结果
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect

2.3 创建RAID 设备

mdadm -C -v /dev/md0 [-a yes] -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1 #创建磁盘阵列raid 5
###raid 10 则先做raid 1 ,在将raid 1 做成raid 0

-C :表示新建;
-v :显示创建过程中的详细信息。
/dev/md0 :创建RAID5的名称(名字一般以md 开头)
-a yes : --auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
-l :指定RAID的级别, l5表示创建RAID5。
-n :指定使用几块硬盘创建RAID, n3表示使用3块硬盘创建RAID.
/dev/sd[bcd]1 :指定使用这3块磁盘分区去创建RAID.
-x :指定使用几块硬盘做RAID的热备用盘, x1表示保留1块空闲的硬盘作备用
/dev/sdel :指定用作于备用的磁盘

查看磁盘阵列的创建过程及状态
watch -n 5 ‘cat /proc/mdstat’
或者:
mdadm -D /dev/md0

[root@localhost ~]# mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 start[root@localhost ~]# cat /proc/mdstat        #查看磁盘阵列的创建过程
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]   #参与创建的磁盘41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]   #uu表示 两块磁盘状态完好  _  表示磁盘不在线  (当前只创建好两个)[==========>..........]  recovery = 53.7% (11271168/20954112) finish=0.7min speed=206000K/sec   #创建进度unused devices: <none>[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Tue Jun 22 09:09:38 2021Raid Level : raid5      #磁盘阵列是raid 5Array Size : 41908224 (39.97 GiB 42.91 GB)     #阵列容量大小Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Tue Jun 22 09:11:23 2021State : clean Active Devices : 3       #正活跃的磁盘Working Devices : 4       #此阵列工作的磁盘数Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 71f5d2f1:6c7c50ac:785f4ba3:58b2aa00Events : 18Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sdb11       8       33        1      active sync   /dev/sdc14       8       49        2      active sync   /dev/sdd1      #正在使用的三块磁盘3       8       65        -      spare   /dev/sde1            #热备份的磁盘

2.4 格式化磁盘并挂载使用

[root@localhost ~]# mkfs.xfs /dev/md0      #格式化为xfs 文件系统
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/md0 /data    #挂载使用
[root@localhost ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        56G  5.0G   51G    9% /
devtmpfs       devtmpfs  978M     0  978M    0% /dev
tmpfs          tmpfs     993M     0  993M    0% /dev/shm
tmpfs          tmpfs     993M  9.1M  984M    1% /run
tmpfs          tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1      xfs       497M  151M  346M   31% /boot
tmpfs          tmpfs     199M   12K  199M    1% /run/user/42
tmpfs          tmpfs     199M     0  199M    0% /run/user/0
/dev/md0       xfs        40G   33M   40G    1% /data

2.5 测试

 [root@localhost ~]# mdadm /dev/md0 -f /dev/sdb1             #将/dev/sdb1 磁盘 手动故障
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@localhost ~]# cat /proc/mdstat                       #查看阵列创建
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3] sdc1[1] sdb1[0](F)41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU][====>................]  recovery = 20.1% (4212992/20954112) finish=1.3min speed=210649K/secunused devices: <none>[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Tue Jun 22 09:09:38 2021Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Tue Jun 22 09:38:56 2021State : clean, degraded, recovering Active Devices : 2     #活跃的只剩下两块(因为一块正在创建中Working Devices : 3     #一共只剩下三块盘Failed Devices : 1Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 44% completeName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 71f5d2f1:6c7c50ac:785f4ba3:58b2aa00Events : 27Number   Major   Minor   RaidDevice State3       8       65        0      spare rebuilding   /dev/sde11       8       33        1      active sync   /dev/sdc14       8       49        2      active sync   /dev/sdd10       8       17        -      faulty   /dev/sdb1     #磁盘失效

2.6 创建配置文件

创建 /etc/mdadm.conf 配置文件,方便管理软RAID的配置,比如启动、停止

  • echo ‘DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1’ > /etc/mdadm.conf

  • mdadm --detail --scan >> /etc/mdadm. conf

[root@localhost ~]# echo   'DEVICE /dev/sdcl /dev/sdb1 /dev/sddl /dev/sdel'  >  /etc/mdadm.conf
[root@localhost ~]# mdadm --detail --scan >> /etc/mdadm.conf
[root@localhost ~]# cat /etc/mdadm.conf
DEVICE /dev/sdcl /dev/sdb1 /dev/sddl /dev/sdel
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=71f5d2f1:6c7c50ac:785f4ba3:58b2aa00

2.7 mdadm命令其它常用选项

-D :查看阵列信息
-E :检查磁盘是否已做raid
-f :故障设备
-r ∶ 移除设备
-a∶ 添加设备
-S∶ 停止RAID
-A∶ 启动RAID
-s : 查找/etc/mdadm.conf 的配置信息

eg:

mdadm -D /dev/md0 #查看阵列md0 的信息

mdadm -E /dev/sd[bcde] #查看磁盘/dev/sdd-sde 是否已做raid

mdadm /dev/md0 -f /sdb1 #可以手动下线设备,模拟故障

mdadm /dev/mdo -r /dev/sdb1 #移除设备

mdadm /dev/mdo -a /dev/sde1 #添加设备

mdadm -s /dev/md0 #扫描配置文件

mdadm -S /dev/md0 #停止RAID

mdadm -A /dev/md0 #启动RAID

dadm /dev/md0 -r /dev/sdb1     #将sdb1 从阵列 md0 中移除
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Tue Jun 22 09:09:38 2021Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Tue Jun 22 10:38:07 2021State : clean Active Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 71f5d2f1:6c7c50ac:785f4ba3:58b2aa00Events : 41Number   Major   Minor   RaidDevice State3       8       65        0      active sync   /dev/sde11       8       33        1      active sync   /dev/sdc14       8       49        2      active sync   /dev/sdd1[root@localhost ~]# mdadm  /dev/md0 -a /dev/sdb1      #将sdb1 添加到 md0中
mdadm: added /dev/sdb1[root@localhost ~]# mdadm -D /dev/md0 | grep sdb15       8       17        -      spare   /dev/sdb1[root@localhost ~]# umount /dev/md0       #先卸载md0
[root@localhost ~]# mdadm -S /dev/md0     #停止阵列 md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -As /dev/md0     #启动md0 并扫描 配置文件
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jun 22 09:09:38 2021
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistentUpdate Time : Tue Jun 22 10:51:34 2021
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1Layout : left-symmetric
Chunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 71f5d2f1:6c7c50ac:785f4ba3:58b2aa00
Events : 42Number Major Minor RaidDevice State
3 8 65 0 active sync /dev/sde1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd15 8 17 - spare /dev/sdb1

什么是他们说的RAID磁盘阵列?有啥用?相关推荐

  1. 10分钟认识RAID磁盘阵列技术!!!

    首先声明这是转贴,因为我认为写的很不错,所以拿来和大家一起分享!!!! RAID磁盘阵列技术简述- - 在计算机发展的初期,"大容量"硬盘的价格还相当高,解决数据存储安全性问题的主 ...

  2. RAID磁盘阵列的原理与RAID0搭建

    什么是RAID磁盘阵列 RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为廉价磁盘冗余阵列.简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按 ...

  3. 认识RAID磁盘阵列

    认识RAID磁盘阵列 前几天在公司整理办公桌时找到了一份关于RAID的文档,对RAID介绍的很详细,这几天我利用空闲时间把这份文档录入到了电脑里,现分享给大家~ 认识RAID磁盘阵列 廉价冗磁盘阵列( ...

  4. linux+取消磁盘阵列,Linux下彻底关闭某个RAID磁盘阵列

    1.查看RAID磁盘阵列信息,确认一下要关闭哪个.如:关闭md0这个阵列 [root@godben ~]# cat /proc/mdstat Personalities : [raid6] [raid ...

  5. linux怎么取消raid磁盘阵列,Linux下彻底关闭某个RAID磁盘阵列

    1.查看RAID磁盘阵列信息,确认一下要关闭哪个.如:关闭md0这个阵列 [root@godben ~]# cat /proc/mdstat Personalities : [raid6] [raid ...

  6. LVM逻辑卷,RAID磁盘阵列

    磁盘管理: 有关硬盘的识别,linux根据设备类型对存储设备进行识别,如果是IDE设备, 在计算机中会被识别为hd,第一个IDE设备会被识别为hda,第二个IDE设备会被识别为hdb,依次类推.如果是 ...

  7. raid 物理盘缓存状态_使用MegaCli工具查看Raid磁盘阵列状态

    文章本身我不做过多修改了,在这里我就把自己在安装时候碰到的难点跟大家提下. 1.何处下载? 首先,根据文章中的路径已经下载不到相应的文件了,在此我们就自己到http://www.lsi.com的网站上 ...

  8. h710阵列卡支持最大硬盘_DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)

    DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例) 分享到: 作者来源: 未知       发布时间:2013-01-12 简介 我们可通过扩充容量和 / 或改变 RAID 级别的方式来 ...

  9. Linux RAID磁盘阵列

    RAID磁盘阵列 什么是RAID RAID是磁盘阵列的英文缩写,多块磁盘组成了一个组合,一起完成存储任务,就是磁盘阵列. RAID几种常用的类别(组合) RAID0:条带卷:最低磁盘个数2+,空间利用 ...

  10. linux系统安装如何设置raid,在RAID磁盘阵列下如何搭建Linux系统

    因为RAID磁盘阵列的存储速度比单个硬盘高,在安装系统的时候一般会选择搭建在RAID磁盘阵列,下面小编就给大家介绍下RAID磁盘阵列搭建Linux系统的方法. 新配了台电脑,准备装个双系统,windo ...

最新文章

  1. 深入Java泛型(二):通配符与嵌套
  2. Android --- 好用的图片查看器
  3. python用缩进来写模块_python学习笔记
  4. bgi::detail::content用法的测试程序
  5. OpenFOAM程序开发的基本知识(基本术语)
  6. 【不屈】生如蝼蚁,当立鸿鹄之志
  7. RecyclerView复用item导致数据混乱
  8. 损失函数、python实现均方误差、交叉熵误差函数、mini-batch的损失函数
  9. 最短路算法(3种算法)
  10. C11头文件threads.h声明了创建和管理线程,信号,条件变量的函数
  11. 逆向 Mac 应用 Bartender
  12. 深度之眼 alexnet_AlexNet带给了深度学习的世界
  13. Linux下类似美图秀秀的软件,美图秀秀在Deepin下能用到Linux版、网页版及Wine版
  14. 西门子 Process Simulate学习笔记(一)
  15. linux系统sip1 login,1.1.1.1 SIP终端节点配置
  16. php 获取照片信息,PHP读取照片信息
  17. java发送公众号/服务通知模板消息到指定用户(完整流程|亲测可用)
  18. c语言程序设计上海理工,2017年上海理工大学医疗器械与食品学院854C程序设计考研题库...
  19. java aes ecb_java使用AES加密解密 AES-128-ECB加密
  20. ipad好用的思维导图软件有哪些

热门文章

  1. 中国科学院计算机网络信息中心考研,中科院计算机网络信息中心考研问答
  2. 第四章-循环程序设计代码实例(C++蓝豹子)
  3. Java是一门什么样的语言?
  4. Java:apache.poi读写Excel文件
  5. Android项目打包生成apk文件
  6. 《MongoDB入门教程》第03篇 MongoDB基本概念
  7. 灵魂拷问!跟我一起手写EventBus吧,详细的Android学习指南
  8. Python网络爬虫实战练习:爬取豆瓣图书信息
  9. 如何录制电脑正在播放的声音及音乐?
  10. SAP MDG和SAP MDM的区别