linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]

1. 磁盘的外部结构

我们首先查看一个磁盘的结构,然后我们来进行一一的解读:

linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
磁盘的主轴决定磁盘的转速,转的越快,就会效率越高。

  • 主轴一但加电,就会让盘片转动起来。
  • 家有磁盘转速:7200rpm 5400rpm
  • 企业磁盘转速:15k rpm 10k rpm

盘片就是用来存储数据的,其中含有一个强力磁铁。

磁头臂,从边上移到磁盘上开始上下移动,就可以读取磁盘上的内容。当磁盘不读之后,磁头臂,就会移回来。

串行接口(磁盘接口)用于连接主板,用于连接阵列卡,给磁盘供电

这就是一个机械硬盘的工作方式。

一个新的硬盘,没有打开的时候,他是以真空的方式存在的,一但打开就会有灰尘落在盘片上了,有损耗。

2.磁盘的内部结构

主轴上有时含有多个盘片,如下图:

linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
磁头首先在磁盘的最外面接触这个盘片(用磁力无限接近),然后镜像移动(只能沿着半径移动)就是寻道,读取数据(有多少个盘面就由多少个磁头)。

多个盘片上首先会将他划分为多个盘面,三个盘片划分为6个盘面。如果我们要读取第三个盘面第一磁道的数据,首先第一个磁头放到第一个盘面的0磁道上,开始读取0磁道上的数据,没有找到对应数据,告诉第二个磁头开始寻找,第二个磁头也开始在第二盘面的0磁道开始寻找,没有找到,告诉第三个磁头开始寻找,从0磁道开始寻找,没有找到,依次告诉第四个,直到第六个磁头在0磁道没有找到,他告诉第一个磁头他没有找到,所有磁头移动到同一个磁道,第一磁道。第一个磁头开始在一磁道开始寻找,没有找到,告诉第二磁头,第二磁头开始寻找,没有找到,告诉第三磁头,第三磁头找到了一磁道中需要的数据。

不同的盘片上的相同磁道我们称他们是一个柱面。也就是说,一个柱面是一个单元块。

也就是说磁头在读取的时候,都是通一依次读取同一个磁道。读取同一个柱面

那么数据如何存储呢?

linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
我们拿出一个盘片进行查看:

盘片上有很多圈,这些圈称为磁道,每次我们存储数据的时候就是把数据存储在磁道上,每个磁道存储的数据一样大

一般都是将数据连续存储在同一个磁道上,但是如果这条磁道刚存了一半的文件就满了,使用下一磁道继续存储。

从物理角度来说,我们将磁道分为一小块一小块的数据存储的最小的物理区域就是扇区(512字节)

从逻辑角度,系统存储数据的最小区域就是一个block(存数据)或者inode(存属性),但是一个block或者inode中可能含有多个扇区。

3. 计算一个磁盘的大小

解题:如果一个磁道大小为10M,每个盘面含有10个磁道,共有6个盘面则一个柱面的大小为?一个盘面大小为?这个磁盘大小为?

  • 柱面:10M x 6 = 60M
  • 盘面:10M x 10 = 100M
  • 盘片:10M x 10 x 2 = 200M
  • 磁盘大小:10M x 10 x 6 = 600M

但是固态硬盘中都是芯片,所以效率更高。

在linux中我们可以这样查看计算:

linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
也就是20971520 x 512byte = 10737418240 bytes = 10.7GB