硬盘架构原理及其算法RAID工作原理写惩罚

news2024/11/17 8:40:46

一、硬盘的架构以及寻址原理

硬盘工作原理:

硬盘寻址原理:逻辑顺序磁道、盘片、扇区(顺序CHS)

二、机械硬盘算法

读取算法

寻道算法

个人与企业适合的算法和寻道

个人使用的机械硬盘适合的寻道算法和读取算法是:

对于企业使用机械硬盘适合的寻道算法和读取算法是:

三、垂直盘和叠瓦盘

垂直盘:盘面大小一样

叠瓦盘:盘面大小呈现金字塔结构

四、RAID工作原理

RAID技术背景

RAID基本概念

RAID的数据组织形式(基本单位)

各类RAID工作原理

RAID 0工作原理

RAID 1工作原理

RAID 3工作原理(既要数据安全又要读写速率)

RAID的数据保护方式

RAID 5工作原理

更换校验盘后的异构

RAID 6工作原理

RAID不论什么级别,硬盘容量一定要一致(不管是数据盘还是校验盘)

RAID 10工作原理

写惩罚

RAID 3写惩罚


一、硬盘的架构以及寻址原理

机械硬盘的结构大致包括:盘片、磁头臂、读/写磁头、主轴、硬盘接口和控制电路等。

硬盘通过磁性粒子提供和保存数据。

硬盘工作原理:

- 盘片与磁性粒子- 通过磁头和磁头臂访问磁性- 控制电路通过控制磁头臂访问不同位置的磁性粒子- 主轴旋转让我们的盘片上每一块磁性粒子都得到访问

硬盘寻址原理:逻辑顺序磁道、盘片、扇区(顺序CHS)

CHS模式,H磁头数(Heads)、C柱面【磁道】(Cylinders)、S扇区数(Sectors)。

- 定位磁道- 定位盘片- 定位扇区

1、CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。

  • - 磁头(Heads):每张磁片的正反两南各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头就可以表示数据在哪个磁面。- 桂面(Cylinder)所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。- 扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。

2、知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保存在硬盘的哪个位置。也很容易确定硬盘的容量,其计算公式是:硬盘容量=磁头数*柱面数*扇区数*512字节。

  • 其计算公式是:硬盘容量=磁头数*柱面数*扇区数*512字节。

3、LARGE寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,而是逻辑位置。LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/柱面/扇区三种单位来进行寻址。但为了保持与CHS模式的兼容,通过逻辑变换算法,可以转换为磁头/桂面/扇区三种参数来表示,但表示的也和LARGE寻址模式一样,已不是硬盘中的物理位置,而是逻辑位置了。

CHS寻址大于8GB后会重新编制,而LAB寻址会继续编下去。

  • CHS寻址最大只能编到8000,到8001就得重新开始编址。LAB是做了映射表,8001还可以编址。

二、机械硬盘算法

读取算法

  • 单磁头单区块读取算法:这是最基本的读取算法,也是最早的一种。它是通过单个磁头读取单个扇区的数据。- 多磁头单区块读取算法:这种算法使用多个磁头,以提高读取速度。每个磁头负责读取不同的扇区。- 单磁头多区块读取算法:这种算法可以在单个磁头的情况下读取多个扇区的数据。这通常是通过在磁头上放置多个磁道来实现的。- 预取读取算法:这种算法是通过预先读取数据来提高性能的。当磁头访问一个扇区时,它会同时读取下一个扇区的数据。这样,当访问下一个扇区时,数据已经在内存中了,而不需要等待磁头重新定位。- 磁头寻道算法:这种算法是用于寻找所需数据的磁道。当磁头需要读取数据时,它必须先移动到所需教据所在的磁道。磁头寻道算法可以优化这个过程,以提高读取速度。- 磁盘缓存算法:这种算法是用于管理磁盘缓存的。当数据被读取时,它通常会被缓存在内存中。磁盘缓存算法可以优化缓存的使用,以提高读取性能。

寻道算法

  • 最短寻道时间优先算法(SSTF):该算法会优先选择距离当前磁头位置最近的磁道进行寻道。这种算法可以最大限度地减少寻道时间,但可能会导致某些磁道被优先选择,从而导致其他磁道被忽略。- 扫描算法(SCAN):该算法会按照一个方向移动磁头,直到到达磁盘的一端,然后返回到另一端。这种算法可以保证所有磁道都有机会被访问到,但可能会导致一些磁道等待时间过长。- 循环扫描算法(C-SCAN):该算法与扫描算法类似,不同之处在于在到达磁盘一端后,磁头会立即返回到另一端,而不是等待一段时间。这种算法可以减少等待时间,但可能会导致一些磁道被频繁地访问。- 随机算法(RANDOM);该算法会随机选择一个磁道进行寻道。这种算法可以避免一些问题,如扫描算法可能导致的等待时间过长。但是由于随机选择,可能会导致某些磁道被频繁访问,而其他磁道则被忽略。
  • LOOK算法LOOK算法是一种改进的SCAN算法,它也是一种基于电梯算法的磁盘调度算法。LOOK算法与SCAN算法的不同之处在于,它在到达磁盘的一端后不会立即返回,而是改变方向,直到到达另一端。LOOK算法可以有效地避免磁盘调度算法中出现的"饥饿”现象,即某些磁盘请求长时间得不到满足的情况。- C-LOOK算法C-LOOK算法是一种改进的LOOK算法,它也是一种基于电梯算法的磁盘调度算法。与LOOK算法不同,C-LOOK算法在到达磁盘的一端后会立即返回到另一端,而不是改变方向。这种算法可以减少磁头的移动距离,从而提高磁盘的访问效率。- N-Step-SCAN算法N-Step-SCAN算法是一种基于电梯算法的磁盘调度算法,它可以将SCAN算法的行为更细化,以便更好地平衡磁头的寻道时间和磁盘的访问效率。在N-Step-SCAN算法中,磁头在磁盘上按照扫描路径前进,但是它不是在磁盘的一端直接返回,而是沿着一定的步数(N)向反方向移动,然后再开始下一次扫描。这种算法可以更好地平衡磁头的寻道时间和磁盘的访问效率,从而提高磁盘的读取性能和响应速度。这三种算法都是常见的磁盘调度算法,它们都可以有效地平衡磁头的寻道时间和磁盘的访问效率,提高磁盘的读取性能和响应速度。具体使用哪种算法取决于应用的要求和性能需求。

个人与企业适合的算法和寻道

个人使用的机械硬盘适合的寻道算法和读取算法是:

  • 个人使用的机械硬盘通常默认采用最短寻道时间优先算法(SSTF)和单磁头单区块读取算法。SSTF算法是一种简单而有效的寻道算法,可以最小化磁头寻找所需数据的时间。而单磁头单区块读取算法则是最基本的读取算法,它可以保证数据的可靠性和一致性,但读取速度相对较慢。当然,一些高端的机械硬盘可能会使用更先进的寻道算法和读取法,以提高性能和可靠性。

对于企业使用机械硬盘适合的寻道算法和读取算法是:

  • 通常采用更高级的寻道算法和读取算法,以满足更高的性能和可靠性需求。例如,企业级机械硬盘可能采用更先进的寻道算法,如LOOK、C-LOOK、NStep-SCAN等,这些算法可以更好地平衡磁头的寻道时间和磁盘的访问效率,提高磁盘的读取性能和响应速度。此外,企业级机械硬盘可能采用更高级的读取算法,如多磁头同时读取、多区块同时读取等,以提高磁盘的读取速度和并发性能。总之,企业使用的机械硬盘在寻道算法和读取算法方面要比个人使用的机械硬盘更加先进和复杂,以满足更高的性能和可靠性需求。

三、垂直盘和叠瓦盘

叠瓦盘和垂直盘是两种不同类型的服务器硬盘安装方式,它们之间的区别主要在于安装位置和安装方式:

1.叠瓦盘

  • 叠瓦盘是指硬盘在服务器中水平叠放的安装方式,通常硬盘会平放在服务器的硬盘托架上。
  • 叠瓦盘的特点是安装方便,硬盘之间的间隔较小,有利于节省空间,适合在空间有限的服务器中使用。
  • 叠瓦盘的散热和散热风扇的设计可能会受到硬盘之间的间隔影响。

2.垂直盘

  • 垂直盘是指硬盘在服务器中垂直安装的方式,硬盘通常是沿着服务器的前后方向安装。
  • 垂直盘的特点是硬盘之间的间隔较大,有利于散热和空气流通,可以更好地降低硬盘的工作温度。
  • 垂直盘的安装方式可能需要更多的空间,适合在对散热要求较高的服务器中使用。

总的来说,叠瓦盘和垂直盘的选择取决于服务器的设计和使用环境。在选择硬盘安装方式时,需要考虑到服务器的空间限制、散热需求以及硬盘的数量等因素。根据具体情况选择适合的硬盘安装方式可以提高服务器的性能和稳定性。

其他不同点:

1、性能不同:

  • 垂直盘具有较高读取速度和较低延迟,适合视频剪辑、大型游戏等。
  • 叠瓦盘更适合一次性写入,如监控盘、档案盘或备份。

2、容量和价格不同:

  • 垂直盘容量相对较小,价格较高。
  • 瓦盘容量较大,格较低。

3、数据安全不同:

  • 垂直盘在擦除数据时不会影响附近轨道的数据,安全性较高。
  • 叠瓦盘在频繁修改数据时可能会有影响。

4、缓存不同:

  • 垂直盘缓存较小,通常为32GB或64GB。
  • 叠瓦盘缓存较大,通常为128MB或256MB。

5、厚度不同:

  • 垂直盘通常较厚。
  • 叠瓦盘较薄。

垂直盘:盘面大小一样

叠瓦盘:盘面大小呈现金字塔结构

扇区的数量是有限的,早期扇区编址固定是一个扇区8GB。CHS寻址有极限,由于其机械结构,每个盘片都有一点保留的空间,0-2047。

四、RAID工作原理

RAID(可靠磁盘阵列)防止硬盘单点故障,提高速度。

RAID技术背景

传统计算机系统的问题(硬盘是瓶颈)

  • - 硬盘成为整个系统的性能瓶颈- 有限的硬盘操作,难满足大容量需求- 单个硬盘存放数据,数据可靠性难以保证

RAID基本概念

RAID:Redundant Array of Independent Disks,独立硬盘冗余阵列,RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性。

RAID就是多个盘组成一个组,当一个盘用。

  • 实现方法:硬件RAID和软件RAID。

• 软RAID:

• 硬件RAID:

  • RAID卡:专门完成RAID相关工作。

RAID的数据组织形式(基本单位)

  • 硬盘的条带化:将硬盘空间按照设定的大小分为多个条带,数据写入时也按照条带的大小来划分数据模块。条带(strip):硬盘中单个或者多个连续的扇区构成一个条带,是组成分条的元素。分条(stripe):同一硬盘阵列中的多个硬盘驱动器上的相同“位置”(或者说是相同编号)的条带。多块盘做了RAID后,同样的数据不同的硬盘写相同的扇区,相同的扇区联系到一起逻辑成一个扇区(叫分条)。

各类RAID工作原理

RAID 0工作原理

RAID 0(Redundant Array of Independent Disks 0)是一种基本的RAID级别,它通过将数据分散存储在多个硬盘上来提高性能,但不提供数据冗余备份,磁盘起步2块,最大4块。

数据分割:

  • RAID 0至少需要两块硬盘来工作。当数据写入RAID 0阵列时,数据会被分割成块(block)并分散存储在各个硬盘上。
  • 例如,如果有两块硬盘,数据块1存储在硬盘1上,数据块2存储在硬盘2上,数据块3存储在硬盘1上,依此类推。

并行读写:

  • RAID 0允许并行读写操作,因为数据被分散存储在多个硬盘上,可以同时从多个硬盘读取数据,从而提高读取速度。
  • 同样,写入操作也可以并行进行,不同数据块可以同时写入不同的硬盘。

性能提升:

  • RAID 0的主要优势在于提高读取和写入性能,因为数据可以并行读写,所以总体性能会比单个硬盘更高。
  • 由于数据块被分散存储在多个硬盘上,每个硬盘只需处理部分数据,减轻了单个硬盘的负担,提高了整体性能。

缺点:

  • RAID 0不提供数据冗余备份,如果其中一块硬盘发生故障,整个RAID 0阵列中的数据都会丢失。
  • 由于没有冗余备份,数据恢复较困难,因此不建议将重要数据存储在RAID 0中。

总的来说,RAID 0通过数据分割和并行读写来提高性能,但缺乏数据冗余备份。因此,RAID 0适合对性能要求较高、对数据冗余备份要求较低的场景,如临时数据存储、缓存等。

RAID 1工作原理

RAID 1是一种磁盘阵列(Redundant Array of Independent Disks)级别,也被称为镜像阵列。RAID 1通过数据镜像的方式提供数据冗余备份,保护数据免受硬盘故障的影响。以下是RAID 1的工作原理:

数据镜像:

  • 在RAID 1中,数据会被同时写入至至少两块硬盘中,这些硬盘被称为镜像对。当数据写入其中一块硬盘时,系统会同时将相同的数据写入另一块硬盘,从而实现数据的镜像备份。数据读取:
  • 当需要读取数据时,系统可以从任意一块硬盘中读取数据,因为数据在镜像对中是相同的。这样可以提高读取性能,因为可以同时从两块硬盘中读取数据。

数据写入:

  • 当需要写入数据时,系统会将数据同时写入至两块硬盘中。这样可以确保数据的冗余备份,即使其中一块硬盘发生故障,数据仍然可以从另一块硬盘中恢复。

故障容错:

  • 如果RAID 1中的一块硬盘发生故障,系统可以继续正常运行,并且数据仍然可用。因为数据是镜像备份的,所以即使一块硬盘失效,另一块硬盘上的数据仍然完好无损。

硬盘容量利用率:

  • 由于数据被镜像备份,RAID 1的可用存储容量只能是镜像对中一块硬盘的容量。例如,如果有两块1TB的硬盘组成RAID 1,可用存储容量为1TB,因为数据被完全镜像备份。

总的来说,RAID 1通过数据镜像提供数据冗余备份,确保数据的安全性和可靠性。虽然RAID 1提供了良好的故障容错能力,但由于数据被完全镜像备份,存储效率较低。

RAID 3工作原理(既要数据安全又要读写速率)

RAID 3是一种磁盘阵列(Redundant Array of Independent Disks)级别,它使用奇偶校验位来提供数据冗余和错误检测。以下是RAID 3的工作原理:

数据条带化:

  • 在RAID 3中,数据被分成多个块,并且每个块被写入到不同的硬盘上。通常,数据被条带化(striped)到多个数据盘中,而奇偶校验位则被存储在独立的奇偶校验盘上。

奇偶校验位:

  • RAID 3使用奇偶校验位来存储每个数据块的校验信息。奇偶校验位计算方式是对对应数据块的每个位进行异或运算,结果存储在奇偶校验盘中。

数据写入:

  • 当数据被写入到RAID 3中时,系统会将数据分成块,并将每个数据块与对应的奇偶校验位一起写入到数据盘和奇偶校验盘中。这样可以确保数据的完整性和可靠性。

数据恢复:

  • 如果其中一块数据盘发生故障,系统可以使用奇偶校验位来恢复丢失的数据。通过对其他数据盘中相应数据块进行异或运算,可以计算出丢失的数据块,并将其恢复到新的数据盘中。

读取性能:

  • RAID 3的读取性能通常比写入性能要好,因为数据可以同时从多个数据盘中读取。奇偶校验位可以用来验证读取的数据的完整性。

存储效率:

  • 由于奇偶校验位的存在,RAID 3的存储效率相对较低。通常,奇偶校验盘的容量等于任意一个数据盘的容量,因为每个数据块都需要对应的奇偶校验位。

总的来说,RAID 3通过奇偶校验位提供数据冗余和错误检测能力,以保护数据免受硬盘故障的影响。虽然RAID 3可以提供良好的数据保护和恢复能力,但在存储效率方面可能不如其他RAID级别。

RAID的数据保护方式

  • 方法一:镜像(Mirroring),在另一块冗余的硬盘上保存数据的副本。
  • 方法二:奇偶校验算法(XOR)。- XOR运算广泛地使用在数字电子和计算机科学中。- XOR校验的算法--相同为假,相异为真:- 0&0=0;0&1=1;1&0=1;1&1=0;

RAID 5工作原理

RAID 5(Redundant Array of Independent Disks Level 5)是一种磁盘阵列的配置方式,它通过数据条带化和奇偶校验来实现数据的冗余和容错能力。下面是RAID 5的工作原理:

  • 数据条带化:RAID 5将数据分成多个条带(stripe),每个条带包含数据块和奇偶校验块。数据块是实际存储的数据,而奇偶校验块是通过对数据块进行异或(XOR)运算得到的校验值。
  • 数据分布:RAID 5至少需要三块以上的硬盘来组成,其中一个硬盘存储奇偶校验块,其余硬盘存储数据块。数据和奇偶校验块交叉存储在不同的硬盘上,以实现数据的分布和冗余。
  • 冗余校验:当有一块硬盘损坏时,RAID 5可以通过奇偶校验块和其他数据块的异或运算来计算出丢失的数据块的内容,从而实现数据的恢复。这样即使一块硬盘发生故障,系统仍然可以继续运行。
  • 性能和容量:RAID 5通过条带化提高了数据的读写性能,同时通过奇偶校验提供了数据的冗余和容错能力。RAID 5的容量利用率较高,可以实现较好的性能和容错能力的平衡。

总的来说,RAID 5通过数据条带化和奇偶校验实现了数据的冗余和容错能力,提高了数据的安全性和可靠性。然而,由于计算奇偶校验需要消耗一定的计算资源,因此RAID 5在写入性能方面可能会受到一定影响。

更换校验盘后的异构

  • 校验盘更换后通过CPU重构(重新异或)相同为假0,相异为真10001数据A0010数据B0100数据C0111校验数据101数据A110数据B010数据C001校验数据

• RAID1、3、5都只能一块盘故障

  • 更换了RAID中磁盘,新磁盘如何重构数据?

在RAID中更换了故障磁盘后,如果新磁盘是空的或者之前没有被用作RAID成员,需要进行数据重建(rebuild)操作来恢复数据。以下是一般情况下如何在RAID中重构数据的步骤:

  • 将新磁盘插入到RAID控制器中,并确保RAID控制器能够识别新磁盘。
  • 在RAID控制器的管理界面中找到故障磁盘所在的RAID组(通常会显示为降级状态)。
  • 选择重建(rebuild)选项,通常会有一个“重建”或“重新同步”按钮或选项。启动数据重建过程。
  • RAID控制器会从其他正常的磁盘中读取数据,并将数据重新写入新磁盘中,直到数据完全恢复。
  • 数据重建的时间取决于新磁盘的容量、RAID级别、磁盘速度等因素,可能需要一段时间来完成。
  • 在数据重建过程中,RAID组可能会处于降级状态,这意味着RAID组的性能可能会受到影响。在数据完全重建后,RAID组将恢复正常状态。

请注意,在进行数据重建过程中,最好避免对RAID组进行其他操作,以免影响数据恢复的过程。此外,如果RAID组中有多个故障磁盘或者数据已经损坏,可能无法通过简单的数据重建来恢复数据,需要进行进一步的数据恢复操作。建议在进行任何操作之前备份重要数据,以防意外发生。如果不确定如何操作,建议咨询RAID控制器的厂商或技术支持。

RAID 6工作原理

RAID 6是一种冗余阵列独立磁盘(Redundant Array of Independent Disks)的级别,它提供了比RAID 5更高的容错能力,能够容忍多达两块硬盘的故障。以下是RAID 6的工作原理:

  • 数据条带化:和RAID 5类似,RAID 6也将数据条带化存储在多块硬盘上。每个数据条带包含数据块和两个奇偶校验块,其中一个奇偶校验块是对数据块进行异或(XOR)运算得到的,另一个奇偶校验块是对前一个奇偶校验块进行异或运算得到的。
  • 数据分布:RAID 6至少需要四块以上的硬盘来组成,其中两块硬盘存储奇偶校验块,其余硬盘存储数据块。数据、奇偶校验块交叉存储在不同的硬盘上,以实现数据的分布和冗余。
  • 冗余校验:当有两块硬盘损坏时,RAID 6可以通过两个奇偶校验块和其他数据块的异或运算来计算出丢失的数据块的内容,从而实现数据的恢复。这样即使两块硬盘发生故障,系统仍然可以继续运行。
  • 性能和容量:RAID 6通过数据条带化提高了数据的读写性能,同时通过两个奇偶校验块提供了比RAID 5更高的容错能力。RAID 6的容量利用率相对较低,但提供了更高的数据保护级别。

总的来说,RAID 6通过数据条带化和两个奇偶校验实现了比RAID 5更高的容错能力,提供了更高级别的数据保护。然而,由于计算两个奇偶校验块需要更多的计算资源,因此RAID 6在写入性能方面可能会受到更大的影响。

需要至少N+2(N>2)个硬盘来构成阵列,一般用在数据可靠性、可用性要求极高的应用场合。常见的RAID 6技术有:

  • RAID 6 P+Q
  • RAID 6 DP

  •  RAID6 P+Q需要计算出两个校验数据P和Q,当有两个数据丢失时,根据P和Q恢复出丢失的数据。校验数据P和O是由以下公式计算得来的:
  • P = DO Φ D1 Φ D2...
  • Q=(α*DO) Φ(β*D1)(y* D2)...

RAID 6 DP工作原理

(1)、DP-Double Parity,就是在RAID4所使用的一个行XOR校验硬盘的基础上又增加了一个硬盘用于存放斜向的XOR校验信息

(2)、横向校验盘中P0-P3为各个数据盘中横向数据的校验信息

(3)、例:P0=D0 XOR D1 XOR D2 XOR D3

(4)、斜向校验盘中DP0-DP3为各个数据盘及横向校验盘的斜向数据校验信息

(5)、例:DP0=D0 XOR D5 XOR D10 XOR D15

RAID不论什么级别,硬盘容量一定要一致(不管是数据盘还是校验盘)

RAID 10工作原理

RAID 10是一种结合了RAID 1(镜像)和RAID 0(条带化)的级别,也称为RAID 1+0。它提供了高性能和高容错能力的存储解决方案。以下是RAID 10的工作原理:

  • 镜像:RAID 10首先将所有的硬盘分成两组,每组至少有两块硬盘。每组中的硬盘是镜像的,即数据在一组硬盘上写入后,会同时在另一组硬盘上进行镜像复制,保证数据的冗余备份。
  • 条带化:在每个镜像组内,数据会被条带化存储在多块硬盘上。这意味着数据会被分成多个条带,并分别存储在不同的硬盘上,以提高读写性能。
  • 冗余和性能:RAID 10结合了镜像和条带化的优点,提供了高性能和高容错能力。数据的读取速度可以通过并行读取多块硬盘来提高,同时数据的写入速度也会相对较快。即使一块硬盘发生故障,系统仍然可以继续运行,因为数据有镜像备份。
  • 容量和成本:RAID 10的容量利用率比较低,因为数据需要同时存储在两组镜像硬盘中。此外,RAID 10需要至少四块硬盘来组成,因此成本相对较高。

总的来说,RAID 10结合了镜像和条带化的优点,提供了高性能和高容错能力的存储解决方案。虽然RAID 10的容量利用率较低,成本较高,但在对数据安全性和性能要求较高的场景下是一个非常好的选择。RAID 10适用于需要高性能和高可靠性的企业级应用和数据库系统。

RAID 10是将镜像和条带进行组合的RAID级别,先进行RAID1镜像然后再做RAID 0。RAID 10也是一种应用比较广泛的RAID级别。

RAID 0性能最好,RAID 1有保护能力(保护快,数据复制),RAID 3、5、6写入数据还得算数据,再写入校验(保护比较慢)。

RAID 0最快,同时进行工作,每块盘都写入数据。D1,D2,D3,D4四份数据,两块盘同时写,写两次就写完了。

RAID 1、3、5、6都是做保护,最快的是RAID 1镜像,同时写入两份数据,和写一份速度几乎一样。

RAID 3写入步骤:

  • (1)、写入数据
  • (2)、交给CPU计算校验数据
  • (3)、得到校验数据,再写入校验盘位置

RAID 10的组成:先内部组成两个RAID 1,再将2个RAID 1的逻辑磁盘组成一个RAID 0。

写入:

(1)、先按照RAID 0写,再将数据交给逻辑磁盘,又因为逻辑磁盘有自己的RAID 1。

(2)、逻辑磁盘得到的数据要遵守RAID 1的规则写入。

写惩罚

写惩罚:修改一个数据时,RAID中需要额外读写几次,才能完成这个操作,称为写惩罚。

硬盘写惩罚(Disk Write Penalty)是指在使用RAID级别为RAID 5或RAID 6时,由于数据条带化和奇偶校验的特性,每次写入数据都需要进行额外的读取和计算操作,导致写入性能下降的现象。

在RAID 5中,每个数据条带包含数据块和奇偶校验块,当写入数据时,需要先读取原始数据块和奇偶校验块,然后进行计算得到新的奇偶校验块,并将所有数据重新写入。这样的操作需要额外的读取和计算步骤,增加了写入操作的时间和资源消耗,导致写入性能下降。

在RAID 6中,由于有两个奇偶校验块,写入操作需要进行更多的读取和计算步骤,进一步增加了写入性能的惩罚。

硬盘写惩罚的影响主要体现在写入性能的下降,尤其是在大量随机写入的场景下。为了减轻硬盘写惩罚带来的影响,可以采取以下措施:

  • 使用高性能的硬盘:选择高速的固态硬盘(SSD)或高转速的企业级硬盘可以提高写入性能,减少写入惩罚的影响。
  • RAID控制器缓存:使用具有缓存功能的RAID控制器可以加速写入操作,减少写入性能下降。
  • RAID级别选择:考虑使用RAID 10或其他更适合写入密集型工作负载的RAID级别,可以减少写入惩罚的影响。
  • 定期优化:定期进行RAID阵列的优化和维护,包括数据迁移、校验和重建操作,可以提高写入性能并减轻写入惩罚的影响。

总的来说,硬盘写惩罚是在使用RAID 5和RAID 6级别时需要注意的一个性能问题,通过选择合适的硬盘、RAID级别以及进行定期优化,可以减轻其影响并提高系统的性能。

RAID 3写惩罚

读和写总共4次

在RAID中,修改一个数据时,在RAID中需要额外读写几次才能完成这个操作称为写惩罚。

  • 下面是修改数据结果:

写惩罚5个覆盖写算一次(RAID是并发的)

  • 已知五个新数据(计算操作不算写惩罚)
    • 1、先读取两个旧数据
    • 2、5个新数据与两个旧数据直接XOR或者(5个新数据XOR后再与2个旧数据XOR)
    • 3、覆盖写入新的5个值
    • 4、写入校验值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1665308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Vision Board创客营]--使用openmv识别阿尼亚

文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 🚀🚀五一和女朋友去看了《间谍过家家 代号:白》,入坑二刺螈(QQ头像也换…

杰发科技AC7840——软件Sent_HAL39X

0. 序 使用PWM模拟Sent测试下7840的软件sent功能。 参考链接:SENT协议应用笔记 - TechPlus汽车工坊的文章 - 知乎 SENT协议 1. Sent功能测试 使用提供的软件Sent代码在7840上测试,接收数据OK 2. 参考资料 3. 数据解析 我们个根据上述参考资料尝试解析…

商务英语口语成人考级外语培训之BECkao考级口语篇

在口语考试中,不管实际内容你能说出多少,但准备一些套话,至少还能撑撑场子你们说是不是? 内容阐述 描述事实 1.Im going to describe/present/explain/give you some information about... 2.Id like to say a few words about...…

【Go】Go Swagger 生成和转 openapi 3.0.3

本文档主要描述在 gin 框架下用 gin-swagger 生成 swagger.json 的内容,中间猜的坑。以及,如何把 swagger 2.0 转成 openapi 3.0.3 下面操作均在项目根目录下执行 生成 swagger 2.0 import swagger go get -u github.com/swaggo/gin-swagger go get …

提高静态住宅代理稳定性妙招

在数字化时代的浪潮中,静态住宅代理因其独特的优势,如固定的IP地址、更高的隐私保护性等,逐渐成为网络爬虫、数据分析等领域不可或缺的工具。然而,静态住宅代理的稳定性问题一直是用户关注的焦点。本文将为您揭示提高静态住宅代理…

分布式任务调度框架xxl-job使用手册

官网地址和文档地址:https://www.xuxueli.com/xxl-job/ 一、快速入门 1.1 下载源码 https://github.com/xuxueli/xxl-job https://gitee.com/xuxueli0323/xxl-job 下载完成后有以下模块 1.2 初始化数据库 官方指定mysql8.0,但我是mysql5.7 执行/xxl…

C++相关概念和易错语法(12)(迭代器、string容量调整)

1.迭代器(以string为例) (1)基本理解:在我们刚接触迭代器的时候,我们可以将迭代器理解为改造过的“指针”,这是一个新的类型,指向对应容器中的各个元素。我们可以像指针那样对迭代器…

朋友圈刷屏的粘土风格照片,你体验过了吗?

Remini 的粘土风格真的丑萌丑萌的! 从去年“妙鸭相机”的走红,到今年Remini的刷屏,其实可以看出大众对于图片趣玩的兴趣非常大! 一张普通的照片经过工具的处理,一下子变成新风格,让人眼前一亮。如果你也对…

【代码分享】使用HTML5的Canvas绘制编码说明图片

最急在工作中遇到一个需求,根据给定的编码生成编码说明,像下面这样的效果。 不同含义的编码用横杠分割,然后每个编码下面用箭头指明具体的含义。下面是我使用canvas实现的代码。具体的编码宽度大家可以根据实际情况进行调整,目前…

Excel如何设置密码保护【图文详情】

文章目录 前言一、Excel如何设置密码保护?二、Excel如何取消密码保护?总结 前言 在软件项目开发过程中,会输出很多技术文档,其中也包括保密级别很高的服务器账号Excel文档。为了确保服务器账号相关的Excel文档的安全性&#xff0…

Python经典案例爬取豆瓣Top250电影数据

随着网络数据的日益丰富,如何从海量的信息中快速、准确地提取出有价值的数据,成为了许多开发者和技术爱好者关注的焦点。在这个过程中,网络爬虫技术凭借其强大的数据获取能力,成为了数据分析和挖掘的重要工具。本文将通过一个经典…

二叉树进阶 --- 上

目录 1. 二叉搜索树的概念及结构 1.1. 二叉搜索树的概念 1.2. 二叉搜索树的结构样例 2. 二叉搜索树的实现 2.1. insert 的非递归实现 2.2. find 的非递归实现 2.3. erase 的非递归实现 2.3.1. 第一种情况:所删除的节点的左孩子为空 2.3.1.1. 错误的代码 2…

[QNX] BSP 网络性能优化:调优io-pkt和ClockPeriod提升网速

0 概要 本文介绍如何在QNX系统上优化网络性能,主要通过调整io-pkt和ClockPeriod参数来实现。通过优化,网络吞吐量可以得到显著提升。 1 优化方法 1.1 调整io-pkt的mclbytes参数: io-pkt是QNX系统中常用的网络协议栈,其mclbytes参数指定了…

一、精准化测试介绍

精准化测试介绍 一、精准化测试是什么?二、什么是代码插桩?三、两种插桩方式Offine模式:On-the-fly插桩: 四、jacoco覆盖率报告展示五、增量代码覆盖率监控原理六、精准测试系统架构图七、全量与增量覆盖率报告包维度对比八、全量与增量覆盖率…

视频断点上传

什么是断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成&#xf…

分布式事务?哪几种方式实现?一文看懂!

什么是分布式事务 分布式事务是指在分布式系统中涉及到多个数据库或多个应用程序之间的事务处理,这些数据库或应用程序可能分布在不同的物理节点上,甚至可能位于不同的地理位置。在分布式事务中,需要确保所有参与者的事务操作都能够保持一致性…

SNMPv3-原理浅谈+报文示例+简易配置

个人认为,理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息,更加便于理解协议。 因此本文将在 SNMPv3 协议报文的基础上进行介绍。 SNMPv3 相关 RFC 文档。 关于 SNMPv3 的基本内容介绍,可参考RFC3410-Intro…

vue3中如何更优雅的使用echarts?

echarts在vue或者react中使用存在的问题 每个图表需要从头到尾写地一遍完整的option配置,这样一来的话就会显得十分的冗余在同一个项目中,其实不难发现各类图表设计十分相似,甚至是相同,因此我们没必要一直做重复的工作&#xff…

2.2、Gitea忘记密码重置密码

忘记密码后,管理员可以使用gitea的主程序输入命令重置密码。 gitea admin user change-password --username myname --password asecurepassword

Python多线程与互斥锁模拟抢购余票的示例

一、示例代码: from threading import Thread from threading import Lock import timen 100 # 共100张票def task():global nmutex.acquire() # 上锁temp ntime.sleep(0.1)n temp - 1print(购票成…