1.磁盘结构
当前数据存储,依然以机械磁盘为主:
2.基本概念
1)扇区(sector):磁盘读写的物理基本单位,512Byte,查看命令:/sbin/fdisk -l
2)磁盘块(磁盘簇):操作系统管理磁盘的逻辑基本单位,4KB/16KB,查看命令: stat /boot
一个磁盘块中只能放置一个文件;文件所占用的空间,只能是磁盘块的整数倍。
磁盘块的大小是可以通过blockdev命令更改的。
3)页(Page):内存的最小存储单位,通常为 磁盘块的2^n,4KB/16KB,查看命令:
getconf PAGE_SIZE
3.磁盘IO
数据在磁盘上可由以下三个元素唯一确定:柱面号、盘面号、扇区号。
磁盘读写寻址:
1.寻道(寻道时间):
1)移动臂根据柱面号将磁头移动至指定柱面。
2)根据盘面号来确定需要读写的盘面。
2.旋转(旋转延迟)
盘片旋转,将指定块号的磁道段移至确定的磁头下。
磁盘读取进行的机械运动,包括:寻道时间、旋转延迟、传输时间。
1.寻道时间:将读写磁头移至正确磁道上的时间,代价最高
2.旋转延迟时间:磁盘旋转将目标扇区移至读写磁头下方所需时间,由磁盘转速决定
3.数据传输时间:完成数据传输所需时,由接口的数据传输率决定,纳秒级,远小于前两者。
磁盘IO是内存访问的几百倍到几万倍之间,一次磁盘IO约9ms,磁盘IO最主要的耗时花费在了寻址上。所以磁盘的顺序读写效率远高于随机读写,甚至和内存读写持平。
磁盘的顺序读的效率是随机读的40到400倍都有可能,顺序写是随机写的10到100倍。