写在前面
本文看下磁盘相关基础内容。
1:磁盘的分类
当前磁盘分为机械磁盘,也称为磁盘驱动器,hard disk driver。简称HDD。固态硬盘,简称SSD。分别看下。
1.1:机械磁盘
机械磁盘由盘片和磁头组成,而在盘片上有磁道,磁道负责真正的存储数据,磁道找到数据存储的对应磁道的过程叫做磁道寻址。如果是不需要磁道寻址就叫做连续IO,这种方式因为不需要寻址,即不需要移动磁头,效率较高。如果是需要磁道寻址就叫做随机IO,这种方式因为需要寻址,即需要移动磁头,所以效率较低。
机械磁盘的最小读写单元是扇区,一个扇区大小512字节。
1.2:固态硬盘
固态磁盘不需要寻址,性能优于机械磁盘。也更贵。固态磁盘的最小读写单元是页,大小4k,8k。
不管是哪种磁盘设备,在Linux中都是以块设备的形式来进行管理的。
2:通用块层
因为块设备多种多样,为了减少文件系统使用过程中的复杂度,定义了通用块层来屏蔽这种差异。具体的通用块层做如下的事情:
1:向上对于文件系统提供统一的块设备访问的标准接口
2:向下对于不同的块设备提供统一的管理
3:对上层的io请求进行调度
2:IO栈
文件系统,通用块,块设备就构成了完整的IO栈,如下图:
