day24Raid磁盘冗余阵列

Raid磁盘冗余阵列

RAID,全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列。

这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。

磁盘冗余阵列,就是将很多块硬盘组合成一个整体,不同的RAID级别,可以实现不同的功能
如加速数据读写、如实现数据备份。

Raid特性

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

 

不同的Raid级别

由于技术角度因素、成本控制因素等,不同的企业在数据的可靠性以及性能上做了权衡,制定出不同的Raid方案

Raid 0

RAID0磁盘总容量

两个或两个以上相同型号容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。

RAID0特点

  • 至少需要两块磁盘
  • 数据==条带化==分布到磁盘,==高的读写性能==,100%==高存储空间利用率==
  • 数据==没有冗余策略==,一块磁盘故障,数据将无法恢复
  • 应用场景:
    • 对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储 
备注
条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术

磁盘条带化是指利用条带化技术就是将一块连续的数据分成很多小部分并把它们分别存储到不同磁盘上去。

 

 

数据依次写入物理硬盘,理想状态下,硬盘读写性能会翻倍,性能大于单个硬盘。

但是raid 0 任意一块硬盘故障都会导致整个系统数据被破坏,数据分别写入两个硬盘设备,没有数据备份的功能。

raid0场景

Raid 0 适用于对于数据安全性不太关注,追求性能的场景。

 

 

raid 1

由于raid 0的特性,数据依次写入到各个物理硬盘中,数据是分开放的,因此损坏任意一个硬盘,都会对完整的数据破坏,对于企业数据来说,肯定是不允许。

Raid 1技术,是将两块以上硬盘绑定,数据写入时,同时写入多个硬盘,因此即使有硬盘故障,也有数据备份。

 

 

 

 

但是这种方式,无疑极大降低磁盘利用率,假设两块硬盘一共4T,真实数据只有2TB,利用率50%,如果是三块硬盘组成raid 1,利用率只有33%,也是不可取的。

 

 

 

raid 5

 

 

RAID5特点:

  • 至少需要3块磁盘
  • 数据==条带化==存储在磁盘,==读写性能好==,磁盘利用率为(n-1)/n
  • 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
    • 校验算法是计算机二进制的的异或运算(了解即可)
    • 只能允许坏掉一块盘。
  • 是目前综合==性能最佳==的==数据保护==解决方案
  • 兼顾了存储性能、数据安全和存储成本等各方面因素(==性价比高==)
  • 适用于大部分的应用场景
  • 可以看到raid 5 是两两数据就会计算出一个校验值,存储在一个硬盘上
    • 如果遇见磁盘损坏,且只能挂掉一块,还是可以用其他磁盘恢复数据

 

 

 

 

RAID6特点:

  • 至少需要4块磁盘
  • 数据==条带化==存储在磁盘,读取性能好,容错能力强
  • 采用==双重校验==方式保证数据的安全性
  • 如果==2块磁盘同时故障==,可以通过两个校验数据来重建两个磁盘的数据
  • 成本要比其他等级高,并且更复杂
  • 一般用于对数据安全性要求==非常高==的场合

Raid 10

RAID10特点:

  • RAID10是raid1+raid0的组合
  • 至少需要4块磁盘
  • 两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
  • 兼顾==数据的冗余==(raid1镜像)和==读写性能==(raid0数据条带化)
  • 磁盘利用率为50%,成本较高

  • 只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据。

  • 因此raid10是最实用的方案。

软件RAID和硬件RAID的差异

  • 软件RAID额外消耗CPU资源,性能弱
  • 硬件RAID更加稳定,软件RAID可能造成磁盘发热过量,造成威胁
  • 兼容性问题,软件RAID依赖于操作系统,硬件RAID胜出

  • 可见,硬件Raid、完虐软件Raid。

操作练习(搭建raid10)

复制代码
1.安装命令
[root@nodel ~17:29:59]# yum install mdadm -y
2.创建raid 10命令
[root@nodel ~17:30:11]#madadm -C /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-bash: madadm: command not found
[root@nodel ~17:30:15]#mdadm -C /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
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.查看raid 10信息
[root@nodel ~17:34:19]#mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Apr  7 17:30:33 2022
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Thu Apr  7 17:32:17 2022
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : nodel.yuchao_linux.cc:0  (local to host nodel.yuchao_linux.cc)
              UUID : 94196fb9:2843ab04:5110b78c:714ba464
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       64        3      active sync set-B   /dev/sde
4.格式化创建文件系统
[root@nodel ~17:34:52]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=327296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5236736, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
5.挂载使用
[root@nodel ~17:40:12]#mkdir /opt/raid
[root@nodel ~17:41:19]#mount /dev/md0 /opt/raid/
[root@nodel ~17:41:43]#mount -l|grep md0
/dev/md0 on /opt/raid type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=2048,noquota)
[root@nodel ~17:41:56]#
复制代码

 

posted @   虎躯常震  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示