Linux 系统磁盘相关概念

2018-07-01 Linux

磁盘是数据存储的常见介质。本文整理 Linux 系统下磁盘相关的概念。

磁盘存储结构

磁盘结构

image

存储容量 = 磁头数 × 柱面数 × 每个磁道的扇区数 × 每扇区字节数 即:容量 = heads * cylinders * sectors * 512

需注意现代硬盘数据的密度都均匀一致,这样越是外圈的磁道(track)扇区数就越多,存储的数据量就越大。

磁盘寻址方式

  • C/H/S(Cylinder/Head/Sector)
    • 老式硬盘容量较小,每磁道扇区数相等,内外磁道扇区密度不同,造成空间浪费
  • LBA(Logical Block Address)
    • 把所有物理扇区按规则看做是一个线性编号的扇区
    • 用一个序数,即 LBA 地址即可确定一个惟一的物理扇区
    • 即 LBA 是逻辑地址,C/H/S 是物理地址
    • 为了兼容老式 BIOS,由新式硬盘内部地址转换器实现 CHS 地址和 LBA 地址的转换

磁盘数据加载耗时

磁盘读取数据的耗时主要在以下各方面:

耗时原因 说明
寻道时间 把磁头移动到数据所在磁道位置耗时
旋转延迟 移动具体磁道至磁头位置耗时,主要取决于转速
数据传输 完成数据传输所需时间

Linux 下的磁盘

Linux 操作系统基于一切都是文件的理念,对磁盘等硬件设备进行了抽象处理。

Linux 内核的设备抽象

Linux 内核将设备分为三类:

设备类型 说明 举例
字符设备 1.顺序访问 2.以字符为基本单位 3.无缓存 常见的外设
块设备 1.随机访问 2.以块为存储的基本单位 3.有缓存 常见的存储设备
网络设备 将外通信抽象为设备机制,采用 socket 实现 socket + 设备驱动 + 网络协议

每一个字符设备或块设备都在 /dev 目录下对应一个设备文件。通过设备文件(或称设备节点)来使用驱动程序操作字符设备和块设备。

存储概念

概念 说明 大小
扇区 sector,磁盘存储数据最小单元 512 bytes
块/簇 (widows/linux) 文件系统最小单元 4K bytes
Page 内存与操作系统交互的最小单元  

注:因此一个实际大小为 1 字节的文件,在文件系统中却占用了 4K(4096) 字节的空间。

Search

    Post Directory