DSSD数据结构 –数据对象
从数据存储的角度来看,DSSD是一款以对象(Object)为基础的存储,对象可以是块(Block)、文件(File)、卷(Volume)、目录(Directory)和键值配对(Key-Value)等各种类型。这些对象在DSSD中存储为对象池(objectpool)。每一个对象都具有唯一的不可重用的编号(UDI,从一个2的64次方中获得)。DSSDD5由于目前的容量限制,可以最多存储10亿个对象。
一个对象是由唯一标识符(UniqueID),分段大小(Fragmentsize)和一个或多个分段数据所组成的。一个数据分段在一次读写的数据传输中,从应用程序内存移动到DSSD的三个目标位置(一个控制模块的DRAM和两个闪存模块的DRAM中)。下图是DSSDD5中以4K-fragment长度的存储。
对象的容器是卷(卷是另外一种对象,但是逻辑上是对象的容器),每一个对象只能属于一个卷。而全部系统中的卷的总数不受限制,卷可以被一个或多个客户端系统访问。不过当一个卷被多个客户端系统的访问的时候,多个客户端系统是以线性的方式访问卷。通过适当的加锁机制保证客户端之间对对象的访问隔离。下图显示了卷中的对象示例:
在一个卷中,目录(Directory)对象提供了卷中对象的继承管理。对象可以通过ID访问或通过文件路径进行访问,下图为对象访问的图示:
所有的元数据,比如闪存转换层FTL,都会通过读取对象创建被保存在D5控制模块的主内存中。一个对象有关的所有元数据都会被包括在另外一个对象中,然后在对象需要的时候写入。元数据不会产生无关的I/O,在系统启动的时候,对象会被检测然后创建FTL。而和传统文件系统不一样的是,所有DSSD系统中的I/O都是对象数据管理或分段数据管理,而不会有任何元数据的管理的I/O。
赞美
人赞美
中科医院专家微信北京中科白癜风医院