磁盘的结构体系

磁盘学习知识体系图.png

机械硬盘结构

  • 磁盘主轴 决定磁盘转速(rpm-round per minute)
  • 磁盘盘片 用于存储数据
  • 磁盘磁头 用于读取数据
  • 磁盘接口 用于连接主板 用于连接阵列卡

家用磁盘转速 7200rpm,5400rpm 企业磁盘转速 15000rpm,10000rpm


  • 磁盘(Disk)

硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头.受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内,但随着机械硬盘越来越大,盘片也有上百的,具体数量取决于硬盘厂商.盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面.

QQ截图20191126184210.png

  • 磁道(Track)

    作用说明:用来存储用户数据 特点说明:由多个同心圆组成 存储计数:最外面同心圆为0磁道 工作原理:磁盘默认按照磁道寻找数据 重点原理:磁头径向运动为机械运动(寻道) 性能小于固态硬盘(芯片) 原理特点:磁头机械运动较慢

  • 扇区(Sector)

    作用说明:用来存储用户数据 特点说明:磁盘存储最小单位 存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节 系统存储最小单位是block

下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分).扇区是磁盘的最小组成单元,通常是512字节.(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)

QQ截图20191126184218.png

  • 磁头(Head)

    作用说明:用来写入和读取数据的 特点说明:盘面数量等于磁头数量 工作原理:采用径向运动读写数据

  • 柱面(Cylinder)

    作用说明:用来存储用户数据 特点说明:不同盘面上相同的磁道组成(圆柱体) 工作原理:磁盘默认按照柱面进行读写 重点原理:磁头之间的切换为电子切换 原理特点:磁头电子切换较快

  • 单元块(Units)

    作用说明:用来存储用户数据 特点说明:表示单个柱面大小

硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面.柱面,其实是个“虚”的东西!它是分开的.物理上不是一体的.只是在空间上,它类似于一个桶的桶壁一样.磁盘的柱面数与一个盘面上的磁道数是相等的.由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数.

QQ截图20191126184227.png

磁盘容量计算

Centos6

  • 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
  • 上图磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为:
  • 存储容量 6 * 7 * 12 * 512 = 258048
  • 每个磁道的扇区数一样是说的老的硬盘,外圈的密度小,内圈的密度大,每圈可存储的数据量是一样的.新的硬盘数据的密度都一致,这样磁道的周长越长,扇区就越多,存储的数据量就越大.
  • 存储容量 255 * 63 * 6527 * 512 = 53686402560

QQ截图20191126185518.png

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e1fd4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        6528    51915776   8e  Linux LVM

Disk /dev/mapper/vg_1997sty-lv_root: 49.0 GB, 48964304896 bytes
255 heads, 63 sectors/track, 5952 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/vg_1997sty-lv_swap: 4194 MB, 4194304000 bytes
255 heads, 63 sectors/track, 509 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Centos7

  • 存储容量 = 扇区数 × 每扇区字节数
  • 存储容量 104857600 * 512 = 53687091200
[root@1997sty ~]# fdisk -l

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009772a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris
/dev/sda3         2508800   104857599    51174400   83  Linux

磁盘阵列

常见raid级别示意图.png

  • 阵列的作用
  1. 提高磁盘存储效率
  2. 提高磁盘存储安全
  3. 提高磁盘存储容量

QQ截图20191126183405.png

什么是LVM

  • LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术.它是Linux环境下对磁盘分区进行管理的一种机制.现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作.比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式.
  • 在Linux操作系统中我们的磁盘管理机制和Windows上的都差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底层也就是自动将所有的分区挂载好,然后我们就可以对该分区进行使用了.可这样做的话会带来很多问题,比如我们使用的一个分区所剩空间大小已经不够使用了,这个时候我们没法对分区进行扩充,我们只能通过增加硬盘,然后在新的硬盘上创建分区,对分区进行格式化,然后将之前分区的所有东西都拷贝到新的分区里面才行.但是新增加的硬盘是作为独立的文件系统存在的,原有的文件系统并没有得到任何的扩充,上层应用只能访问到一个文件系统.这样的方式对个人的电脑来说可能还能接受,但是如果对于生产环境下的服务器来说,这是不可接受的.因为如果要把一个分区的内容都拷贝到另一个分区上去,势必要首先卸载掉之前的那个分区,然后再对整个分区进行拷贝,如果服务器上运行着一个重要的服务,要求是 7*24 小时运行正常的,那么卸载掉分区这是不可想象的,同时如果该分区保存的内容非常非常的多,那么在对分区进行转移时时间可能会耗费很久,所以,这个时候我们就会受到传统磁盘管理的限制,因为其不能够进行动态的磁盘管理.因此,为了解决这个问题,LVM技术就诞生了!这也是LVM最大的优点.
  • 目前案例:云服务器的硬盘

LVM的优缺点

优点

  • 可以在系统运行的状态下动态的扩展文件系统的大小.
  • 文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制.
  • 可以增加新的磁盘到LVM的存储池中.
  • 可以以镜像的方式冗余重要的数据到多个物理磁盘.
  • 可以方便的导出整个卷组到另外一台机器.

缺点

  • 在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用).
  • 当卷组中的一个磁盘损坏时,整个卷组都会受到影响.
  • 因为加入了额外的操作,存贮性能受到影响.