RAID扫描机制实现.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第PAGE12页, 共 NUMPAGES \* Arabic 12页 RAID扫描机制实现 Storware V2的扫描功能包括RAID Group和RAID LUN的扫描发现等流程,扫描功能的实现,实际上是从磁盘的DDF区读取数据,分析磁盘角色,上报RAID Group、RAID LUN等信息。虽然扫描功能与DDF功能紧密相连,但本文档着重研究扫描的具体实现流程,与DDF相关的细节问题请参考《STORWARE V2 DDF介绍》文档的描述。 扫描时机 扫描功能主要用于两个时机: 1、磁盘上下线,包括三种方式:磁盘物理被拔插,磁盘错误处理导致磁盘上下电,中间层offline,驱动给平台提供了快速通道,磁盘插拔通过快速通道上报给扫描模块。 2、设备重启,设备上电以后需要扫描所有磁盘的DDF来组装RAID Group和RAID LUN; 以上所列情况的扫描流程是完全相同的,都是调用相同的扫描接口函数,无论是只插拔一块磁盘还是同时插拔多块磁盘,对软件处理来说都是一块一块来完成扫描流程。 读取DDF流程 对于读取DDF的流程来说,无论是RG DDF还是LUN DDF,处理流程都类似,都需要先读取主区,再读取备区,通过所有成员磁盘的主备区数据来裁决(冲突处理)如何组成RAID Group 、RAID LUN。具体流程如下: 下发读取命令到DISK IO,Disk IO返回读取结果 检验DDF是否有效(通过校验CRC、签名等) 如果主备区数据一致,则将该磁盘加入生成任务队列 如果主备区数据不一致,该磁盘进入冲突任务队列 无论DDF的主备区数据是否一致,继续读取其它磁盘 如果主区读取失败,备区读取成功,则用备区数据写主区,并返回写结果 如果主区读取成功,备区读取失败,则用主区数据写备区,并返回写结果 如果主、备任意一个区域出现写失败,则通知LUN该磁盘有IO错误,由LUN决定是否踢盘,并将该磁盘标记为Failed。 注: 读DDF时,是每一块磁盘先读取主区,在读取备区(纵向) 写DDF时,是先写所有成员盘的主区,再写所有成员盘的备区(横向) 扫描流程 RG 扫描流程 图1 RG扫描流程 RG扫描流程的具体说明如下: 接收PD加入的消息,启动扫描流程 从磁盘的RG DDF区读取DDF的数据 判断fauty位是否置位,如果置位则通知PD故障盘点灯 如果不是故障盘,则通过in_group位判断是否为成员盘 如果是成员盘则判断对应uuid的RG是否存在 如果RG存在,则加入RG,并生成VD(对一个LUN来说,每扫描一块磁盘,就生成一个VD) 如果RG不存在则生成RG节点,并通知VD模块生成VD,VD通知LUN进行扫 描 磁盘为成员盘的流程 图2 磁盘为成员盘的处理流程 磁盘为成员盘的流程处理说明: 分析磁盘的DDF的in_Group位得出该磁盘为RG的成员盘 如果该RG存在,则该磁盘加入该RG 如果该RG不存在,则创建该UUID的RG 通知Disk VD模块生成VD 通知LUN SCAN模块有VD加入 LUN SCAN模块启动扫描线程 注: in_group位表示该磁盘是否属于RAID Group的,主要用于区别空白盘,全局热备盘;如果能够判断该字段,就可以决定扫描时是否需要读取RAID Group数据区和虚拟磁盘数据区的内容;该字段是在创建RAID Group时设置的,删除RAID Group时会清除,其它任何操作都不会更新该字段; 对于踢出的盘有两种情况,拔盘导致被踢,故障导致被踢;如果故障被踢,又分为两种情况,自检通过就会初始化,不通过就不再处理; 若被踢出的磁盘又插入到系统中,重启后,对于没有初始化的故障盘和拔出导致被踢的盘,扫描时会认为是RAID Group中的盘,这样就会与原RAID Group冲突,冲突处理后,原RAID Group正常显示,被踢盘仅显示磁盘 LUN 扫描 LUN SCAN在LUN中所处位置 图3 LUN Scan的位置 子模块 说明 LUN MGT 处理LUN模块管理平面的内容,包括:LUN特性管理命令行,管理LIB库,内核态外部模块接口实现(包括内核态管理命令业务流程实现,事件处理接口实现) LUN Core 维护LUN存储信息和LUN虚拟磁盘存储信息,并提供管理接口;算法通用流程处理;包括的特性:同步、重建、局部重建等; LUN Scan 处理虚拟磁盘的插拔及LUN结点的组装 LUN DDF 维护LUN相关的DDF信息并保存到物理磁盘,提供读写及解析,冗余备份及错误恢复等功能 LUN IO 算法在数据通道上的通用处理流程,主要包括对Cache下发数据的预处理,子命令拆分,并下发给具体算法处理 RAID Algorithm 具体的RAID类型,主要包括RAID5 加入的VD不属于已有LUN 图4 加入的

文档评论(0)

添香小铺 + 关注
实名认证
服务提供商

专注于产业研究、商业计划、房地产营销策划、企业运营及咨询管理方案撰写,欢迎咨询。

1亿VIP精品文档

相关文档