共计 4015 个字符,预计需要花费 11 分钟才能阅读完成。
明天筹备聊一下存储设备的提高数据库倒退的关系。
一般来说硬件设施无非就是 CPU,内存和存储设备。依据木桶实践,制约数据库提高的最短的木板就是存储设备。
木桶原理又称短板实践,木桶短板治理实践,所谓“木桶实践”也即“木桶定律”。其核心内容为:一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰好取决于桶壁上最短的那块。木桶原理是由美国管理学家彼得提出的。也可称为短板效应。
而这个短板在摩尔定律的加持下,CPU 和内存的疾速倒退的同时,和存储设备(HDD 硬盘)之间的差距也越来越微小。
摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔提出来的。意思是:在价格
不变的根底上,集成电路上可包容的元器件的数目,约每隔 18-24 个月便会增加一倍,性能也将晋升一倍。换言之,每一美元所能买到的电脑性能,将每隔 18-24 个月翻一倍以上。这一定律揭示了以集成电路为根底的 CPU 和内存的倒退速度,但可怜的是,传统的机械硬盘(HDD)并不在摩尔定律的领域内。
这时候,有一个神奇的存储设备呈现了。没错,固态驱动器(Solid State Disk 或 Solid State Drive,简称 SSD)。
提到 SSD,就顺便提一下一个传奇的公司:朗科,和一个传奇的产品:U 盘。因为 SSD 的主流产品,采纳了和 U 盘雷同的技术: 闪存(flash memory)。
SSD 的存储介质分为两种,一种是采纳闪存(FLASH 芯片)作为存储介质,另外一种是采纳 DRAM 作为存储介质。最新还有英特尔的 XPoint 颗粒技术。基于闪存的固态硬盘:基于闪存的固态硬盘(IDEFLASH DISK、Serial ATA Flash Disk):采纳 FLASH 芯片作为存储介质,这也是通常所说的 SSD。它的外观能够被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U 盘等款式。这种 SSD 固态硬盘最大的长处就是能够挪动,而且数据保护不受电源管制,能适应于各种环境,适宜于个人用户应用。寿命较长,依据不同的闪存介质有所不同。SLC 闪存广泛达到上万次的 PE,MLC 可达到 3000 次以上,TLC 也达到了 1000 次左右,最新的 QLC 也能确保 300 次的寿命,普通用户一年的写入量不超过硬盘的 50 倍总尺寸,即使最便宜的 QLC 闪存,也能提供 6 年的写入寿命。可靠性很高,高品质的家用固态硬盘可轻松达到一般家用机械硬盘十分之一的故障率。基于 DRAM 类:基于 DRAM 的固态硬盘:采纳 DRAM 作为存储介质,利用范畴较窄。它仿效传统硬盘的设计,可被绝大部分操作系统的文件系统工具进行卷设置和治理,并提供工业规范的 PCI 和 FC 接口用于连贯主机或者服务器。利用形式可分为 SSD 硬盘和 SSD 硬盘阵列两种。它是一种高性能的存储器,实践上能够有限写入,美中不足的是须要独立电源来爱护数据安全。DRAM 固态硬盘属于比拟非主流的设施。基于 3D XPoint 类
基于 3D XPoint 的固态硬盘:原理上靠近 DRAM,然而属于非易失存储。读取延时极低,可轻松达到现有固态硬盘的百分之一,并且有靠近有限的存储寿命。毛病是密度绝对 NAND 较低,老本极高,多用于发烧级台式机和数据中心。
其实,闪存(flash memory)是 1984 年由日本公司东芝创造的。第一款固态硬盘在 1989 年也被制作进去。然而因为昂扬的价格,始终没有被大规模的商业化。工夫到了 1999 年,人们对一种计算机上的内部存储设备“软盘”越来越不屑一顾,因外这个货色容量低,体积大,不不便携带。这时候,两个聪慧的中国人(邓国顺和成晓华)敏锐的看到了一个商机:在泛滥的存储设备中短少一个容量在几十 MB,能够通过 通用串行总线(Universal Serial Bus)的,并且不须要内部电源的可读写的小型内部存储。于是他们辞掉的工作,成立了 深圳市朗科(Netac)科技有限公司。并在 1999 年 11 月 14 日,向国家知识产权局申请了 U 盘专利,随后,两位专利申请人别离向美国、欧洲、日本、香港等国家和地区提交了专利申请。2002 年 7 月 24 日,中国专利失去受权,专利号 ZL99117225.6,简称 ”99 专利 ”。
这也是早些年中国能够向国外大公司收取专利费的不多的案例。遗憾的是,因为创造类的专利保护期是 20 年,这个专利曾经在 2019 年 11 月 13 日到期了。然而发明人邓国顺作为“闪存盘之父”也是应该被铭刻的。
话说回来,SSD 为什么能够补救传统机械硬盘(HDD)在 I / O 通信上的短板呢?还记得 HDD 的瓶颈吗?对,就是随机 I / O 的“寻道工夫”。而 SSD 的寻址是由电信号实现的,所以“寻道”工夫简直是能够忽略不计的。
那么是不是 SSD 就没有任何毛病了吗?咱们来持续钻研一下闪存(flash memory)。
首先,依据制作工艺,闪存存储器能够分为 NOR 型和 NAND 型。
NOR 型是为了代替 EEPROM 而设计,能够按位或者按字节进行拜访,NOR 型闪存芯片具备可靠性高、随机读取速度快的劣势,但擦除和编程速度较慢,容量小,次要用于存储可执行的成都代码。
NAND 闪存容量大,按页进行读写,容量大,适宜进行数据存储。本文介绍都是基于 NAND flash。
与传统机械硬盘(HDD)只有“读”和“写”两个动作相比,NAND flash 具备“擦除”、“读”、“写”三个根本动作。
擦除:在衬底施加电压足够长的工夫,把电子从浮栅中吸出来,擦除之后,整个 block 的数据都变成了 1。因为一个 block 共用一个衬底,所以在擦除时,一次擦除一个 block,即擦除的单位为 block。写:写的过程是对浮栅充电子,也称为编程。写之前须要先进行擦除,因为擦除之后,数据都变成了 1,所以须要对要写入 0 的浮栅进行充电。读:读取的时候,对晶体管施加一个低电压,如果浮栅中没有电子,那么管子就是导通的,读到 1;如果浮栅中有电子,管子不导通,读到 0。读取数据时,因为是否有电子会影响到管子的导通性,所以能够利用电流感应浮栅里电子捕获量的多寡,靠感应强度转换成二进制的 0 与 1。
SSD 的这写特点,都是因为闪存(flash memory)颗粒的构造和读写原理决定的。flash memory 的根本存储单元是 – 浮栅晶体管 。
上图是浮栅晶体管的构造,最上面的是衬底,源极和漏极。衬底之上,有隧道氧化层、Floating Gate(浮栅层)、氧化层、管制栅极。两头的 Floating Gate 被绝缘层突围着,电子易进难出,通过对 Floating Gate 充放电子,来对晶体管进行写入和擦除。在源极(Source)和漏极(Drain)之间电流单向传导的半导体上造成存储电子的浮栅,浮栅高低被绝缘层突围,存储在外面的电子不会因为掉电而隐没,所以闪存是非易失性存储器。
下图是浮栅晶体管的写和擦除的原理。
写操作如左图,是在下面的管制栅极加正电压 Vpp,使电子通过绝缘层进入浮栅。擦除操作正好相同,如右图,是在衬底加正电压 Vpp,把电子从浮栅中吸出来。写入的过程是充电子的过程,如果写入的 page 之前曾经写过,在写入之前,必须先对 flash 进行擦除 0,革除浮栅中的电子。
数据是以 0 和 1 二进制进行保留的,依据浮栅中有没有电子两种状态,能够示意数据的 0 和 1,这样就能够进行数据的存储。个别把有电子的状态记为 0,没有电子的状态记为 1。
所以,SSD 有以下两个毛病。
读写不均衡。读的速度很快;写入数据时,因为须要通过加压的形式对存储单元进行电子填充,所以速度略慢;擦除速度最慢,擦除块的工夫在 ms 级。在应用 SSD 的时,须要思考到 SSD 的读写不均衡的个性。寿命无限。每个 NAND Block 都有擦写次数的限度,当超过这个次数时,该 Block 可能就不能用了:浮栅极充不进电子(写失败),或者浮栅极的电子很容易就跑进去(比特翻转,0->1),或者浮栅极外面的电子跑不进去(擦除失败)。这个最大擦写次数按 SLC,MLC,TLC 顺次递加:SLC 的擦写次数可达十万次,MLC 个别为几千到几万,TLC 降到几百到几千。
正是因为 SSD 有以上毛病,所以例如 ORACLE 数据库 Redo 文件并不举荐放晚期的 SSD 上,因为 ORACLE 的 Redo 文件须要频繁擦写,这既须要破费额定的“擦写工夫”,还非常耗费 flash memory 的寿命。但好在随着技术的继续高速倒退,下面的毛病曾经被逐渐改善,当初也没有这个限度了。
Troubleshooting: ‘Log file sync’ Waits (ドキュメント ID 1376916.1)
##### Recommendations
Avoid placing redo logs on older generations of Solid State Disk (SSD) technologies.
Although generally, Solid State Disks write performance is good on average,
they may endure write peaks which will highly increase some waits on 'log file sync'
which may result in choppy performance or even transient database hangs.
(This should be tested, as there are cases where performance is still acceptable
on SSD despite the uneven IO response times) Oracle Engineered Systems
(Exadata, SuperCluster and Oracle Database Appliance) have been optimized to
leverage SSDs and newer related technologies more effectively.
最初提一个乏味的问题,既然 flash memory 的寿命无限,那为什么咱们在应用的过程中没有发现容量逐步变小呢?
请先思考一下,咱们下一篇文章里给出答案。