当前位置: 首页 > 原理解释

raid 5原理-raid5 存储原理

所谓的 RAID 5,听起来像是搞了个复杂的数学题,把一堆硬盘拼凑在一起,还得算出“希夫数”啥的公式。
实际上说白了,就是给硬盘组了个“共享大账本”,每个数据块只存一次,多出来的几份数据就分给这几块盘轮流读写。
这就好比几个人合伙记账,每人只记自己那一份,但账本来的是人手一份,你翻这页,我翻那页,反正内容一样,哪位也不赖账。 它最核心的那个“坑”,实际上就是磁盘阵列里那块“轮转走位”的这块地。
你想象一下,你有一张白纸,上面印着无数行字。正常情况下,你写一句话,那行字就在当前位置,哪位去翻都行。但 RAID 5 有个“踢馆”环节,你每写一个字,这一行字都务必向前挪一位,挪完再写下一个。
这玩意儿有点像排队做饭,大家隔待会儿就得换个人去切菜,不然菜就堆在手里别处找不着了。 这种设计别看稳,但代价也是真不小。
你看,要是你写一个字,它的物理位置得变,那么这一行数据的写入工夫就被延长了。按照数学公式,写入工夫大约是原来的两倍。
这就好比你在写文章,原本你写这一句占 100 秒,目前你每动一下,就得先把手机往椅子上一放,站起来再写这段,效率直接拉胯。
这就是为啥大量老派架构不如何用写,多读多写才是王道。 更有趣的是那个“坑位”的争夺战。出于每一行数据都占了一个物理盘位,故此你往阵列里加硬盘,就得腾出一个空位。
这就好比你盖房子,新加一块砖得砸一块旧砖铺上去。
要是你只在 2 块盘上跑 RAID 5,结局是两块盘都得分担双倍的压力。
要是加上第三块,压力又翻倍,变成两块盘各扛一半。
这就叫“为了省空间,实际上压力全加了”。 在写操作上,RAID 5 对顺序性特别挑剔。出于它得整行整行地挪,故此要是你前几行是乱序的,后几行又是乱序的,那后面挪行的时候,实际上是在把前面乱序的位移的,最终整理出来的顺序是完美的。
反过来,要是你写的时候顺序乱了,最终解出来的顺序才是乱的,这时候再往里面写东西,那个顺序就彻底崩了。
故此一般写数据都得按顺序来,要么起码先把顺序搞对。 读操作倒是没这难题,出于数据本来就是分块存有,你读待会儿这一页,读待会儿那页,别看得挪位置,但数据本身的状态一直是对齐的,故此读速度一般凑合,别看比单盘慢点,但整体利用率挺高。 还有个细节大量人好办忽略,就是数据同步。RAID 5 里的那几份数据,实际上是分散在几块盘上的,每块盘里只有一份。
要是说写操作是轮流挪位,读操作就是轮流读取。
这就仿佛几个人分着看同一本账本,你翻页,旁边的人翻下一页,反正信息是一模一样的。但在写的时候,出于数据在移动,这几个人可能需求与此同时动作,避免数据损坏。 并且 RAID 5 在写的时候,还涉及数据去重。出于数据块是共享的,要是你两块盘里都存了同一个文件,而这块数据又正好要挪位,这时候要是两块盘与此同时写入,可能会形成覆盖。
这时候系统得想办法,要么只写一份,要么先存一份再往另一块写。
这略微有点费事,得看硬件和驱动如何配置。 最终聊点实际的,你在系统里哪看到了 RAID 5?大约率是那些 5 盘要么 6 盘起步的阵列,特别是要是你看到系统提示里有个“未对齐”要么“状态不一致”的警告,那根本就是 RAID 5 在跟你较劲。它最出名的就是延迟高、写入慢,但也正出于这个,对缓存友好,读操作不卡。
要是你时常要拷贝大文件,要么跑数据库那种读多写少的场景,RAID 5 可能是个不错的选择。毕竟它省了空间,省了那些复杂的同步逻辑,别看速度上没法跟纯读架构比,但起码不会让你整个系统变成一台“黄油机”,读起来起码还能有点节奏感。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站