硬盘的各种概念
不得不说,关于磁盘的各种概念网上说法很多,看了半天快把我看晕了,最后总结了总结,基于我的认知基本理顺了。
顺序 和 随机
磁盘的顺序访问和随机访问是怎么定义的呢?如果一次IO操作起始的逻辑块地址logical block address (LBA)紧挨着上一次IO操作的终止 LBA,就是顺序访问,否则就是随机访问。下边这个图比较形象(https://en.wikipedia.org/wiki/IOPS)。
逻辑地址是程序中认识的块地址,编号顺序递增。除了 LBA 还有 PBA(物理块地址),一般逻辑和物理地址会有一个对应关系。物理地址就是数据在磁盘上的实际地址了。
Throughput
吞吐率,是指顺序从磁盘读取数据时候,能达到的最大传输速度,通常单位是 MB/s。衡量大数据量的传输效率基本都用吞吐率。这个应该是单线程统计的。
latency
是一次操作的耗时,一般指发送请求到返回结果的时间,从磁盘角度看,不仅包括定位数据,还包括数据传输的时间。latency这个词本身并没有规定要访问多大的数据量。
IOPS
IOPS是每秒执行的操作数量,一般测的是随机访问,各种硬盘厂商声称硬盘的IOPS相当高,但是实际用的时候不是那么回事。因为这个东西依赖latency和工作负载,比如一次操作访问数据量的大小,等待队列中的读写请求数等。1998年 Intel 公布了一个开源的测IOPS的工具,叫 Iometer,说你们都别自己玩了,咱们统一都用这个比,就是定了个 benchmark,现在一般都用这个测。
HDD
HDD 就是 Hard Disk Drive,硬盘驱动器,也就是普通的机械硬盘,通过磁头读写数据。HDD 的随机访问和顺序访问是有区别的。
把磁盘看成一个光盘,上边有一个磁头用来写东西,就像钢笔头一样,要在一个位置写东西,需要先将磁头移动到那个位置,这个操作叫seek(旋转+寻道),接下来就是将数据顺序写下去(write)。写完数据之后磁头自动向后移动,如果继续挨着写就不需要 seek 了。
举个例子,以一个汉字为单位,那么顺序写一句话 “小孩儿你好呀”,只需要将磁头 seek 一次到“小”要写的位置,然后 write “小”,接下来直接把“孩儿你好呀” 一个个 write 到后边就可以了,这些字在磁盘上都存在了一起。随机写就是把这几个字分开存,互相不挨着。那么共需要 6 次 seek,6次 write。顺序写总是比随机写要好的,因为随机写多了 5 次 seek 的时间。
一个 HDD 的 seek 耗时是 10ms,吞吐率是 100MB/s,也就是每秒能 write 100MB 的数据。那么以 1KB 为单位,纯 write 这 1KB 的数据只需要 10us ,是seek 的 1/1000。 可以看到 seek 是很不友好的。
由于HDD 可以覆盖写,所以 LBA 和 PBA 是一一对应的,连续的逻辑地址也对应了连续的物理地址,所以有随机访问和顺序访问的区别。
SSD
SSD 是固态硬盘,solide-state drive,超快的那种。下图是 Intel 给出的一款 SSD 的性能指标(https://ark.intel.com/compare/97161,97162,187933,187936)
顺序访问和随机访问本来就没啥可比性,取决于每次随机访问的数据量大小。所以他这也没用同一个单位。
为啥写的慢呢,得看 SSD 的结构了,SSD 是个三层次,最高层是 NAND Flash,每个 NAND Flash 里有多个 Block ,Block 里又包括很多 Page,SSD 的特点就是读和写都要以 Page 为单位,最少一个 Page。通常一个 Page 是 4k 或 8k。不能覆盖写 page,要覆盖必须清空那个 page 所在的 Block。亦或者要先将这个 page 所在块的数据移动到另一个被擦除的 block里。所以写比较麻烦。
因为这些结构的设计,SSD 上连续的一段 LBA 不一定对应连续的 PBA ,SSD 用一个闪存转换层 Flash Translation Layer(FTL)将这个映射管理起来了。所以,SSD 的顺序写和随机写没有区别。可以当成 SSD 都是随机访问数据的。
固态硬盘SSD真的安全吗?你看或者不看,真相就在这里
当一块SSD坏掉了,需要扔掉的时候,你是否想过,SSD里面是否已经真的删除干净,是否还有你私密的数据呢?特别是对银行业或者军工的SSD,里面包含了很多机密的数据,如果轻易的处理掉,很有可能会被别有用心的人利用,造成不可挽回的损失。
或者,换到另一个场景,你有一块机密的SSD丢了或者被偷了,如果你的SSD没有做任何保护的话,SSD里面存储的信息就直接暴露给别人了。
目前针对SSD数据安全有以下几种方案:
1. 数据加密
就加密而言,并不存在绝对的无法破解的加密技术,尽管从理论上讲AES256 bit加密方式无法通过暴力方式破解,但解密专家通过旁路攻击等手段仍存在破解AES的可能性,因此,有效的办法往往是通过几种加密方式的组合加强密码破解的难度,如:银行系统通常会采用一组私人密码加上硬件Key随机密码,二者组合才可以访问网银系统的方式达到安全防护的目的。
目前数据加密可以通过软件或者硬件的方式实现。
软件加密可以通过固件写入到SSD中,无法被删除和更改,无需安装,用户只需要通过运行软件就可以方便的对磁盘分区进行加密。几乎所有的SSD控制器都支持硬件AES加密(例如,Renice AES 加密原理图如下)。
此外,目前市场上还有指纹加密技术的固态硬盘。
2. 安全擦除
安全擦除功能分为加密块擦除、加密块和物理块擦除、军级擦除三种擦除级别,擦除程度依次加强,这三种级别的安全擦除均可保证擦除后数据不可恢复:
(1) 加密块擦除:主要擦除SSD控制器的各类映射表,如坏块管理、动态映射表、静态映射表、碎片回收表等,通过擦除NAND Flash的各类映射表,造成数据完全不可恢复,擦除时间小于3s。执行加密块擦除后,映射数据完全丢失,SSD数据完全不可恢复。
(2) 加密块和物理块擦除:除了进行加密块擦除外,还对所有的NAND Flash Block执行Erase操作,保证所有NAND Flash存储单元值恢复为出厂状态,即0xFF,擦除速度为3GB/s。执行加密块和物理块擦除后,映射数据及物理块数据完全丢失,SSD数据完全不可恢复。
(3) 军级擦除:军级擦除由加密块擦除、物理块擦除、NAND Flash存储单元Overwrite组成,加密块擦除和物理块擦除同上,NAND Flash存储单元Overwrite是向NAND Flash的每一个Page写入特定的数据或随机的数据。执行军级擦除后,映射数据完全丢失,NAND Flash所有Block执行过Erase操作,NAND Flash所有Page执行了特定或随机数据写操作,SSD数据完全不可恢复。
以上三种安全擦除对SSD本身并不会造成任何物理损毁。
3. 物理销毁
对于军事等敏感数据,使用软件删除或者数据覆盖等删除手段,并不一定完全避免数据被恢复的可能,相对而言,对物理介质进行损坏从数据安全性而言更加可靠,也是最直接最暴力的手段。比如,Renice公司提供一种通过高压将芯片击穿的方式从物理上避免芯片数据被恢复的可能。
此外还有通过强化学剂溶解(比如各种酸)或者强力通电或者磁场,加热烧灼,熔化的方式进行销毁。物理烧毁的难点在于如何保证SSD上所有的Nand Flash都被烧毁而无遗漏任何一个Nand Flash,例如:一块儿SSD上通常会有16片Nand Flash,是否会存在只烧毁一部分Nand Flash,而其他Nand Flash因为各种原因并没有按照设计要求真正被烧毁的情况。
销毁后Nand Flash状况:
目前市场上很多厂商有推出带有“一键销毁”功能的SSD, 一般配有两个按钮:绿色按钮为智能销毁模式,可将所有数据格式删除;想刺激那就按红色按钮,如同谍战电影般,青烟冒出主控、闪存均被烧毁,存储数据瞬间灰飞烟灭。
相关问答
【报纸和杂志的“版”英文怎么说?比如“声音”栏目,“世界新...[回答]好像是没有“额外的”版一说,如周年庆版就是标个anniversary(10thanniversary十周年庆专版)Voice(Column)WorldNews(Column)好像是没有“额外...
...page是指书的那一页啊?putpentopaper?blockcaptitals? - 懂得thefacingpage:不是指的具体哪一页,除非句子里给出了具体的,它一般指的当前眼睛就能看到的那一页putpentopaper:落笔;下笔;命笔;落墨blockcaptitals...
基于dsp的spi驱动 flash 流程是怎样的?1、根据单片机手册编写SPI接口驱动,确保SPI接口可以正常通信,只要按照手册说明操作控制几个寄存器即可,比较简单;2、根据你选用的Flash编写FLASH读写驱动,...
英语译短语blockitout_作业帮[回答]blockout遮住,挡住Thecloudshaveblockedthesunout.云彩遮住了太阳.遮挡…使不被印出来Blockoutthebottomofthisp...
AppsGeyser:快速制作 android app,真的只要几秒钟 - OSCHIN...其实就是一个定制的webview为什么我打开这个网只有上面两个功能,没有GrabWebPageBlock很一般……图片上面的手机外观不错,有哪位能告诉一下型号吗~典型里程碑...
手机看在线视频黑屏,弹出Please disable your ad blocker,怎么解决?pleasedisableyouradblockplugin意思是请关闭你的广告插件,可能是由于开启了广告拦截造成的。这样的情况个人建议关闭浏览器的广告拦截,这样应当可以正常打开...
英语:关于单复数问题anewblockwasneededforeverypageinabook...[回答]不定代词后边一定是加可数名词单数的形式
软件设计中需要用到的英语短语句子词组,求求求_作业帮[回答]贴一部分,更多的看参考资料:Aabstract抽象的abstractbaseclass(ABC)抽象基类abstractclass抽象类abstraction抽象、抽象物、抽象性acce...
英语中的缩写词及来历_作业帮[回答]1.ABSAnti-blockBrakeSystem汽车刹车防抱死系统2.B2BBusinesstoBusiness企业对企业的电子商务模式3.bluetooth蓝牙———一种开放的...
【在标准ASCII编码表中,数字码、小写英文字母和大写英文字母...