码农行者 码农行者
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

DeanWu

软件工程师
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux基础系列 - 磁盘Raid相关总结

    • 分类
      • Raid 级别
        • Raid0
        • Raid1
        • Raid5
        • Raid6
        • Raid10
        • 参考
    • 运维
    • linux
    DeanWu
    2019-04-01
    目录

    Linux基础系列 - 磁盘Raid相关总结

    Raid, 是 Redundant Array of Independent Disks 的缩写,中文译为“廉价磁盘冗余阵列”。是一种用普通磁盘来提供快速、高效、安全的磁盘存储技术。

    # 分类

    Raid,分为硬件 Raid 和 软件Raid。硬件Raid使用特殊的控制器来实现,软件Raid则只用操作系统的驱动程序来实现。

    • 入门级Raid卡(控制器),该类型raid卡为集成到主板或价格便宜的raid卡,性能与软件raid类似。若操作系统不支持软raid, 可尝试使用该类型raid卡。
    • 企业级Raid卡(控制器),该类型raid卡功能丰富单价格昂贵。它们具有软件阵列中无法实现的某些功能,并且从未在低成本控制器中实现,如缓存,热交换和备用电池。此外,某些RAID级别(如RAID50和RAID60)只能使用高端控制器创建。
    • 软件Raid,该类型依赖操作系统的驱动程序实现,无需硬件的控制器。比较灵活,但功能相对比较简单。

    # Raid 级别

    Raid,有许多中方式来组织阵列中的数据,这种方式叫做Raid 级别。不同的Raid级别有不同的的访问速度和容错能力。Raid0不具有容错能力。级别1、1E、5、50、6和 10 具有不同程度的容错能力 - 如果阵列中的一个硬盘驱动器发生故障,数据仍然可以在运行中重建,并且不会发生 访问中断。

    各级别关系大致如下:

    Raid级别2、3和4在理论上已定义,但在实践中很少使用。

    各磁盘级别区别大致如下:

    下面详细说下他们的原理及优缺点。

    # Raid0

    RAID 0可跨任意数量(至少2个)的磁盘分割数据,从而实现更高的数据吞吐量。从多个磁盘读取单个文件,使其可以访问所有磁盘的速度和容量。此RAID级别通常称为条带化,具有提高性能的优势。但是,它不会促进任何类型的冗余和容错,因为它不会复制数据或存储任何校验信息。两个磁盘都显示为单个分区,因此当其中一个磁盘发生故障时,它会破坏阵列并导致数据丢失

    好处

    • RAID 0在读写操作中提供出色的性能。
    • 使用所有存储容量,没有开销。
    • 该技术易于实施。

    缺点

    • RAID 0不具有容错能力。如果一个驱动器发生故障,则RAID 0阵列中的所有数据都将丢失。它不应该用于任务关键型系统。

    业务场景

    • 直播,IPTV,VOD边缘服务器
    • 其他要求速度,可靠性次之的业务

    # Raid1

    RAID 1向磁盘驱动器中写入和读取相同的数据。此过程通常称为数据镜像,其主要功能是提供冗余。如果阵列中的任何磁盘发生故障,系统仍可以从其余磁盘访问数据。使用新磁盘替换故障磁盘后,数据将从正常运行的磁盘复制到新磁盘以重建阵列。RAID 1是创建故障转移存储的最简单方法。

    好处

    • RAID 1提供出色的读取速度和与单个驱动器相当的写入速度。
    • 如果磁盘发生故障,则无需重建数据,只需将其复制到替换磁盘即可。
    • RAID 1是一种非常简单的技术。

    缺点

    • 主要缺点是有效存储容量只是总驱动器容量的一半,因为所有数据都被写入两次。

    业务场景

    • 对数据可靠性要求比较高的业务

    # Raid5

    RAID 5将数据块划分到多个磁盘(如RAID 0),但是,它还存储奇偶校验信息(可以准确描述大量数据的少量数据),用于在磁盘发生故障时恢复数据。此级别提供速度(从多个磁盘访问数据)和冗余,因为奇偶校验数据存储在所有磁盘上。如果阵列中的任何磁盘发生故障,则会从剩余的分布式数据和奇偶校验块中重新创建数据。它使用大约三分之一的可用磁盘容量来存储奇偶校验信息。

    好处

    • 读取数据事务非常快,而写入数据事务稍慢(由于必须计算奇偶校验)。
    • 如果驱动器发生故障,您仍然可以访问所有数据,即使在更换故障驱动器且存储控制器重建新驱动器上的数据时也是如此。

    缺点

    • 驱动器故障会影响吞吐量,但这仍然是可以接受的。
    • 这是一项复杂的技术。如果使用4TB磁盘的阵列中的一个磁盘发生故障并被替换,则恢复数据(重建时间)可能需要一天或更长时间,具体取决于-阵列上的负载和控制器的速度。如果另一个磁盘在此期间出现故障,数据将永远丢失。

    业务场景

    • 文件存储服务器和应用服务器。

    # Raid6

    Raid 6类似于RAID 5,但它提供了更高的可靠性,因为它存储了额外的奇偶校验块。它允许有2块磁盘同时损坏而不影响整体阵列的数据完整性。

    好处

    • 与RAID 5一样,读取数据事务非常快。
    • 如果两个驱动器发生故障,您仍然可以访问所有数据,即使在更换故障驱动器时也是如此。因此RAID 6比RAID 5更安全。

    缺点

    • 由于必须计算额外的奇偶校验数据,写入数据事务比RAID 5慢。在一份报告中,我读到写入性能降低了20%。
    • 驱动器故障会影响吞吐量,但这仍然是可以接受的。
    • 这是一项复杂的技术。重建一个驱动器发生故障的阵列可能需要很长时间。

    业务场景

    • 多用于大型文件存储系统及应用服务器

    # Raid10

    RAID 10将RAID 1的镜像与RAID 0的条带化相结合。或者换句话说,它将RAID 1的冗余与RAID 0的性能提升相结合。它最适合需要高性能和安全性的环境。

    好处

    • 如果RAID 10配置中的某个磁盘出现问题,则重建时间非常快,因为所需的只是将幸存镜像中的所有数据复制到新驱动器。对于1 TB的驱动器,这可能只需要30分钟。

    缺点

    • 一半的存储容量用于镜像,因此与大型RAID 5或RAID 6阵列相比,这是一种昂贵的冗余方式。

    业务场景

    • 高利用率的数据库服务器或服务器执行大量写入操作。

    # 参考

    • https://www.prepressure.com/library/technology/raid (opens new window)
    • https://datapacket.com/blog/advantages-disadvantages-various-raid-levels/ (opens new window)
    • http://www.raid-calculator.com/raid-types-reference.aspx (opens new window)
    #Linux#Raid#Linux基础系列#运维知识库
    上次更新: 2023/03/19, 15:09:33
    最近更新
    01
    chromebox/chromebook 刷bios步骤
    03-01
    02
    redis 集群介绍
    11-28
    03
    go语法题二
    10-09
    更多文章>
    Theme by Vdoing | Copyright © 2015-2024 DeanWu | 遵循CC 4.0 BY-SA版权协议
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式