Linux-磁盘管理
磁盘结构
物理结构
- 机械硬盘(HDD, Hard Disk Drive)
- 组成:由盘片、磁头、主轴电机、控制电路等机械部件构成。
- 读写原理:通过磁头在高速旋转的盘片上移动进行磁记录。
- 特点:容量大、成本低,但速度较慢(受转速影响,如5400/7200/10000 RPM)、易受震动损坏。
- 固态硬盘(SSD, Solid State Drive)
- 组成:由NAND闪存芯片、主控、缓存等电子元件构成,无机械部件。
- 读写原理:通过电信号直接访问存储单元。
- 特点:速度快、抗震、低功耗,但寿命受写入次数限制(TBW参数),单位容量成本较高。
- 混合硬盘(SSHD, Solid State Hybrid Drive)
- 结合HDD和SSD:用小容量闪存缓存频繁访问数据,提升性能,同时保留大容量机械存储。
| 对比项 | 机械硬盘(HDD) | 固态硬盘(SSD) |
|---|---|---|
| 存储原理 | 磁性盘片 + 机械磁头读写 | NAND闪存芯片(无机械部件) |
| 读写速度 | 较慢(100-200 MB/s,随机访问延迟高) | 极快(500-7000 MB/s,随机访问延迟极低) |
| 抗震性 | 差(机械部件易受震动损坏) | 强(无活动部件,耐冲击) |
| 噪音 | 有(盘片旋转和磁头移动声) | 无(完全静音) |
| 功耗 | 较高(需驱动电机) | 较低(无机械运动,更省电) |
| 发热量 | 较高(机械摩擦产生热量) | 较低(主控和闪存芯片发热较小) |
| 寿命 | 较长(磁记录无写入次数限制) | 有限(NAND闪存有擦写次数限制,但足够家用) |
| 容量 | 大(单盘可达20TB+) | 较小(主流1TB-4TB,大容量价格高) |
| 价格(每GB) | 低(适合大容量存储) | 高(但价格持续下降) |
| 接口 | SATA、SAS | SATA、NVMe(PCIe)、M.2、U.2 |
| 启动时间 | 较慢(需等待盘片加速) | 瞬间启动(无机械延迟) |
| 碎片影响 | 明显(碎片化会降低性能) | 几乎无影响(无磁头寻道问题) |
| 适用场景 | 大容量存储、冷数据备份、NAS | 系统盘、游戏、高性能计算、笔记本电脑 |
- 选HDD:需要大容量、低成本存储(如电影、备份)。
- 选SSD:追求速度、响应时间(如操作系统、游戏、生产力工具)。
- 混合方案:SSD(系统+常用软件) + HDD(数据存储)是性价比之选。
接口类型
并口
特点
- 多线传输:同时使用多根数据线(如8/16/32根)并行传输数据,每个时钟周期可发送多位数据。
- 高带宽(理论):早期因并行传输被认为速度更快。
- 信号干扰:由于多线并行,容易产生串扰(Crosstalk)和时钟偏移(Skew),影响稳定性。
- 短距离适用:长距离传输时信号衰减严重,故主要用于机内连接。
硬盘接口
PATA(Parallel ATA,又称IDE)
- 用途:早期机械硬盘(HDD)和光驱接口。
- 带宽:最高 133 MB/s(ATA-7标准)。
- 连接方式:40/80针排线,支持主从设备(Master/Slave跳线设置)。
- 缺点:线缆宽大(影响机箱散热)、速度受限、不支持热插拔。
SCSI(Parallel SCSI)
- 用途:企业级服务器、工作站存储。
- 带宽:最高 320 MB/s(Ultra320 SCSI)。
- 特点:支持多设备串联(Daisy Chain)、高延迟但稳定性强。
IEEE 1284(并口打印机接口)
- 用途:老式打印机、扫描仪。
- 速度:约 2 MB/s(EPP/ECP模式)。
串口
特点
- 单线/差分传输:数据按位依次传输(如1根数据线+时钟线),或使用差分信号(如LVDS)抗干扰。
- 高频率低延迟:通过提高时钟频率弥补单线带宽限制,实际速度远超并口。
- 抗干扰强:差分信号(如PCIe、SATA)适合长距离和高速传输。
- 简化布线:线缆更细(如SATA仅7针),支持热插拔。
硬盘接口
SATA(Serial ATA)
- 用途:取代PATA,成为HDD/SSD主流接口。
- 带宽:
- SATA I:1.5 Gbps(~150 MB/s)
- SATA II:3 Gbps(~300 MB/s)
- SATA III:6 Gbps(~600 MB/s)
- 优势:线缆小巧、支持热插拔(部分主板需配置)。
SAS(Serial Attached SCSI)
- 用途:企业级存储,兼容SATA(但SATA设备不能用于SAS接口)。
- 带宽:
- SAS 12Gbps(~1200 MB/s)
- SAS 24Gbps(新一代)
- 特点:双端口冗余、高可靠性、支持全双工。
PCIe/NVMe
- 用途:高性能SSD(如M.2 NVMe、U.2)。
- 带宽:
- PCIe 3.0 x4:4 GB/s
- PCIe 4.0 x4:8 GB/s
- PCIe 5.0 x4:16 GB/s
- 优势:直接连接CPU,超低延迟,适合高速存储。
USB(串行通信)
- 用途:外接存储设备(移动硬盘、U盘)。
- 带宽:
- USB 3.2 Gen 2x2:20 Gbps(~2.5 GB/s)
- USB4(雷电3兼容):40 Gbps
并口 vs 串口对比表
| 对比项 | 并口(Parallel) | 串口(Serial) |
|---|---|---|
| 传输方式 | 多根数据线同时传输 | 单根数据线按位传输 |
| 典型接口 | PATA(IDE)、Parallel SCSI | SATA、SAS、PCIe/NVMe、USB |
| 带宽上限 | 低(PATA 133 MB/s,SCSI 320 MB/s) | 高(NVMe PCIe 4.0 x4 可达 8 GB/s) |
| 抗干扰能力 | 差(易受串扰影响) | 强(差分信号抗干扰) |
| 线缆复杂度 | 宽大(如40/80针IDE排线) | 细小(如SATA 7针、M.2无缆线) |
| 适用场景 | 早期硬盘、老式外设 | 现代SSD、高速外设、企业存储 |
| 发展趋势 | 已被淘汰(SATA/NVMe取代) | 主流(未来向PCIe 5.0/6.0演进) |
总结
- 并口(PATA/SCSI):早期技术,受限于信号干扰和带宽,已被串口取代。
- 串口(SATA/SAS/NVMe):现代主流,凭借高速度、低延迟和抗干扰优势,成为存储接口标准。
- 未来趋势:PCIe 5.0/6.0和NVMe协议将进一步推动串口存储性能提升。
Linux 磁盘分区表示
磁盘设备命名
- IDE 硬盘(旧式):
/dev/hdX- 例如:
/dev/hda(第一块 IDE 硬盘),/dev/hdb(第二块 IDE 硬盘)。
- 例如:
- SATA/SCSI/SAS/NVMe 硬盘(现代):
/dev/sdX- 例如:
/dev/sda(第一块 SATA/SCSI 硬盘),/dev/sdb(第二块)。
- 例如:
- NVMe SSD:
/dev/nvmeXnY- 例如:
/dev/nvme0n1(第一块 NVMe 硬盘),/dev/nvme0n1p1(第一个分区)。
- 例如:
分区命名
- 主分区/扩展分区:
/dev/sdXN(X是磁盘字母,N是分区号,1~4)- 例如:
/dev/sda1(第一块硬盘的第一个主分区)。
- 例如:
- 逻辑分区:
/dev/sdXN(N从 5 开始)- 例如:
/dev/sda5(第一块硬盘的第一个逻辑分区)。
- 例如:
磁盘命名的区别
| 设备名 | 接口类型 | 典型用途 |
|---|---|---|
/dev/sda | SATA/SCSI/SAS | 第一块普通硬盘(系统盘) |
/dev/sdb | SATA/SCSI/SAS | 第二块普通硬盘(数据盘) |
/dev/nvme0n1 | NVMe SSD | 高速固态硬盘(现代电脑) |
/dev/hda | IDE(旧式) | 老式机械硬盘 |
文件系统分类
Windows 常用文件系统
| 文件系统 | 最大卷/文件大小 | 特点 |
|---|---|---|
| FAT32 | 卷: 2TB 文件: 4GB | - 兼容性极强(U盘、游戏机、车载设备等) - 不支持大文件(如高清视频) |
| exFAT | 卷: 128PB 文件: 16EB | - 专为闪存设计(U盘、SD卡) - 支持大文件,无日志功能,跨平台兼容 |
| NTFS | 卷: 256TB 文件: 16EB | - Windows 默认文件系统 - 支持日志、加密、压缩、权限控制 - macOS/Linux 需额外驱动写入 |
Linux 常用文件系统
| 文件系统 | 特点 |
|---|---|
| ext4 | - Linux 默认文件系统 - 支持日志、大文件(16TB)、快照 - 稳定性高 |
| XFS | - 高性能(适合大文件/服务器) - 动态扩展,但收缩困难 |
| Btrfs | - 支持写时复制(COW)、快照、RAID - 适合数据完整性要求高的场景 |
| ZFS | - 高级文件系统(整合卷管理) - 支持数据去重、压缩、快照(需高资源) |
macOS 常用文件系统
| 文件系统 | 特点 |
|---|---|
| APFS | - macOS 默认文件系统(SSD优化) - 支持加密、快照、空间共享 |
| HFS+ | - 旧版 macOS 文件系统 - 兼容性较好但逐渐被淘汰 |
通用/网络文件系统
| 文件系统 | 用途 |
|---|---|
| ISO 9660 | 光盘标准格式(兼容所有系统) |
| UDF | 可擦写光盘/蓝光文件系统 |
| NFS | 网络文件系统(Linux/Unix 间共享) |
| SMB/CIFS | Windows 网络共享协议(跨平台文件访问) |
对比总结
| 选择依据 | 推荐文件系统 |
|---|---|
| Windows 系统盘 | NTFS |
| Linux 系统盘 | ext4(通用)、XFS(大文件) |
| macOS 系统盘 | APFS |
| U盘/SD卡 | exFAT(跨平台)、FAT32(老旧设备) |
| 网络共享 | NFS(Linux)、SMB(Windows/macOS) |
| 高性能存储 | XFS(Linux)、NTFS(Windows)、APFS(macOS) |
注意事项
- 跨平台兼容性:exFAT 是 Windows/macOS/Linux 通用选择。
- 日志功能:NTFS/ext4/XFS 等支持日志,意外断电时数据更安全。
- SSD 优化:APFS(macOS)、F2FS(Linux/Android)可延长闪存寿命。
磁盘分区管理(MBR和GPT)
MBR(Master Boot Record,主引导记录)
MBR是Master Boot Record的简称,也就是主引导记录,是位于磁盘最前边的一段引导(Loader)代码,主要用来引导操作系统的加载与启动。MBR 中包含硬盘的主引导程序和硬盘分区表。分区表有 4 个分区记录区,每个分区记录区占 16 个字节,共 64 字节。446 字节存放主引导程序,2 字节校验。
主分区可以直接使用,而逻辑分区必须包含在扩展分区内。
特点
| 项目 | MBR 的限制 |
|---|---|
| 最大磁盘容量 | 2TB(受限于32位寻址) |
| 分区数量 | 最多4个主分区,或3主分区+1扩展分区(扩展分区内可再分逻辑分区) |
| 兼容性 | 广泛兼容(所有BIOS系统、Windows/Linux旧版本) |
| 安全性 | 无冗余校验,分区表损坏可能导致数据丢失 |
| 主导位置 | 硬盘的第一个扇区(512字节)。引导代码(446字节),分区表(64字节,最多4个主分区),签名(2字节,0x55AA) |
何时使用主分区?
- 系统关键分区(如
/boot、/、/efi等),因为某些引导加载程序(如 GRUB)可能要求这些分区是主分区。 - 分区数量 ≤ 4,不需要额外逻辑分区时。
- 需要直接引导的分区(如 Windows 的
C:盘通常必须是主分区)。
示例:
/dev/sda1→/boot(主分区)/dev/sda2→/(主分区)/dev/sda3→/home(主分区)/dev/sda4→ 扩展分区(用于逻辑分区)
何时使用逻辑分区?
- 需要超过 4 个分区(因为 MBR 只允许 4 个主分区)。
- 数据存储分区(如
/data、/backup等非关键分区)。 - 不需要引导的分区(逻辑分区通常不用于
/boot或/)。
示例:
/dev/sda4→ 扩展分区(不直接使用)/dev/sda5→/data(逻辑分区)/dev/sda6→/backup(逻辑分区)/dev/sda7→swap(逻辑分区)
MBR管理硬盘 - fdisk
语法格式
fdisk [选项] <磁盘设备>常见交互选项
m 查看帮助菜单
p 打印当前分区表
n 新建分区
d 删除分区
t 修改分区类型(如 82=swap, 83=Linux)
w 保存并退出
q 不保存退出输出示例解析
磁盘整体信息
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: Samsung SSD 860
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3A1B2C3D-4E5F-6789-ABCD-EF0123456789| 字段 | 说明 |
|---|---|
Disk /dev/sda | 磁盘设备名(这里是第一块 SATA 硬盘)。 |
238.5 GiB | 磁盘总容量(GiB = Gibibyte,约 238.5 GB)。 |
256060514304 bytes | 磁盘总字节数。 |
500118192 sectors | 总扇区数(每个扇区默认 512 字节)。 |
Disk model | 磁盘型号(部分硬盘会显示厂商信息,如 Samsung SSD 860)。 |
Units | 计算单位(这里显示扇区大小,1 sector = 512 bytes)。 |
Sector size | 逻辑扇区/物理扇区大小(通常相同,高级硬盘可能不同,如 4K 对齐)。 |
I/O size | 最小/最佳 I/O 操作大小(影响性能)。 |
Disklabel type | 分区表类型(gpt 或 dos(即 MBR))。 |
Disk identifier | 磁盘的唯一标识符(GPT 是 UUID,MBR 是随机生成的 16 进制码)。 |
分区详细信息
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 2050047 999424 488M Linux filesystem
/dev/sda3 2050048 500117503 498067456 237.5G Linux filesystem| 字段 | 说明 |
|---|---|
Device | 分区设备名(如 /dev/sda1)。 |
Start | 分区的起始扇区(从磁盘开头计算的偏移量)。 |
End | 分区的结束扇区。 |
Sectors | 该分区占用的扇区数(End - Start + 1)。 |
Size | 分区大小(自动换算为易读单位,如 512M、237.5G)。 |
Type | 分区类型: - EFI System(UEFI 启动分区) - Linux filesystem(普通 Linux 分区) - Linux swap(交换分区) - Microsoft basic data(Windows NTFS/FAT) |
注意事项
- 数据风险:误操作会导致数据丢失,操作前务必确认设备名
- 生效需重启:部分操作需要
partprobe或重启生效 - GPT 磁盘:如需操作 GPT 分区表,建议使用
gdisk或parted - SSD 对齐:现代 SSD 建议使用
-u=sectors参数确保对齐
扩展知识
- 分区后需用
mkfs格式化文件系统 - 使用
blkid查看新分区的 UUID - 通过
/etc/fstab实现自动挂载
常见问题
(1)为什么第一个分区从 2048 扇区开始?
- 早期磁盘从 63 扇区开始,但现代系统默认 1MB 对齐(2048 × 512B = 1MB),避免 SSD 性能下降。
(2)如何判断磁盘是 MBR 还是 GPT?
查看
Disklabel type:sudo fdisk -l /dev/sda | grep "Disklabel"输出可能是
dos(MBR)或gpt。
(3)如何查看分区的文件系统类型?
使用
blkid命令:sudo blkid /dev/sda1输出示例:
/dev/sda1: UUID="1234-5678" TYPE="vfat" PARTUUID="abcd-efgh"TYPE="vfat"表示 FAT32(常见于 EFI 分区)。TYPE="ext4"表示 Linux ext4 分区。
GPT(GUID Partition Table,GUID 分区表)
GPT磁盘是指使用GUID分区表的磁盘,GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准
特点
| 项目 | GPT 的优势 |
|---|---|
| 最大磁盘容量 | 支持 9.4ZB(1ZB = 10亿TB,理论无实际限制) |
| 分区数量 | 最多 128 个主分区(Windows 默认限制) |
| 兼容性 | 需 UEFI 启动(现代操作系统均支持,如 Win8+/Linux/macOS) |
| 安全性 | 支持 CRC 校验,分区表损坏可恢复 |
| 功能扩展 | 支持 >2TB 磁盘,适合 NVMe SSD 和大容量存储 |
| 引导位置 | 保护性MBR(第一个扇区,兼容旧系统),主GPT头(第二个扇区),分区表(随后的多个扇区),备份分区表和GPT头(磁盘末尾) |
GPT 分区适用场景
推荐所有新系统使用 GPT,特别是:
- UEFI 引导的计算机(必须使用 GPT)。
- 大容量磁盘(>2TB)。
- 需要多个分区(>4)。
示例:
/dev/nvme0n1p1→/boot/efi(ESP 分区,FAT32)/dev/nvme0n1p2→/(ext4)/dev/nvme0n1p3→/home(ext4)/dev/nvme0n1p4→swap/dev/nvme0n1p5→/data(可以继续增加,无限制)
GPT管理硬盘
parted - 语法格式
parted [选项] <磁盘设备> [命令]交互模式常用命令
| 命令 | 功能 | 示例 |
|---|---|---|
print | 显示当前分区表 | print |
mklabel | 创建分区表类型 | mklabel gpt |
mkpart | 新建分区 | mkpart primary ext4 1MiB 10GiB |
resizepart | 调整分区大小 | resizepart 2 20GiB |
rm | 删除分区 | rm 3 |
unit | 设置单位 | unit GB |
quit | 退出 | quit |
注意事项
- 数据安全:
- 操作前务必备份数据
- 调整分区大小需文件系统支持(如
ext4/xfs)
- 单位规范:
- 建议使用 MiB/GiB 避免歧义(
1MiB=1048576B) - 起始位置从
1MiB开始以保证对齐
- 建议使用 MiB/GiB 避免歧义(
- 与文件系统的关系:
parted只操作分区表,格式化需用mkfs- 调整大小后可能需要
resize2fs/xfs_growfs
MBR vs GPT 对比表
| 对比项 | MBR | GPT |
|---|---|---|
| 最大磁盘容量 | 2TB | 9.4ZB(理论值) |
| 分区数量 | 4个主分区(或扩展分区+逻辑分区) | 128个主分区(Windows 默认) |
| 启动模式 | 仅支持 BIOS(Legacy) | 需 UEFI(但可通过 CSM 兼容 BIOS 启动) |
| 数据安全性 | 无校验,易损坏 | CRC 校验,冗余备份 |
| 兼容性 | 兼容所有老系统 | 需现代系统(Win8+/Linux/macOS) |
| 适用场景 | 旧电脑、小容量磁盘 | 新硬件、大容量 SSD/HDD |
文件系统与LVM
创建文件系统
语法格式
mkfs [选项] 分区设备
mkfs.[文件类型] 分区设备
# 文件类型常用ext4或xfs查看分区设备信息
语法格式
blkid [选项] 分区设备swap交换分区
定义
交换分区是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。当系统物理内存不够用时,操作系统会将内存中暂时不用的数据保存到交换分区上,从而腾出内存空间供其他程序使用,相当于一块临时的“虚拟内存”。
作用
- 释放内存空间 :当物理内存使用完毕后,系统会将一些暂时不用的进程credential 交换到交换分区中,为其他正在运行的进程腾出物理内存空间,避免系统因内存不足而无法正常运行。
- 提高系统稳定性 :在系统内存紧张的情况下,交换分区可以作为一种应急缓冲,防止因内存耗尽而导致系统崩溃或出现“application is out of memory”等错误,增强了系统的稳定性和可靠性。
- 平衡内存使用 :通过调整 swappiness 参数,可以控制内核使用交换分区的积极程度,从而平衡系统的内存使用策略,以适应不同的应用场景和性能需求。
配置方法
- 创建交换分区 :可以使用
fdisk等工具对磁盘进行分区操作,创建一个专门用于交换的分区,然后使用mkswap命令将该分区格式化为交换分区格式,例如mkswap /dev/sdb2。 - 创建交换文件 :使用
dd命令创建一个指定大小的空文件,如sudo dd if=/dev/zero of=/var/swap bs=1M count=1024创建一个1GB大小的交换文件,再使用mkswap命令将其格式化为交换分区文件,最后使用swapon命令启用该交换文件。 - 启用交换分区 :对于分区,使用
swapon命令即可启用交换分区,如swapon /dev/sdb2。对于文件,同样使用swapon命令启用,如swapon /var/swap。 - 设置开机自动挂载 :编辑
/etc/fstab文件,添加相应的挂载信息,使得交换分区或交换文件在系统启动时自动挂载。例如,对于交换分区,可添加UUID=device_UUID none swap defaults 0 0;对于交换文件,可添加/swapfile none swap sw 0 0
注意事项
- 大小设置 :通常建议交换分区的大小为物理内存的 2 倍左右,但具体大小应根据系统实际负载、运行情况及未来可能的应用来综合考虑。例如,4GB 或 4GB 以下内存的系统,最少需要 2GB 交换分区;大于 4GB 而小于 16GB 内存的系统,最少需要 4GB 交换分区。
- 性能影响 :由于硬盘的读写速度远低于内存,频繁地使用交换分区会导致系统性能下降,因此在实际使用中应尽量避免过度依赖交换分区,可通过增加物理内存等方式来提升系统性能。
- 安全与备份 :交换分区中的数据在系统重启后会丢失,因此重要数据不应存储在交换分区中。同时,为了确保系统的正常运行,应定期备份交换分区的相关配置信息。
操作命令
free - 查看内存和交换空间使用情况
free 命令用于显示系统的物理内存和交换空间使用情况,包括总内存、已用内存、空闲内存等信息。
语法格式
free [选项]输出字段说明
total used free shared buff/cache available
Mem: 8169348 2345232 3412345 123456 2411771 5123456
Swap: 2097148 0 2097148- total: 总内存量
- used: 已使用内存(包括buffers/cache)
- free: 完全空闲内存
- shared: 共享内存
- buff/cache: 缓存和缓冲区使用的内存
- available: 估计可用于启动新应用的内存
mkswap – 初始化交换分区或文件
mkswap 命令用于将磁盘分区或文件初始化为Linux交换空间(swap area),这是虚拟内存系统的重要组成部分。
mkswap [选项] 设备/文件 [大小]注意事项
交换分区/文件创建后需要
swapon才能生效交换文件大小建议为物理内存的1-2倍
生产环境建议使用专用交换分区而非文件
使用
free -h或swapon --show验证交换空间状态永久生效需在
/etc/fstab中添加条目:bash/swapfile none swap sw 0 0
swapon – 启用交换空间
swapon 是 Linux 系统中用于激活交换空间(swap space)的命令,将指定的设备或文件作为虚拟内存使用。通常用于系统内存不足时扩展可用内存。
swapon [选项] [设备/文件]注意事项
需要 root 权限执行
交换文件/分区需先通过
mkswap初始化永久生效需在
/etc/fstab添加配置:/swapfile none swap sw 0 0使用
swapoff命令可停用交换空间生产环境建议交换空间大小为物理内存的1-2倍
swapoff - 停止交换空间
swapoff 是 Linux 系统中用于 停用交换空间(swap space) 的命令,可以释放交换分区或交换文件占用的资源。通常在调整交换空间或维护系统时使用。
swapoff [选项] [设备/文件]注意事项
- 需要 root 权限(使用
sudo执行)。 - 确保系统有足够的内存,否则停用交换空间可能导致 OOM(内存不足)错误。
- 永久停用交换空间 需要修改
/etc/fstab,删除或注释掉对应的swap行。 - 重新启用交换空间 可使用
swapon命令。
LVM 逻辑卷
LVM(Logical Volume Manager)是一种灵活的磁盘管理技术,它提供了一种逻辑层面的磁盘管理方式,允许用户将多个物理磁盘组合成逻辑卷,从而实现更灵活的存储管理
LVM 的基本概念
- 物理卷(Physical Volume, PV):物理卷是 LVM 管理的最小物理单元,可以是一个磁盘或磁盘分区。物理卷被格式化为 LVM 可以识别的格式后,可以被添加到卷组中。
- 卷组(Volume Group, VG):卷组是物理卷的容器,可以包含一个或多个物理卷。卷组提供了存储空间池,用于创建逻辑卷。
- 逻辑卷(Logical Volume, LV):逻辑卷是卷组中划分出来的虚拟存储设备,可以被格式化为文件系统并挂载使用。逻辑卷的大小可以动态调整,这是 LVM 灵活性的体现。
相关命令
| 命令 | 作用 |
|---|---|
pvcreate | 创建物理卷 |
pvremove | 移除物理卷 |
pvs / pvdisplay | 查看物理卷信息 |
vgcreate | 创建卷组 |
vgs/vgscan/vgdisplay | 查看卷组信息 |
vgreduce | 从卷组移除物理卷 |
vgextend | 扩容卷组 |
lvcreate | 创建逻辑卷 |
lvs/lvdisplay | 查看逻辑卷 |
lvextent | 扩容逻辑卷 |
lvresize | 动态调整逻辑卷(LV)的容量支持 扩展 和 收缩 操作 |
lvremove | 删除逻辑卷 |
resize2fs | 在线格式化ext格式文件系统。调整ext文件系统 |
xfs_growfs | 在线格式化xfs格式文件系统。扩展XFS文件系统 |
使用缓存卷提高性能
LVM 支持使用缓存卷来提高逻辑卷的性能。以下是使用缓存卷的步骤:
创建缓存池。使用
lvcreate命令创建缓存池。例如:bashlvcreate --type cache-pool --name datalv-cache /dev/sdd这条命令使用
/dev/sdd磁盘创建一个缓存池,命名为datalv-cache。将缓存池附加到逻辑卷。使用
lvcreate命令将缓存池附加到逻辑卷。例如:bashlvcreate --type cache --name datalv-cached --cache-pool datalv-cache /dev/datavg/datalv这条命令将缓存池
datalv-cache附加到逻辑卷datalv,创建一个缓存卷datalv-cached。挂载缓存卷并使用。例如:
bashmkdir /mnt/cached-data mount /dev/datavg/datalv-cached /mnt/cached-data
调整性能设置
可以调整 LVM 的性能设置,以优化逻辑卷的性能。例如,可以调整 I/O 调度算法和缓存策略。以下是调整性能设置的示例:
调整 I/O 调度算法。可以使用
ionice命令调整逻辑卷的 I/O 调度优先级。例如:bashionice -c 2 -n 0 -p $(pidof process_name)这条命令将指定进程的 I/O 调度优先级设置为实时级别。
调整缓存策略。可以使用
lvchange命令调整缓存策略。例如:bashlvchange --poll y /dev/datavg/datalv这条命令启用对逻辑卷
datalv的轮询,以提高其性能。
最佳实践和注意事项
- 备份数据:在进行任何 LVM 操作之前,建议备份重要数据,以防止操作失误导致数据丢失。
- 监控空间使用:定期监控卷组和逻辑卷的空间使用情况,以避免空间不足导致的问题。
- 性能优化:根据实际需求调整 LVM 的性能设置,以获得最佳的存储性能。
- 快照管理:合理设置快照卷的大小,并及时删除不再需要的快照卷,以释放空间。
