- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
架构设计:块存储方案(二)
我们要处理一个关键问题:既然机械硬盘和固态硬盘从工作原理、制造工艺、技术规范等多个方面都完全不一样,那为什么无论硬件层是使用机械硬盘还是固态硬盘操作系统却都可以进行识别,并在其上进行数据读写呢?
这个问题中,计算机系统不同层次对数据操作最小单位的定义不全都都还是一个小问题:虽然机械硬盘上数据操作单元为512字节、固态硬盘上数据操作单元为4KB、操作系统层面定义的数据操作单元可能是1KB\2KB\4KB\8KB等等。但是只需这些层次上的文件起始地址都是固定的,则各层的地址对应关系就可以找到的。也就是说操作系统上的地址X可以映射到机械硬盘的地址Y又或者映射到固态硬盘的地址Z,只不过存储小文件时的真实可用空间可能产生误差。
但是这里有一个固态硬盘上的操作规章会引起比较大的问题,这就是固态硬盘对数据的删除操作:固态硬盘在进行数据删除时是依据“块”单位进行的,一个“块”包含128个或者256个Flash Page。当进行删除操作时,SSD主控芯片会首先将这个块中还“有效”的数据移动到属于其它“块”的另一些Flash Page中,然后再进行“无效”数据的清理。也就是说以前操作系统通过地址X的可以读取的文件数据,现在通过地址X就可能读取不到了。那么这些固态硬盘的底层操作过程对于操作系统来说应当是完全透亮?????的,否则操作系统就不能将固态硬盘当成机械硬盘进行操作。
这就是说,对于操作系统来说以前使用地址X进行存储的文件,无论什么能否都能够再通过地址X读取到。这里提到了两种地址:一种是操作系统读写文件的地址——称为规律地址;另一种是固态硬盘进行文件操作的真实地址——称为物理地址。
FTL(Flash translation layer)闪存地址转换是SSD固态硬盘把握芯片需要担任的次要工作之一,FTL的次要作用就是记录物理地址和规律地址的转换关系,FTL的核心是一张物理地址和规律地址的映射表,这张映射表存储在固态硬盘一个特地的SRAM/DRAM芯片上或者若干独立的NAND Flash Page 上。正是SSD固态硬盘的把握芯片有这样一个转换过程,操作系统才能将固态硬盘当做机械硬盘进行操作,并且SSD固态硬盘主把握芯片上FTL算法的功能直接影响着整个SSD固态硬盘的功能。请看下图的FTL转换示例:
操作系统对磁盘读写操作的最小单位为“簇”(EXT文件系统称为block size)。以NTFS文件系统为例,默认的“簇”大小为4K(当然您可以选择更大的“簇”大小,这样会铺张更多的存储空间,但是可以加快读写功能)。即便一个文件的大小不到4K,也会占用一个“簇”的大小。假如一个文件为210KB,那么理论上就需要占用53个“簇”空间(4KB),或者需要占用105个“簇”空间(2KB)。
当一个210KB大小文件的写恳求从操作系统层传来时,都以规律地址进行描述。当SSD固态硬盘主控芯片收到这个文件的写恳求时,会到FTL映射表中查找53个空闲的Flash Page来存储这些数据,并将物理位置和规律位置的映射关系记录到FTL映射表中;当一个210KB大小文件的读恳求从操作系统传来时,SSD固态硬盘把握芯片会首先在FTL映射表中查找规律为止对应的若干物理位置,以便知晓到固态硬盘的哪些Flash Page去读取数据。
还需要留意,在进行数据写操作时,假如没有查找到足够的空闲的Flash Page位置那么有两种可能:第一种可能是,在SSD固态硬盘上的确已经没有210KB的空间了,这时操作系统就会收到磁盘空间已满的信息;另一种情况是有部分空间被“无效”数据占用(这些“无效”数据来是前被操作系统删除的数据),这时固态硬盘就要进行无效数据清理。SSD固态硬盘的数据清理是将若干Flash Page的区域全部清理,称为块。清理操作过程已经在上文中大致引见过。这也是为什么固体硬盘在使用一段时间后(特殊是存储空间被占用满后),固态硬盘的功能会消灭明显下降的缘由。
最终需要留意,实际上由操作系统传来的数据和操作恳求也不是直接就发送到SSD主控芯片了,而是需要经过软件和硬件的多层传递。在硬件层面上来说,数据一般需要通过主板上的南桥芯片(在经过磁盘阵列把握芯片)才能传送到SSD固态硬盘的外部接口(例如SATA3.0、USB3.0等),最终再达SSD主控芯片。
2、磁盘阵列方案
单块硬盘进行数据存储可能会存在以下问题:
硬盘容量有限制,当容量不足时不能进行硬件扩容。现在磁盘技术在磁盘容量上已经有了长足的进展,目前(2021)机械硬盘的主流容量已经达到6TB,固态硬盘的主流容量也达到512GB。但是单块硬盘一直都存在较严峻的容量扩充问题,除非读者在扩容时手动迁移数据。
数据牢靠性性问题。单块硬盘不存在任何备份机制,虽然现在有很多扇区检测软件可以挂念开发人员/运
原创力文档


文档评论(0)