存储

关注公众号 jb51net

关闭
硬件教程 > 存储 >

基本修养:存储与文件系统讲解

deerchao

存储 (Storage)

存储是用于保有数据的技术。

目前计算机存储采用的技术方式主要有以下几种:磁介质(硬盘,磁带),半导体(内存,固态硬盘,闪存卡等),光介质(光盘)等。不同的存储方式在各方面具有不同的特点,如易失性(断电是否失去数据),容量大小,读写支持(读写,只读,快读慢写,一次性写入等),数据存取方式(连续存取,随机存取),性能(如延迟,吞吐量等),能耗等。

下文所说的存储指二级存储,又称外存,或辅存。与此对应的主要存储是指内存,即“运行内存”。事实上只有这一种内存,把移动设备的持久化存储称为内存在技术上是错误的,这些其实是外存。外存与内存的区别在于是否能直接与 CPU 连接。常见的外存设备包括硬盘,固态硬盘等。

硬盘 (HDD, Hard Disk Drive)

硬盘是一种电子机械设备,使用转动的磁盘和可平面移动的磁头来存取数据。

硬盘的存取延迟一般在几毫秒左右。它支持随机存取,每秒大概几十次到二百次。硬盘适用于连续存取较多的场景如多媒体数据或备份等,其吞吐量可达到 100 ~ 200 MB/s.

硬盘驱动器中可以有多张磁碟,互相平行重叠,碟间和两侧有读写磁头(Head)。每张碟被划分为若干个同心圆,称为磁道(Track),每个磁道划分为多个扇区(Sector);所有碟相同位置的磁道构成一个柱面(Cylinder)。硬盘可以通过 CHS 方式对每个扇区进行寻址:Cylinde 编号(0 ~ 1023),Head 编号(0~254),Sector(1 ~ 63)。这种方式在常见的 512 字节扇区大小下,能处理的最大硬盘容量是 7844 GB。历史上这些值直接对应硬盘的内部的物理器件,但随着存储密度的增大,硬盘向 BIOS 报告的参数也变为了逻辑数据。为解决更大容量的寻址问题,同时提升部分场景的性能,AF (Advanced Formatting) 技术将扇区大小调整为 4 KB。较新的存储系统现在主要采用 LBA(Logical Block Addressing) 寻址方式,直接使用 32 位或 64 位的扇区编号。

硬盘根据磁极与盘面的方向关系可分为 LMR 和 PMR 两种。LMR(Longitudinal Magnetic Recording, 纵向磁性记录)仅用于早期的硬盘,磁极与盘面平行。PMR(Perpendicular Magnetic Recording, 垂直磁性记录)是目前所有硬盘都采用的技术,磁极与盘面垂直,这样能做到更高的数据密度。PMR 又分为两种:CMR 和 SMR。CMR(Conventional PMR) 中磁道之间留有空白区域,以避免存取时与相邻磁道相互影响。SMR(Shingled Magnetic Recording , 叠瓦磁性记录) 中磁道间没有间隔,修改数据时需要特殊处理,以免影响相邻磁道。SMR 提升了数据存储密度,在性能和稳定性上做了一定的妥协。

硬盘的“硬”字是相对于软盘而言的。软盘(Floppy disk)是一种可移动的磁存储媒体,塑料硬壳里边的盘片使用较软的聚酯薄膜制成。硬盘的盘片则由铝或玻璃制成。

固态硬盘 (SDD, Solid-state Drive/Solid-state Disk)

固态硬盘使用闪存芯片存储数据。

固态硬盘的存取延迟一般在几十到几百微秒之间。随机存取每秒可以达到千次以上,并且可在内部使用类似 RAID 0 的技术进一步提升性能。吞吐量一般大于硬盘,高端的产品甚至经常被物理接口(SATA, PCIE等)所限制。

由于 NAND(Not AND) 闪存的特性,固态硬盘长期不通电会损失数据(正常室温情况下若干年)。闪存芯片可按字节读取,但是写入时则只能在特定情况下进行:代表 1 的位(bit)可被改写为 0, 反之则不行;只有整块(一般单块在 16KB 到 512KB 之间)擦写才能将 0 变为 1。闪存具有有限的 P/E 周期(Program-Eraspe),数据写入量过大会造成写入耗尽(wear out)。由于这些特性,针对固态硬盘,固件及软件系统需要进行相关的处理,才能将保持高性能和保证设备状态。文件系统可以发送 TRIM 命令,通知 SSD 块已经不再使用,可以擦除;固件可能会将数据分布到不同的位置,以平衡不同块的写入量。

固态硬盘里边没有“盘”。它不包含可运动的机械装置,因此称为“固态”。它也不包含磁性组件,但是由于习惯和翻译的原因,通常还是把它和硬盘等可按块随机访问的二级存储设备统称为磁盘(disk)。

S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology)

磁盘可能因为机械磨损,材料降级等原因发生故障。为增强数据安全性,现代的磁盘基本都支持通过 S.M.A.R.T. 向软件系统报告自身健康状态。S.M.A.R.T. 标准仅定义了软硬件间通信的接口协议,并未规定具体的监控指标(Attribute, 特性),因此不同厂商的产品或不同的产品系列报告的数据意义并不完全相同。

S.M.A.R.T 报告的数据中,有一个最基本的状态,代表是否已超过健康阈值。另外还有一系列的指标,每个指标包含以下几个值:

部分较关键的通用指标包括 5(0x05, Reallocated Sectors Count,重映射扇区数), 10(0x0A, Spin Retry Count,旋转重试次数), 187(0xBB, Reported Uncorrectable Errors, 无法使用硬件 ECC 恢复的错误次数), 196(0xC4, Reallocation Event Count, 重映射事件次数),197(0xC5, Current Pending Sector Count,待重映射扇区数) 等。

独立磁盘冗余阵列 (RAID, Redundant Array of Independent Disks)

RAID 技术用于将多个二级存储设备(下称磁盘)虚拟为一个,以提升性能和/或安全性。 RAID 有不同的等级,分别达到不同的整合效果。常用的等级有以下几种:

文件系统 (FS, File System)

文件系统是用于在存储介质上组织和存取数据的软件。它提供了数据分组的抽象机制(文件,目录等),以及在此抽象机制上的操作接口。文件系统有很多种,以适应不同的底层存储机制(如硬盘,光盘,网络等),达到不同的设计目标(如速度,灵活性,安全等)。

磁盘文件系统 (Disk file system)

磁盘文件系统借助于磁盘的随机读写能力,提供方便而高效的文件服务。它通常把存储介质抽象为(Volume),即逻辑磁盘,一个卷可能对应一个或多个物理磁盘或磁盘分区。常见的磁盘文件系统包括以下几种:

网络文件系统 (Network File System)

网络文件系统作为远程文件访问协议的客户端,提供服务器上文件的存取服务。常见的网络文件系统(及类似系统)包括以下几种:

以上就是基本修养:存储与文件系统讲解的详细内容,更多关于存储与文件系统的资料请关注脚本之家其它相关文章!