机械硬盘与固态硬盘的适用场景

机械,硬盘,固态,适用,场景 · 浏览次数 : 311

小编点评

**固态硬盘性能劣势** * **顺序写:** SSD 的写入过程要比机械硬盘更复杂,需要擦除页才能写入数据,导致性能下降。 * **顺序读:** SSD 的读取过程要比机械硬盘更复杂,需要从多个页中找到目标页,导致性能下降。 * **耐用性差:** SSD 的存储器是独立的片状芯片,易出现故障,导致设备失效。 * **擦除次数有限:** SSD 的擦除过程只能对已写入的数据进行擦除,擦除次数有限,可能会导致数据丢失。 * **碎片化问题:** SSD 的存储器是按块进行擦除,当存储器中存在多个页被标记为已删除时,会造成碎片化,无法正常写入数据。

正文

之前一直以为固态硬盘各方面都比机械硬盘性能高,所以首选固态硬盘,直到看了极客时间-深入浅出计算机组成原理中硬盘相关章节的内容,才发现固态硬盘原来是有缺点的,所以这里来做一个总结。

机械硬盘(HDD)

机械硬盘由以下几个部分组成:

盘面:盘面(盘片)上有一层磁性涂层,数据就是存储在这个磁性的涂层上,一个盘面在正反两面都有磁性涂层。盘面中央有一个可以旋转的主轴,主轴可以使盘片以固定的旋转速率进行旋转,我们看到磁盘标注的每分钟多少转(RPM , Revolution Per Minute)指的就是这个旋转速率,比如7200转,表示一分钟可以旋转7200下:

(注:图片来自极客时间-深入浅出计算机组成原理)

一个盘面又可以划为多个扇区和多个磁道。
磁道:一个盘片可以划分为多个同心圆,每一个圆环就叫做磁道,可以理解为是盘片上的圆形环道:

扇区:每个磁道又可以分为一个个扇区,也就是磁道上的一个弧段:

柱面:上下平行的一个个盘面的相同扇区组成的部分,称作一个柱面。
image
(注:图片来自极客时间-深入浅出计算机组成原理)

磁头:用于从盘面读取数据传输到总线,一个盘面有正反两面,正反两面都会有一个磁头。

传动臂(悬臂):与磁头相连接,通过沿着半径轴前后移动传动臂,可以将磁头定位到每一个磁道上,读取存储的数据。

磁盘是由一个或者多个平行叠放在一起的盘片组成的,将它们封装在一个密封的包装内,整个装置称为磁盘驱动器,也就是我们常说的磁盘。

磁盘以扇区为大小进行数据读写,数据读写的耗时主要有以下几部分:

  1. 寻道时间:首先传动臂需要将磁头定位到包含目标扇区的磁道上,移动传动臂所需的时间称为寻道时间,它依赖于磁头当前所在的位置以及传动臂在盘面上移动的速度。
  2. 旋转时间:将磁头定位到目标扇区所在的磁道后,需要等待目标扇区的第一个位旋转到磁头下,它依赖于磁盘的旋转速率。

从数据读取步骤当中可以看出,如果我们将数据进行顺序存放,尽可能将数据放在同一个扇区或者是一个柱面,这样只需旋转一次盘面,进行一次寻道,即可读取出内容,这也是顺序读写比随机读写性能高的原因。

固态硬盘(SSD)

固态硬盘是一种基于闪存的存储技术,由半导体存储器构成,没有移动的部件,不需要像机械硬盘一样进行寻道,所以在顺序写以及随机写的性能上相比机械硬盘都要高,但是它的耐用性缺比较差,接下来就看下SSD硬盘的耐用性为何差。

固态硬盘是有多个裸片叠在一起的:


(注:图片来自极客时间-深入浅出计算机组成原理)

一张裸片上可以放多个平面(Plane),一个平面上又会划分为多个块(Block),一个块的大小通常在几百KB到几MB,一个块里会划分为多个页(Page),一个页的大小通常是4KB:

(注:图片来自极客时间-深入浅出计算机组成原理)

SSD硬盘写入的基本单位为页,按页进行数据写入,但是它不能像机械硬盘一样直接通过覆盖进行写入,如果某一页已经写入过数据,需要被擦除后才可以重新写入数据,而且SSD硬盘是按块进行擦除的,也就是说如果某个页的数据被删掉还不能直接对页进行擦除,需要等待这个页所在的块整个被擦除才可以重新写入数据,而每一个块的擦除次数是有限的,当达到一定的擦除次数容易损坏。

举个例子

假设白色代表这个页未写入过数据,绿色代表这个页写入了有效数据,红色代表之前写入了有效数据后来数据被删除:

  1. 首先在某些空白页内写入了一些数据,写入数据的页变为绿色:

  2. 删除一部分数据,由于SSD需要按块擦除,所以某个块内的页如果既有有效数据又有删除数据,被删除的那部分数据会先标记为删除状态此时数据并未真正删除:

  3. 当某个块内的所有页都被标记为已删除,此时这个块就可以被擦除,这个块内的页就恢复成了白色:

  4. 假如删除的数据不连续,分散在各个块内,由于红色的页在被擦除之前不能写入数据,所以这些红色的页看起来类似磁盘碎片,既不能清理又不能写入数据,到达一定程度时可能没有合适的空白页进行数据写入,所以这时候需要做一次类似于磁盘碎片整理的工作,找一个红色页最多的块,将里面绿色页的数据移动到另外一个块中,然后将整个红色页所在的块进行擦除:

总结

机械硬盘可能更适合于写多(顺序写)读少的场景,固态硬盘更适合于读多写少的场景,不过也不能一概而论,最终还是要根据实际的应用场景来定。

参考

【极客时间-徐文浩】深入浅出计算机组成原理

《深入理解计算机系统》

与机械硬盘与固态硬盘的适用场景相似的内容:

机械硬盘与固态硬盘的适用场景

之前一直以为固态硬盘各方面都比机械硬盘性能高,所以首选固态硬盘,直到看了极客时间-深入浅出计算机组成原理中硬盘相关章节的内容,才发现固态硬盘原来是有缺点的,所以这里来做一个总结。 机械硬盘(HDD) 机械硬盘由以下几个部分组成: 盘面:盘面(盘片)上有一层磁性涂层,数据就是存储在这个磁性的涂层上,一

[转帖]叠瓦式和垂直式哪个好?机械硬盘叠瓦式和垂直式优缺点与辨别方法

http://www.lotpc.com/yjzs/8864.html 如今,硬盘主要分为固态硬盘和机械硬盘两种,装机基本首选固态硬盘了,对于存储要求较高的用户来说,大容量固态硬盘有点昂贵,无疑是考虑价格相对便宜的机械硬盘作为存储使用。所谓的叠瓦式(SMR)和垂直式((PMR)是目前机械硬盘磁记录技

[转帖]叠瓦式和垂直式哪个好?机械硬盘叠瓦式和垂直式优缺点与辨别方法

http://www.lotpc.com/yjzs/8864.html 如今,硬盘主要分为固态硬盘和机械硬盘两种,装机基本首选固态硬盘了,对于存储要求较高的用户来说,大容量固态硬盘有点昂贵,无疑是考虑价格相对便宜的机械硬盘作为存储使用。所谓的叠瓦式(SMR)和垂直式((PMR)是目前机械硬盘磁记录技

[转帖]按压硬盘能提升几十MB/s 的硬盘读写速度,长见识了

https://www.ittel.cn/archives/6326.html 现在基本每台电脑都配置了 SSD (固态硬盘),但如果用在服务器、NAS 等大容量存储设备中,HDD(机械硬盘)的性价比依然无人能敌。 一方面是因为它便宜量大,一方面是因为它可靠性强,数据存储时间长。而你是否真的了解 H

[转帖]固态硬盘差价为什么那么大?便宜的固态硬盘和贵的固态硬盘区别

http://www.lotpc.com/yjzs/8879.html 在目前的市场上,主流硬盘主要分为固态硬盘和机械硬盘,而现如今,基本都是首选固态硬盘了,而机械硬盘往往被作为存储盘使用,固态硬盘相比机械硬盘在读写速度提升还是十分显著的,并且可以让我们实实在在的能够感受到速度体验,就例如系统安装在

[转帖]常见硬盘分类介绍

目录 一.介质 1.1 机械硬盘(HDD) 1.2 固态硬(SSD) 二. 接口 2.1 SATA 2.2 NL SAS 2.3 SAS 三. 功能 3.1 桌面级 3.2 企业级 四. 正确维护 硬盘可根据不同的方式进行分类: 介质:机械硬盘 固态硬盘盘径:3.5寸 2.5寸接口:SAS SATA

【转帖】常见硬盘分类介绍

目录 一.介质 1.1 机械硬盘(HDD) 1.2 固态硬(SSD) 二. 接口 2.1 SATA 2.2 NL SAS 2.3 SAS 三. 功能 3.1 桌面级 3.2 企业级 四. 正确维护 硬盘可根据不同的方式进行分类: 介质:机械硬盘 固态硬盘盘径:3.5寸 2.5寸接口:SAS SATA

[转帖]11. 表空间和索引

https://www.jianshu.com/p/2abd2d511a31 表空间 表空间的含义是为不同的数据库、表或索引指定的不同的存储目录。而我们知道,在Linux上,不同的目录可以挂载不同的存储介质,比如/data目录挂载的是机械硬盘,而/datafile目录挂载的是固态硬盘,那么这两个目录

[转帖] Linux命令拾遗-查看系统信息

https://www.cnblogs.com/codelogs/p/16060714.html 简介# 作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu? 查看硬件信息# Linux里面提供了一系列命

[转帖] Linux命令拾遗-查看系统信息

https://www.cnblogs.com/codelogs/p/16060714.html 简介# 作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu? 查看硬件信息# Linux里面提供了一系列命