共计 3290 个字符,预计需要花费 9 分钟才能阅读完成。
一、磁盘介绍
磁盘:计算机中的外部存储设备,负责存储计算机数据,并且断电后也能保持数据不丢失。
磁盘分类:
按照物理结构:
- 机械磁盘
- 固态磁盘
按照接口:
- IDE
- SCSI
- SATA
- SAS
- mSATA
- M.2
- NVME
- PCIe
按照尺寸:
- 机械硬盘:1.8 寸 2.5 寸 3.5 寸
- 固态硬盘:SATA: 2.5 寸
- M.2:2242、2260、2280
二、熟悉磁盘的工作原理
机械磁盘的读写数据依靠电机带动盘片转动来完成数据读写的。
机械磁盘剖析图
为了使磁盘内部清洁,磁盘是在真空特殊环境中制作的,不能随意拆卸,拆开后基本报废了
机械磁盘工作是依靠马达带动盘片转动,通过磁头来读取磁盘上的数据。
磁盘术语
磁盘
硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读 / 写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在 5 片以内。盘片的编号自下向上从 0 开始,如最下边的盘片有 0 面和 1 面,再上一个盘片就编号为 2 面和 3 面。
磁头
负责读取盘面数据的设备
磁道
从盘片的最内侧向外有很多同心圆圈,我们称为磁道
扇区
从圆心向外画直线,可以将磁道划分为若干个弧段,称之为扇区,一个扇区通常为512B
磁柱
硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。
三、磁盘的性能指标
影响磁盘性能的指标
寻道时间(seek time)【和 转速 相关】:Tseek,是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/ O 操作越快,目前磁盘的平均寻道时间一般在 3 -15ms
旋转延迟:Trotation,是指盘片旋转将请求数据所在的扇区移动到读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常用磁盘旋转一周所需时间的 1 / 2 表示。比如:7200rpm 的磁盘平均旋转延迟大约为 60*1000/7200/2 = 4.17ms,而转速为 15000rpm 的磁盘其平均旋转延迟为 2ms。
数据传输时间:Ttransfer,是指完成传输所请求的数据所需要的时间
衡量磁盘性能的指标
IOPS:IOPS(Input/Output Per Second)即每秒的输入输出量(或读写次数),即指每秒内系统能处理的 I / O 请求数量。随机读写频繁的应用,如小文件存储等,关注随机读写性能,IOPS 是关键衡量指标。可以推算出磁盘的 IOPS = 1000ms / (Tseek + Trotation + Transfer),如果忽略数据传输时间,理论上可以计算出随机读写最大的 IOPS。常见磁盘的随机读写最大 IOPS 为:
- 7200rpm 的磁盘 IOPS = 76 IOPS
- 10000rpm 的磁盘 IOPS = 111 IOPS
- 15000rpm 的磁盘 IOPS = 166 IOPS
throughput: 吞吐量指单位时间内可以成功传输的数据数量。单位为(m/s G/s)
** 文件系统:** 是告知操作系统使用何种方法和数据结构在存储设备或分区上读写数据的;是分区数据管家,负责如何将数据写入磁盘或者从磁盘读出
NTFS EXT3 EXT4 XFS ISO9660
具体有多少 man mount -t
adfs, affs, autofs, cifs, coda, coherent, cramfs,debugfs, devpts, efs, ext, ext2, ext3, ext4, hfs, hfsplus, hpfs,iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4,ramfs, reiserfs, romfs, squashfs, smbfs, sysv, tmpfs, ubifs,udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs.
文件系统可以根据应用场景去选择使用哪一款,如果不会选择,推荐 ext4 或者 XFS
page cache
其实就是内存上空闲的部分 用来缓存数据,比如 buffer cache
作用:对 IO 读写做优化
测试缓存对读写的影响
写
[root@zutuanxue ~]# echo 3 > /proc/sys/vm/drop_caches
[root@zutuanxue ~]# free -m
total used free shared buff/cache available
Mem: 1980 95 1807 9 77 1754
Swap: 2047 0 2047
[root@zutuanxue ~]# dd if=/dev/zero of=/tmp/big bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节 (1.0 GB) 已复制,10.2412 秒,102 MB/ 秒
[root@zutuanxue ~]# free -m
total used free shared buff/cache available
Mem: 1980 95 779 9 1105 1698
Swap: 2047 0 2047
[root@zutuanxue ~]# dd if=/dev/zero of=/tmp/big1 bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节 (1.0 GB) 已复制,7.89978 秒,133 MB/ 秒
读
[root@zutuanxue ~]# echo 3 > /proc/sys/vm/drop_caches
[root@zutuanxue ~]# free -m
total used free shared buff/cache available
Mem: 1980 95 1805 9 79 1753
Swap: 2047 0 2047
[root@zutuanxue ~]# dd if=/tmp/big of=/dev/null
记录了2048000+0 的读入
记录了2048000+0 的写出
1048576000字节 (1.0 GB) 已复制,2.23965 秒,468 MB/ 秒
[root@zutuanxue ~]# free -m
total used free shared buff/cache available
Mem: 1980 95 800 9 1084 1710
Swap: 2047 0 2047
[root@zutuanxue ~]# dd if=/tmp/big of=/dev/null
记录了2048000+0 的读入
记录了2048000+0 的写出
1048576000字节 (1.0 GB) 已复制,1.92811 秒,544 MB/ 秒
四、linux 磁盘的使用方法
4.1、磁盘初始化
一块新的磁盘使用必须初始化为 MBR 或者 GPT 分区。
- MBR <2TB fdisk 4 个主分区或者 3 个主分区 + 1 个扩展分区(N 个逻辑分区)
MBR(Master Boot Record)的缩写,由三部分组成,即:
- Bootloader(主引导程序)=446 字节
- 引导操作系统的主程序
- DPT 分区表(Disk Partition Table)=64 字节
- 分区表保存了硬盘的分区信息,操作系统通过读取分区表内的信息,就能够获得该硬盘的分区信息
- 每个分区需要占用16 个字节大小,保存有文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4 个字节)、分区总扇区数目(4 个字节)等内容
- 分区表中保存的分区信息都是 主分区与扩展分区 的分区信息,扩展分区不能直接使用,需要在扩展分区内划分一个或多个逻辑分区后才能使用
- 逻辑分区的分区信息 保存在 扩展分区内 而不是保存在 MBR 分区表内,这样,就可以突破 MBR 分区表只能保存 4 个分区的限制
- 硬盘有效标志(校验位)= 2 个字节
- GPT >2TB gdisk(parted) 128 个主分区
注意:从 MBR 转到 GPT,或从 GPT 转换到 MBR 会导致 数据全部丢失!
4.2、分区
将磁盘合理分区,能使计算机或者使用者更快的存取数据
MBR 主分区 + 扩展分区 <=4
GPT 主分区 <=128
4.3、格式化
装载文件系统(相当于库管,负责数据的写入和读出)。
常见的文件系统:NTFS EXT EXT2 EXT3 EXT4 XFS vfat
4.4、挂载
linux 中设备不能直接使用,需要挂载到文件夹才可以。
挂载方式:
- 手动挂载
- 开机挂载
- 自动挂载