2516|0

6423

帖子

17

TA的资源

版主

楼主
 

全闪存阵列到底是什么 [复制链接]

转自http://mp.weixin.qq.com/s?__biz= ... NTYzMw==&scene=6#rd

6大模块


XIO软件分为六个模块,来实现复杂的功能。包括三个数据模块R,C,D,三个控制模块P,M,L。
  • P:Platform,平台模块。

    • 监控系统硬件,每个节点有个P模块在运行。

  • M:Management,管理模块。

    • 实现各种系统配置。通过和XMS管理服务器通信,执行任务,比如创建卷,LUN的掩码,等从命令行或图形界面发过来的指令。有一个节点运行M模块,其他节点运行另一个备用M模块。

  • L:Cluster,集群模块。

    • 管理集群成员,每个节点运行一个L模块。


  • R:Routing,路由模块。

    • 其实就是把发过来的SCSI命令翻译成XIO内部的命令。
    • 负责来自两个FC和两个iSCSI接口的命令,是每个节点的出入口看门大爷。
    • 把所有读写数据拆成4K大小。
    • 计算每个4K数据的HASH值,用的是SHA-1算法。
    • 每个节点运行一个R模块。

  • C:Control,控制模块。

    • 包含了一个映射表:A2H(数据块逻辑地址——Hash值)。
    • 镜像,去重,自动扩容等高级数据服务。

  • D:Data,数据模块。

    • 包含了另一个映射表:H2P(Hash值——SSD物理存放地址)。可见,数据的存放地址跟逻辑地址无关,只跟数据有关,因为Hash值通过数据算出来。
    • 负责对SSD的读写。
    • 负责RAID数据保护技术:XDP,XtremIO Data Protection。



读流程


  • Host把读命令通过FC或iSCSI接口发送给R模块,命令包含数据块逻辑地址和大小。
  • R模块把命令拆成4KB大小的数据块,转发给C模块。
  • C 模块查A2H表,得到数据块的Hash值,转发给D模块。
  • D模块查H2B表,得到数据块在SSD中的物理地址,读出来。


不重复的写流程

1.    Host把写命令通过FC或iSCSI接口发送给R模块,命令包含数据块逻辑地址和大小。
2.    R模块把命令拆成4KB大小的数据块,计算出Hash值,转发给C模块。
3.    C 模块发现Hash值没有重复,所以插入到自己的表里面,转发给D模块。
4.    D模块给数据块分配SSD中的物理地址,写下去。

可去重的写流程

1.    Host把读命令通过FC或iSCSI接口发送给R模块,命令包含数据块逻辑地址和大小。
2.    R模块把命令拆成4KB大小的数据块,计算出Hash值,转发给C模块。
3.    C 模块查A2H表(估计还有个H2A表,或者是个树,Hash数组之类),发现有重复,转发给D模块。
4.    D模块 知道数据块有重复,就不写了,只是把数据块的引用数加个1。

可以看出,自动扩容和去重都是自然而然在后台完成的,不会影响正常读写性能。



此帖出自FPGA/CPLD论坛
点赞 关注
个人签名training
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表