RAID2.0优势

一、定义

      RAID2.0技术将硬盘域中的硬盘空间切分成固定大小的物理空间-CK(Chunk64M),实现底层虚拟化,不同硬盘的多个CK组成存储池,相同类型的CK按照RAID策略组成(CKG),CKG将再次切分成更小粒度的逻辑空间Extent(大小512KB-64MB,默认4MB),Extent是存储池中申请空间、释放空间、数据统计和数据迁移的基本单位。再由这些逻辑空间Extent组成LUN(逻辑存储单元)。(Extent再划分为更小粒度的Gain,Thin LUN以Grain为单位映射到LUN),最终LUN映射给主机进行读写。

二、RAID2.0+与传统RAID优势

快速重构:由于热备空间也是按照Chunk分散在多个盘中,因此多个CKG的重构几乎是同时进行,避免了传统RAID发生故障时,写单个热备盘造成的性能瓶颈,大大减少了重构的时间。

硬盘负载均衡:LUN的数据被均匀的分布到阵列内所有的硬盘上,可以防止局部硬盘过热,提升可靠性,在参与业务读写过程中,阵列内硬盘参与度高,提升系统响应速度。

最大化硬盘资源利用率:性能上LUN基于资源池创建,不再受限于RAID组硬盘数量,LUN的随机读写性能可得到大大提升,容量上资源池中的硬盘数量不受RAID级别影响,免除传统RAID环境下有些RAID组空间利用率高有的低的状况,并借助智能精简配置,提升硬盘的容量利用率。

提升存储管理效率:基于RAID2.0技术,我们无需花费过多时间做存储预规划,只需简单讲硬盘组成存储池设置分层策略,从存储池划分LUN即可,后续扩容硬盘或者LUN时,系统会自动从存储池划分所需的空间并自动调整LUN数据分布,使得LUN数据更加均衡的到所有硬盘中。

三、块虚拟化过程

1. 存储系统所有硬盘划分为多个硬盘域,每个硬盘域可以由多块相同或不同类型的硬盘组成,硬盘域的硬盘类型决定了存储池可以创建的存储层级。一个硬盘域里可以创建多个存储池,存储池的数量由硬盘域的容量决定。

2. 存储系统将硬盘域中的存储介质划分为CHUNK。每个CHUNK大小是固定的,不能被修改。

3. 创建硬盘域时,存储系统会创建默认的“热备策略”。当硬盘出现故障时,存储系统会根据硬盘使用情况实时随机分配空闲的CHUNK作为热备空间使用。

4. 在硬盘域中的每个存储池中,最多可以创建三个存储层,每一个存储层由若干个相同类型的CKG组成。

– 高性能层是由SSD盘的CKG组成,性能最高,由于其存储介质成本较高且单盘容量小,适合存放访问频率很高的数据。

– 性能层是由SAS盘的CKG组成,性能较高,由于其存储介质成本适中且单盘容量较大,适合存放访问频率中等的数据。

– 容量层是由NL-SAS盘的CKG组成,性能最低,由于其存储介质成本最低且单盘容量大,适合存放大容量的数据以及访问频率较低的数据。

5. 每一个存储层的CHUNK按照用户在DeviceManager管理界面上设置的“RAID策略”组成CHUNK group,每个CHUNK group的CHUNK均来自于不同的硬盘。用户可以分别设置每一个存储层的“RAID策略”,包括RAID级别以及组成RAID级别的数据块和校验块的个数。

6. 存储系统按照用户在DeviceManager管理界面上设置的“数据迁移粒度”将CHUNK group划分为更小的extent,它是组成thick LUN的最小单位。不同存储池的extent大小可以不同,但同一存储池中的extent大小是统一的。

7. 若干extent组成了用户需要使用的LUN。在处理用户的读写请求以及进行数据迁移时,LUN向存储系统申请空间、释放空间和迁移数据都是以extent为单位进行的。用户在创建LUN时,可以指定容量从某一个存储层中获得,此时LUN由指定的某一个存储层上的extent组成。在用户的业务开始运行后,存储系统会根据用户设定的迁移策略,对访问频繁的数据以及较少被访问的数据在存储层之间进行迁移(此功能需要购买License)。此时,LUN上的数据就会以extent为单位分布到存储池的各个存储层上。

     在用户创建thin LUN时,存储系统还会在Extent的基础上再进行更细粒度的划分(Grain),并以Grain为单位映射到thin LUN,从而实现对存储的精细化管理。

四、Raid2.0技术FAQ

Q1:什么RAID 2.0+能够比传统RAID实现更快的重构?

在传统RAID技术环境中,硬盘发生故障后,系统会启动热备盘,根据RAID策略进行数据重构。当更换故障硬盘后,需要将热备盘中的数据拷贝到新的硬盘中。在此过程中,重构的速度完全取决于热备盘和更换的硬盘单盘的性能,因此,耗时非常长。   

但RAID 2.0+采用了底层虚拟化技术,存储池中的chunk按照RAID级别组成chunk group,因此当硬盘故障时,该硬盘上chunk所在的chunk group会进行重构,即参与重构的硬盘数量非常多。同时热备空间不是来自于一块硬盘,而是随机分配在硬盘域中。

因此,重构的速度不受限于单盘的性能,重构速度非常快,是传统RAID的20倍!

Q2:RAID 2.0+的RAID级别是怎么体现的?

RAID 2.0+的原理是将硬盘组成硬盘域,然后将硬盘划分为更小的单位—chunk,在创建存储池时,需要指定存储池中存储层的RAID策略,即是chunk按照RAID策略组成chunk group。

需要注意的是,硬盘域支持3种硬盘类型,因此,存储池也支持3个存储层,也就是说,一个存储池里面最多可能存在3种RAID策略(每个存储层一种)。

Q3:RAID 2.0+支持的RAID级别有最低盘数的限制么?为什么?

有。例如RAID 5(8D+1P)要求最低需要9块硬盘,这是因为按照RAID 5级别组成chunk group的chunk不能同时来自于同一块硬盘。也就是说组成RAID 5(8D+1P)需要9个chunk,这9个chunk必须来自于9块不同的硬盘。这是基于可靠性角度来考虑的,如果一个chunk group中有两个或两个以上的chunk来自于同一块硬盘,当这块硬盘故障时,将会导致该chunk group无法恢复(由该chunk group的RAID策略决定),从而导致数据丢失。

Q4:RAID 2.0+的热备空间来自于哪里?

RAID 2.0+的热备空间与传存储技术来源不一致,并不是来自于热备硬盘,而是来自于热备chunk(因为是chunk按照RAID级别组成的chunk group),热备chunk则随机分布于整个硬盘域的硬盘中,并不会集中于一块硬盘中。

Chunk group的成员chunk是不是必须是同一种类型的硬盘?能否支持RAID级别动态改变?

    Chunk group成员必须是同一种类型硬盘,不支持RAID级别的动态改变,即当一个存储池创建完成时,它所包含的存储层的RAID级别也就固定了,不能更改。

Q5:为什么RAID 2.0+需要extent,Chunk group和Chunk三层数据结果?不能只使用两层吗?

三层的作用各不相同。Extent是动态分层存储的基本单位;Chunk group是做Chunk的RAID级别数据保护;Chunk是做块虚拟化。 

Q6:为什么要区分extent和chunk,而不把chunk的颗粒度做得很小?

Chunk粒度过小会影响性能,所以不能太小。而extent是动态分级存储的基本单位,不能太大。

Q7:硬盘域的硬盘个数有限制吗?有没有建议值?

硬盘域是有最低盘数的限制的,取决于硬盘域中的存储池以及它的RAID级别、热备策略等;同时也有最高盘数限制,即不能超过规格支持。从可靠性、性能等角度考虑,建议硬盘域中每个层级(每个层级对应不同的硬盘类型)的硬盘数为48块。

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

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

相关文章

机器人控制算法——TEB算法—Obstacle Avoidance and Robot Footprint Model(避障与机器人足迹模型)

1.How Obstacle Avoidance works 1.1处罚条款 避障是作为整体轨迹优化的一部分来实现的。显然,优化涉及到找到指定成本函数(目标函数)的最小成本解(轨迹)。简单地说:如果一个计划的(未来&…

Jmeter测试关联接口

Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式,可供参考。 一、实例场景: 有如下两个接口,通过正则表达式提取器,将第一…

【ROS 2 基础-常用工具】-6 Rviz基础使用

所有内容请查看:博客学习目录_Howe_xixi的博客-CSDN博客

chromium 52 chrome 各个版本发布功能列表(58-84)

chromium Features 58-84 From https://chromestatus.com/features chromium58 Features:41 ‘allow-top-navigation-by-user-activation’ <iframe sandbox> keyword Adds a new keyword named “allow-top-navigation-by-user-activation” for iframe sandbox, wh…

整理uvc驱动相关函数的调用流程

目录 1、uvc_video.c初始化函数的调用关系 2、uvc_queue.c3、uvc_v4l2.c4、v4l2-core5、数据传输1、分配一个gadget请求2、请求一个queue 1、uvc_video.c // uvc_video.c uvc_video_encode_header uvc_video_encode_data uvc_video_encode_bulk uvc_video_encode_isoc uvcg_vi…

【算法|前缀和系列No.4】leetcode238. 除自身以外数组的乘积

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

Linux UWB Stack实现——MCPS帧处理

MCPS帧处理 用于处理IEEE 802.15.4中的相关帧&#xff0c;Frame Processing&#xff0c;简写为&#xff1a;fproc。 在实现中&#xff0c;维护了关于帧处理的有限状态机(FSM)。本文从帧处理的数据结构和部分典型处理实现上进行简要的介绍。 1. 数据结构定义 关于帧处理状态…

如何使用 MiniGPT-v2

MiniGPT-v2 是一个基于视觉语言模型&#xff08;LLM&#xff09;的多任务学习系统。它可以用于各种视觉语言任务&#xff0c;包括图像描述、图像识别、图像-文本对话等。 本文将介绍如何使用 MiniGPT-v2。 MiniGPT-v2 提供了一个简单的在线演示&#xff0c;可以用于测试模型。…

如何取消a链接点击时的背景颜色

引言 在网页设计中&#xff0c;链接是非常重要的元素之一。当用户点击链接时&#xff0c;通常会出现一个背景颜色或者下划线来表示链接的状态。然而&#xff0c;有时候我们可能希望取消链接点击时出现的背景颜色&#xff0c;以便更好地控制链接的外观。本文将介绍如何取消a链接…

2023.10.18

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slot…

手机怎么监控电脑?

随着企业对电脑监控需求的增加&#xff0c;越来越多的管理者意识到使用电脑监控电脑的不便性&#xff0c;一旦外出就无法实时查看监控。其实可以用手机实现监控电脑的需求&#xff0c;只需在被监控端安装电脑监控软件后&#xff0c;将电脑设备和员工信息进行绑定&#xff0c;使…

npm 执行命令时报错npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve

npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue-office/docx1.3.0 npm ERR! Found: vue-demi0.14.6 npm ERR! node_modules/vue-demi npm ERR! vue-demi“^0.14.6” from the root project npm ERR! vue-demi“*” from …

linux系统编程之一

1&#xff09;fcntl的使用方法 fcntl作用:可以用fcntl函数改变一个已打开的文件属性而不必重新打开文件&#xff1b; 堆排序是完全二叉树&#xff0c;但不是排序二叉树&#xff1b; 排序二叉树要求兄弟节点之间有大小关系&#xff0c;比如说左小右大&#xff1b; 堆排序仅要求…

神经网络硬件加速器-DPU分析

一 DPU概述 DPU是专为卷积神经网络优化的可编程引擎&#xff0c;其使用专用指令集&#xff0c;支持诸多卷积神经网络的有效实现。 1、关键模块 卷积引擎&#xff1a;常规CONV等ALU&#xff1a;DepthwiseConvScheduler&#xff1a;指令调度分发Buffer Group&#xff1a;片上数据…

加深我对typeScript的印象(、|、Partial、Required、Pick、Omit)

发现有错误、或者理解错误&#xff0c;及时联系我&#xff0c;感谢&#xff01;&#xff01; 文章目录 1、‘&’符号2、‘|’符号3、‘‘Partial’’4、‘Required’5、‘Pick’6、 ‘Omit’ testA、testB、testC是我下面要用到的类 type testA {name: string,age: numbe…

Can Language Models Make Fun? A Case Study in Chinese Comical Crosstalk

本文是LLM系列文章&#xff0c;针对《Can Language Models Make Fun? A Case Study in Chinese Comical Crosstalk》的翻译。 语言模型能制造乐趣吗?中国滑稽相声个案研究 摘要1 引言2 问题定义3 数据集4 使用自动评估生成基准5 人工评估6 讨论7 结论与未来工作 摘要 语言是…

旧版Mac如何装新系统

macOS Ventura 最低系统需要&#xff0c;17年序列电脑。老电脑15年的&#xff0c;无法安装新系统。使用方法直接采用大佬方法 一.在GitHub下载 OpenCore、Hackintool OpenCore 用来修改系统的机型&#xff0c;修改后可直接在软件更新中更新macOS Ventura。 Hackintool 用来生…

基于JAVA+SpringBoot+UniApp+Vue的前后端分离的手机移动端图书借阅平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会信息化的快速…

Pandas与数据库交互详解

Pandas 是一个强大的数据分析库&#xff0c;可以与各种数据库进行交互&#xff0c;从而可以方便地从数据库中读取数据、分析数据&#xff0c;并将结果写回数据库中。以下是使用 Pandas 与数据库交互的一般步骤&#xff1a; 一 、数据库交互 安装必要的库&#xff1a;首先&…

标签页的使用

目录 1、引用TabSheet.h和TabSheet.cpp文件&#xff1a; 2、主窗口添加标签页&#xff1a; &#xff08;1&#xff09;、标签页的创建和属性更改 &#xff08;2&#xff09;、添加俩个标签页的类 &#xff08;3&#xff09;、主窗口添加成员变量 &#xff08;4&#xff09…