Disk上的存储结构
介绍的是磁盘的存储结构,但技术原理上对于光盘也是通用的。
盘片划分
一个盘片的基本两级结构是: 轨道(Track)- 扇区(Sector)。
轨道是盘片上的同心圆(考虑到轨道的宽度,实际上是很窄的同心圆环)
而扇区则是一条轨道上按照一定角度划分的弧,是最基本的存储单元。
注意这个概念显然有别于几何学上的扇区,这里的扇区实际是几何意义上的扇区在某一轨道上的交集。
轨道
编号习惯
轨道的编号传统上从小到大按照从外到内的顺序。
PMR vs SMR
现在业界现在有两种主流的与轨道排布相关的磁记录方式:垂直式磁记录(Perpendicular magnetic recording,PMR)、叠瓦式磁记录(Shingled magnetic recording,SMR)
PMR 也可以称为传统式磁记录(Conventional magnetic recording,CMR)有着数十年的悠久历史。
SMR 是为了增加 PMR 的存储密度上限而发明的,使用了更窄的轨道排布布局,代价是安全性和访问效率都有所下降。
扇区
传统 HDD 的扇区是 512 bytes,CD-ROM 和 DVD-ROM 是 2048 bytes,现代 HDD 的扇区是 4096 bytes。
物理扇区和逻辑扇区
为了向后兼容,扇区还分了逻辑扇区和物理扇区两个概念。
物理扇区是实际上的扇区划分比如 4096 bytes。
逻辑扇区实际上是划分了物理扇区,比如 512 bytes,以提供更小的扇区的访问的后向兼容性,但这种访问显然是低效的,因为每次都要取出整个物理扇区修改后再重新写回去。因此除非必要,默认都采取逻辑扇区和物理扇区一样大小。
扇区结构
header area(so-called ID) + data area
header
同步字节+地址标志符+缺陷标志(flaw flag)+错误检查和纠正信息,如果数据区不可靠,还可一包含备用地址
data
同步字节+存储的数据+错误纠正码(ECC)
区位记录
Zero bit recording,ZBR。
按照传统磁盘扇区的划分方式,显然越靠外面的弧越长,磁密度越小,相对最里面的弧,显然存在严重的数据容量上的浪费。
如果按照半径范围,把盘上所有的轨道归为几个不同的分区(Zone),把不同的分区上的轨道的弧划分成从1到n不等数量的扇区,越靠外的弧划分出的轨道越多。
下图来自 wiki ,其中红绿灰三色就是三个分区,不同分区的弧分别可以有 $1$、$2$、$4$ 个扇区。
ZBR实际上是把原来的固定角速度转变为固定线速度,带来了数据容量的提高和外部扇区访问速度的提升。
不过由于系统编号管理是从到内,这就带来一个系统初创测试时期和后续使用过程中较大的性能差异的问题,有的drive会故意减慢读外周时的转速来避免这种差异。
现代的HDD普遍使用了 ZBR 的设计
文件系统映射
block 或 allocation unit 或 cluster ,指得是文件系统存储的基本单位,对应一般从 $1$ 个扇区 ($512$ bytes) 到 $128$ 个扇区 ($64$ Kbytes )。
这样的 cluster 包含的扇区不一定要在物理上是连续的。注意:它们不是碎片,因为在逻辑上它们是连续的