Linux 磁盘存储术语总结
本文总结了Linux磁盘存储的核心概念与术语,分为五部分:1)基础概念,包括磁盘类型、存储接口和HDD物理结构;2)分区与格式化,涉及MBR/GPT分区表;3)文件系统,介绍Ext4/XFS等及其元数据结构;4)卷管理,涵盖LVM和RAID技术;5)挂载与访问,说明文件系统挂载和权限管理。
·
Linux 磁盘存储术语总结
第一部分:基础概念
从硬件层面入手,理解 Linux 如何识别和管理存储设备。这是构建知识体系的起点。
1.1 磁盘与存储设备
- 磁盘 (Disk):泛指任何用于持久存储数据的硬件设备,包括机械硬盘 (HDD)、固态硬盘 (SSD)、NVMe 驱动器等。在 Linux 中,磁盘被抽象为块设备 (Block Device),数据以固定大小的块 (通常 512 字节或 4KB) 读写。
- 块设备 (Block Device):Linux 内核对磁盘的抽象表示,支持随机访问。常见设备文件如
/dev/sda(SATA 硬盘)、/dev/nvme0n1(NVMe SSD) 或/dev/mmcblk0(eMMC 存储)。 - 字符设备 (Character Device):与块设备相对,用于顺序访问的设备,如磁带驱动器。但在磁盘存储中,主要关注块设备。
- 扇区 (Sector):磁盘的最小物理存储单元,通常 512 字节。现代磁盘可能使用 4KB 高级格式 (Advanced Format)。
示例:使用 lsblk 命令查看所有块设备:
lsblk -o NAME,TYPE,SIZE,MOUNTPOINT
这会列出如 sda (磁盘) 和其分区 sda1。
1.2 存储接口与协议
- SATA (Serial ATA):常见硬盘接口,速度可达 6 Gbps。
- SAS (Serial Attached SCSI):企业级接口,支持热插拔和更高可靠性。
- NVMe (Non-Volatile Memory Express):专为 SSD 设计的协议,利用 PCIe 总线,提供低延迟和高吞吐量。
- SCSI (Small Computer System Interface):通用存储接口协议,在 Linux 中通过
/dev/sd*表示。 - IDE/ATA:旧式接口,现多被 SATA 取代。
这些接口决定了磁盘的性能和兼容性。理解它们有助于选择硬件。
1.3 HDD 内部物理结构
HDD(Hard Disk Drive,机械硬盘)不同于 SSD,其内部由机械组件组成,数据通过磁性方式存储。以下是关键结构术语,按物理布局从内到外逐步说明,帮助建立直观模型。
- 盘片 (Platter):HDD 的核心存储介质,通常由铝合金或玻璃制成,表面涂有磁性材料。多个盘片堆叠在主轴上,每面可存储数据。数据以磁性极化方式记录(0/1)。
- 主轴 (Spindle):驱动盘片高速旋转的电机,通常转速为 5400 RPM、7200 RPM 或更高。旋转确保磁头能访问数据。
- 读写磁头 (Read/Write Head):悬浮在盘片表面上的微型电磁组件,用于读取(感应磁场)或写入(改变磁场)数据。每面盘片对应一个磁头。
- 执行臂/磁头臂 (Actuator Arm):连接磁头的机械臂,由音圈马达 (Voice Coil Motor) 驱动,实现磁头在盘片上的径向移动(寻道)。
- 磁道 (Track):盘片表面上的同心圆环,每个磁道存储连续数据。外圈磁道更长,可容纳更多数据。
- 柱面 (Cylinder):所有盘片上相同半径位置的磁道集合。磁头无需移动臂即可访问同一柱面的数据,提高效率。
- 扇区 (Sector):磁道的最小划分单元,通常 512 字节,包含数据和纠错码 (ECC)。扇区是数据访问的基本单位。
- 区域 (Zone):在 ZBR 中的分组。盘片被分成多个同心区域,每个区域的磁道有固定扇区数。
- ZBR (Zone Bit Recording):也称分区位记录或多区记录。将盘片分成多个区域(Zone),外区扇区数多于内区,以优化数据密度和容量(因为外磁道更长)。这提高了整体存储效率,但需特殊寻址管理。
- MBR (Master Boot Record):位于硬盘第一个扇区(扇区 0)的 512 字节结构,包含引导加载程序、分区表和签名。用于传统 BIOS 引导,支持最多 4 个主分区,磁盘限 2TB。
- 寻址方式 (Addressing Methods):
- CHS (Cylinder-Head-Sector):传统物理寻址,使用柱面号、磁头号和扇区号定位数据。受限于 BIOS,支持最大 8GB 磁盘。
- LBA (Logical Block Addressing):现代逻辑寻址,将整个磁盘视为连续块序列(从 0 开始编号)。克服 CHS 限制,支持大容量磁盘,常与 GPT 结合。
这些结构解释了 HDD 的机械性质:寻道时间(磁头移动)、旋转延迟(等待扇区)和传输时间影响性能。相比 SSD,HDD 更适合大容量归档。
第二部分:分区与格式化
磁盘需要划分成分区才能使用文件系统。这部分解释如何逻辑分割磁盘。MBR 和 GPT 已在上节提及,这里扩展其在分区中的作用。
2.1 分区基础
- 分区 (Partition):磁盘的逻辑划分,每个分区可独立格式化和挂载。Linux 支持主分区 (Primary Partition)、扩展分区 (Extended Partition) 和逻辑分区 (Logical Partition)。
- 分区表 (Partition Table):记录分区信息的结构,如 MBR (Master Boot Record) 或 GPT (GUID Partition Table)。
- MBR:传统分区表,支持最多 4 个主分区,磁盘大小限 2TB。
- GPT:现代分区表,支持无限分区和更大磁盘,使用 UUID 标识。
- 分区标识 (Partition ID/Type):如 83 (Linux Native)、8e (LVM) 或 ef (EFI System Partition)。
示例:使用 fdisk 或 gdisk 创建分区:
sudo fdisk /dev/sda
命令中输入 n 创建新分区。
2.2 格式化
- 格式化 (Formatting):在分区上创建文件系统结构的过程,也称作 “mkfs” (Make File System)。
- 低级格式化 (Low-Level Formatting):硬件级操作,创建扇区和轨道,通常由制造商完成。
- 高级格式化 (High-Level Formatting):软件级,创建文件系统元数据。
格式化会擦除数据,因此需谨慎。常见命令:mkfs.ext4 /dev/sda1。
第三部分:文件系统
文件系统是数据组织的桥梁,决定了如何存储文件、目录和元数据。
3.1 文件系统基础
- 文件系统 (File System):管理磁盘空间的软件层,如 Ext4、XFS、Btrfs 等。
- Inode (Index Node):存储文件元数据的结构,包括权限、所有者、时间戳和数据块指针。每个文件/目录一个 Inode。
- 超级块 (Superblock):文件系统的元数据块,包含 Inode 总数、块大小等信息。
- 日志 (Journal):记录文件系统变更的机制,防止崩溃时数据丢失(如 Ext3/4 的 journaling)。
3.2 常见 Linux 文件系统
- Ext4 (Fourth Extended File System):默认文件系统,支持大文件 (16TB)、日志和扩展属性。
- XFS:高性能文件系统,适合大容量存储,支持在线碎片整理。
- Btrfs (B-Tree File System):现代文件系统,支持快照、子卷、RAID 和数据校验。
- FAT32/vFAT:兼容 Windows 的文件系统,用于 USB 设备。
- NTFS:Windows 文件系统,Linux 通过 ntfs-3g 支持读写。
- ZFS:高级文件系统(源自 Solaris),支持池、数据集和快照,但需额外模块。
示例:检查文件系统类型:
df -T
3.3 文件系统层次结构
- 根文件系统 (Root File System):以
/为根的树状结构。 - 虚拟文件系统 (VFS):Linux 内核的抽象层,统一不同文件系统的接口。
第四部分:卷管理和高级存储
当单个磁盘不足时,使用卷管理扩展存储。
4.1 LVM (Logical Volume Manager)
- 物理卷 (Physical Volume, PV):LVM 中的磁盘或分区,经
pvcreate初始化。 - 卷组 (Volume Group, VG):多个 PV 的集合,经
vgcreate创建。 - 逻辑卷 (Logical Volume, LV):VG 中的可调整大小的分区,经
lvcreate创建,可动态扩展/缩小。 - 扩展区 (Extent):LVM 的最小分配单元,通常 4MB。
示例:创建 LVM:
pvcreate /dev/sdb
vgcreate myvg /dev/sdb
lvcreate -L 10G -n mylv myvg
4.2 RAID (Redundant Array of Independent Disks)
- RAID 0:条带化,无冗余,提高性能。
- RAID 1:镜像,提供冗余。
- RAID 5:条带化加奇偶校验,至少 3 盘,平衡性能和冗余。
- RAID 10:RAID 1 + 0 的组合。
- 软件 RAID:通过 mdadm 实现,如
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd。 - 硬件 RAID:由控制器管理。
RAID 与 LVM 可结合使用。
4.3 其他高级概念
- 薄 provisioning (Thin Provisioning):在 LVM/Btrfs 中,按需分配空间。
- 快照 (Snapshot):文件系统的只读副本,用于备份。
- 加密存储:如 LUKS (Linux Unified Key Setup),使用
cryptsetup加密分区。
第五部分:挂载与访问
将分区或卷集成到文件系统中。
5.1 挂载 (Mounting)
- 挂载 (Mount):将文件系统附加到目录树的过程。命令:
mount /dev/sda1 /mnt。 - 挂载点 (Mount Point):如
/home或/var。 - fstab (/etc/fstab):配置文件,定义开机自动挂载。格式:设备 UUID、挂载点、文件系统类型、选项等。
- UUID (Universally Unique Identifier):唯一标识分区,避免设备名变化。
- 卸载 (Unmount):
umount /mnt,移除挂载。
5.2 访问控制
- 权限 (Permissions):通过 chmod/chown 管理,基于用户/组。
- ACL (Access Control Lists):扩展权限,支持更细粒度控制,如
setfacl。 - Quota:磁盘配额,限制用户空间使用,如
quotaon。
第六部分:性能与监控
优化存储并监控健康。
6.1 性能术语
- IOPS (Input/Output Operations Per Second):每秒 IO 操作数,衡量随机访问性能。
- 吞吐量 (Throughput):数据传输速率,如 MB/s。
- 延迟 (Latency):IO 操作响应时间。
- 缓存 (Cache):如页面缓存 (Page Cache),加速读写。
6.2 监控工具
- iostat:监控 IO 统计。
- iotop:显示进程 IO 使用。
- smartctl:检查磁盘健康 (S.M.A.R.T.)。
- df/du:检查空间使用。
- fsck:文件系统检查和修复。
示例:iostat -x 1 实时监控。
更多推荐


所有评论(0)