全闪存阵列大揭秘6:EMC XtremIO核心软件流程

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

 

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。

 

读流程

 

  1. Host把读命令通过FC或iSCSI接口发送给R模块,命令包含数据块逻辑地址和大小。
  2. R模块把命令拆成4KB大小的数据块,转发给C模块。
  3. C 模块查A2H表,得到数据块的Hash值,转发给D模块。
  4. 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。

 

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

 

引用

http://vjswami.com/2013/11/13/xtremio-hardwaresoftware-overview-architecture-deepdive/

分类目录 产品评测 和标签 , , .
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。