news 2026/7/15 21:50:07

【Linux运维极简教程】07-磁盘管理与LVM

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux运维极简教程】07-磁盘管理与LVM

07 - 磁盘管理与 LVM

一、磁盘管理基础

1.1 磁盘识别

# 查看所有磁盘lsblk# 最直观fdisk-l# 详细信息ls-l/dev/sd*# 设备文件# 查看磁盘使用情况df-h# 文件系统使用情况df-Th# 显示文件系统类型df-i# 查看 inode 使用情况# 查看目录/文件占用空间du-sh/var/log# 查看目录总大小du-sh/*|sort-rh# 根目录下各目录大小排序du-h--max-depth=1/var# 查看一级子目录大小

1.2 磁盘命名规则

设备名说明
/dev/sda第一块 SCSI/SATA/USB 磁盘
/dev/sdb第二块磁盘
/dev/nvme0n1第一块 NVMe SSD
/dev/vda虚拟磁盘(KVM)
/dev/sda1第一块磁盘的第一个分区

二、磁盘分区

2.1 分区表类型

类型最大磁盘最大分区数说明
MBR (msdos)2TB4 主分区(或 3 主 + 1 扩展)传统方案
GPT18EB128 分区现代推荐

2.2 fdisk 分区(MBR,< 2TB)

# 对 /dev/sdb 进行分区fdisk/dev/sdb# 交互操作:# n - 新建分区# p - 主分区 / e - 扩展分区# 分区号、起始扇区、大小# t - 修改分区类型(如 8e 为 LVM)# p - 打印分区表# w - 保存并退出# q - 不保存退出

2.3 parted 分区(GPT,> 2TB 推荐)

# 交互模式parted/dev/sdb# 设置分区表类型为 GPT(parted)mklabel gpt# 创建分区(parted)mkpart primary0%100%# 使用全部空间(parted)mkpart primary ext4 0GB 500GB# 指定大小# 打印分区表(parted)print# 退出(parted)quit# 命令行一键操作parted/dev/sdb mklabel gptparted/dev/sdb mkpart primary0%100%

2.4 分区对齐检查

# 查看分区对齐情况parted/dev/sdb align-check optimal1

三、文件系统

3.1 创建文件系统(格式化)

# 格式化为 ext4mkfs.ext4 /dev/sdb1# 格式化为 xfsmkfs.xfs /dev/sdb1# 格式化时指定参数mkfs.ext4-b4096-Ldata_disk /dev/sdb1# -b 块大小 -L 卷标# 格式化为 swapmkswap/dev/sdb2

3.2 挂载与卸载

# 临时挂载mount/dev/sdb1 /data# 指定文件系统类型挂载mount-text4 /dev/sdb1 /data# 查看挂载情况mount|grepsdb1df-h/data# 卸载umount/dataumount/dev/sdb1# 强制卸载(设备忙时)umount-l/data# 懒卸载,等不忙时自动卸载fuser-km/data# 杀掉占用目录的进程后再卸载

3.3 开机自动挂载 - /etc/fstab

# 编辑 /etc/fstab# 格式:设备 挂载点 文件系统类型 挂载选项 dump fsck顺序/dev/sdb1 /data ext4 defaults00# 推荐:使用 UUID 代替设备名# 获取 UUIDblkid /dev/sdb1# UUID="a1b2c3d4-..." /data ext4 defaults 0 0# 测试 fstab 配置是否正确(重要!重启前必须验证)mount-a

fstab 挂载选项

选项说明
defaultsrw, suid, dev, exec, auto, nouser, async
noexec不允许执行二进制文件
nosuid不允许 setuid/setgid
noatime不更新访问时间(提升性能)
nodiratime不更新目录访问时间
data=writebackext4 写回模式(性能优先,数据安全降低)

3.4 swap 交换分区管理

# 查看 swap 使用情况free-hswapon-s# 创建 swap 分区mkswap/dev/sdb2swapon/dev/sdb2# 创建 swap 文件(不需要额外分区)ddif=/dev/zeroof=/swapfilebs=1Mcount=2048# 创建 2GB 文件chmod600/swapfilemkswap/swapfileswapon/swapfile# 永久生效echo"/swapfile swap swap defaults 0 0">>/etc/fstab# 调整 swappiness(0-100,值越低越倾向于使用物理内存)sysctlvm.swappiness=10# 临时echo"vm.swappiness=10">>/etc/sysctl.conf# 永久# 关闭 swapswapoff /swapfile

四、LVM 逻辑卷管理

LVM(Logical Volume Manager)是 Linux 的高级磁盘管理方案,支持动态扩容、快照等功能。

4.1 LVM 架构

物理磁盘 (PV) └── 卷组 (VG) └── 逻辑卷 (LV) └── 文件系统
PV (Physical Volume) 物理卷,磁盘或分区 VG (Volume Group) 卷组,PV 的集合 LV (Logical Volume) 逻辑卷,从 VG 中分配空间 PE (Physical Extent) 最小分配单元(默认 4MB)

4.2 创建 LVM

# 1. 将分区/磁盘创建为 PV(物理卷)pvcreate /dev/sdb1 /dev/sdc1# 查看 PVpvdisplay pvs# 2. 创建 VG(卷组)vgcreate vg_data /dev/sdb1 /dev/sdc1# 指定 PE 大小vgcreate-s16M vg_data /dev/sdb1# 查看 VGvgdisplay vgs# 3. 创建 LV(逻辑卷)# 创建 50GB 的逻辑卷lvcreate-L50G-nlv_data vg_data# 使用全部剩余空间lvcreate-l100%FREE-nlv_data vg_data# 创建占 VG 50% 的逻辑卷lvcreate-l50%VG-nlv_data vg_data# 查看 LVlvdisplay lvs# 4. 格式化逻辑卷mkfs.xfs /dev/vg_data/lv_data# 5. 挂载mkdir/datamount/dev/vg_data/lv_data /data# 6. 开机自动挂载echo"/dev/vg_data/lv_data /data xfs defaults 0 0">>/etc/fstab

4.3 LVM 扩容

场景一:VG 有剩余空间,直接扩容 LV
# 扩容 LV(+20G)lvextend-L+20G /dev/vg_data/lv_data# 扩容到指定大小lvextend-L100G /dev/vg_data/lv_data# 使用全部剩余空间lvextend-l+100%FREE /dev/vg_data/lv_data# 扩展文件系统(必须!否则操作系统看不到新空间)# xfs 文件系统xfs_growfs /data# ext4 文件系统resize2fs /dev/vg_data/lv_data
场景二:VG 没有剩余空间,先扩容 VG
# 1. 新增磁盘,创建 PVpvcreate /dev/sdd# 2. 将 PV 加入 VGvgextend vg_data /dev/sdd# 3. 扩容 LVlvextend-L+50G /dev/vg_data/lv_data# 4. 扩展文件系统xfs_growfs /data# xfsresize2fs /dev/vg_data/lv_data# ext4

4.4 LVM 缩容

注意:xfs 文件系统不支持缩容,只有 ext4 支持。

# 1. 卸载文件系统umount/data# 2. 检查文件系统e2fsck-f/dev/vg_data/lv_data# 3. 缩小文件系统resize2fs /dev/vg_data/lv_data 30G# 4. 缩小 LVlvreduce-L30G /dev/vg_data/lv_data# 5. 重新挂载mount/dev/vg_data/lv_data /data

4.5 LVM 快照

LVM 快照可以创建文件系统的一致性副本,常用于备份。

# 创建快照(大小一般为源 LV 的 10%~20%)lvcreate-L5G-s-nlv_data_snap /dev/vg_data/lv_data# 挂载快照mkdir/mnt/snapmount/dev/vg_data/lv_data_snap /mnt/snap# 从快照中备份数据tar-czf/backup/data_snapshot.tar.gz-C/mnt/snap.# 备份完成后删除快照umount/mnt/snap lvremove-f/dev/vg_data/lv_data_snap

五、实战场景

场景一:新增加磁盘并挂载

#!/bin/bash# mount_new_disk.sh - 挂载新磁盘DISK="/dev/sdb"MOUNT_POINT="/data"# 1. 确认磁盘存在lsblk$DISK# 2. 分区parted$DISKmklabel gptparted$DISKmkpart primary xfs0%100%# 3. 格式化mkfs.xfs${DISK}1# 4. 创建挂载点mkdir-p$MOUNT_POINT# 5. 获取 UUIDUUID=$(blkid-sUUID-ovalue ${DISK}1)# 6. 写入 fstabecho"UUID=$UUID$MOUNT_POINTxfs defaults,noatime 0 0">>/etc/fstab# 7. 挂载并验证mount-adf-h$MOUNT_POINTecho"磁盘$DISK已挂载到$MOUNT_POINT"

场景二:根分区满了,通过 LVM 扩容

# 1. 查看当前情况df-h/ lsblk lvs# 2. 云服务器通常可以直接添加磁盘或扩容现有磁盘# 假设新增了 /dev/sdb# 3. 创建 PV 并加入根分区所在的 VGpvcreate /dev/sdb vgextend centos /dev/sdb# 假设 VG 名为 centos# 4. 扩容根 LVlvextend-l+100%FREE /dev/centos/root# 5. 扩展文件系统xfs_growfs /# CentOS 默认 xfs# 6. 验证df-h/

场景三:排查磁盘空间满

# 1. 查看哪个分区满了df-h# 2. 查看大文件find/-typef-size+1G2>/dev/nulldu-ah/|sort-rh|head-20# 3. 常见空间杀手:日志文件du-sh/var/log/* journalctl --disk-usage# 4. 清理 journal 日志journalctl --vacuum-time=7d journalctl --vacuum-size=500M# 5. 查找已删除但未释放空间的文件lsof|grepdeleted# 需要 kill 占用该文件的进程才能释放空间

六、小结

本篇介绍了磁盘分区(fdisk/parted)、文件系统创建与挂载、swap 管理以及 LVM 逻辑卷管理。LVM 是生产环境磁盘管理的推荐方案,其动态扩容能力可以避免停机加盘的麻烦。


上一篇:06 - 网络配置与管理
下一篇:08 - Shell 脚本编程入门

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 21:46:31

【AI问数】从被动响应到主动洞察:AI问数的三次智能跃迁

鲲溟智能 AI智能问数系列 第07篇 | 2026-07-12 L1 被动响应 L2 辅助分析 L3 主动洞察 7x24 AI持续监控 AI问数的智能化经历了三次跃迁&#xff1a;L1被动响应&#xff08;问才答&#xff09;到L2辅助分析&#xff08;引导问&#xff09;再到L3主动洞察&#xff08;AI找人…

作者头像 李华
网站建设 2026/7/15 21:44:23

TDA2E-17时钟系统设计:从DPLL配置到VIP时序的嵌入式实战指南

1. 项目概述与时钟系统的重要性 在嵌入式系统&#xff0c;尤其是像德州仪器TDA2E-17这类面向高级驾驶辅助系统&#xff08;ADAS&#xff09;和工业视觉应用的复杂SoC设计中&#xff0c;时钟系统远不止是提供“滴答”声那么简单。它更像是整个芯片的“心脏”和“交响乐团指挥”&…

作者头像 李华
网站建设 2026/7/15 21:42:34

GaN MMIC功率放大器在脉冲雷达中的电源管理设计

1. 脉冲雷达系统中的GaN MMIC功率放大器在军用和民用雷达系统中&#xff0c;脉冲雷达因其出色的距离分辨率和抗干扰能力而广泛应用。这类系统对射频功率放大器的性能要求极为严苛——需要在高频段&#xff08;通常S波段至Ka波段&#xff09;输出数百瓦至千瓦级的峰值功率&#…

作者头像 李华
网站建设 2026/7/15 21:42:20

用 RAG 让代码生成贴合私有库:检索增强的落地实践

用 RAG 让代码生成贴合私有库&#xff1a;检索增强的落地实践 一、通用模型的"闭门造车"问题 通用大模型写代码&#xff0c;套路很熟。但一到你家的内部库&#xff0c;就开始编 API。函数名错、参数错、调用方式错&#xff0c;看着像那么回事。 原因简单&#xff1a;…

作者头像 李华
网站建设 2026/7/15 21:42:17

开源项目从 0 到 1:发布与社区运营的实战心得

开源项目从 0 到 1&#xff1a;发布与社区运营的实战心得 一、写好代码只是起点 很多工程师以为开源等于"把代码推上 GitHub"。结果仓库建了&#xff0c;star 为零&#xff0c;issue 无人问津。半年后自己都忘了它的存在。 开源的真正难点不在技术&#xff0c;在运…

作者头像 李华
网站建设 2026/7/15 21:41:19

论文大纲可以免费生成的AI写作辅助网站有哪些

免费生成开题报告的工具分学术专用工具、通用大模型、轻量辅助工具三类&#xff0c;以下是 2026 年 7 月实测可用的免费 / 限免工具&#xff0c;附核心功能、免费额度与适用场景&#xff0c;可直接落地。一、免费开题报告生成工具汇总&#xff08;按场景分类&#xff09; 工具名…

作者头像 李华