Linux存储管理:分区、RAID、LVM、Swap 文章目录Linux存储管理分区、RAID、LVM、Swap前言一、GPT分区管理1.1 GPT vs MBR1.2 gdisk工具1.3 wipefs —— 清除磁盘签名1.4 parted工具支持MBR和GPT1.5 文件系统持久化挂载/etc/fstab1.6 文件系统空间不足排查二、RAID存储技术2.1 RAID级别速查2.2 mdadm管理软RAID三、LVM逻辑卷管理3.1 LVM基本概念3.2 基本管理流程3.3 卷组扩展与缩减3.4 逻辑卷扩展与缩减3.5 逻辑卷快照3.6 RAID逻辑卷四、Swap交换空间管理4.1 Swap的作用4.2 Swap大小参考4.3 创建和使用Swap4.4 内存查看写在最后Linux存储管理分区、RAID、LVM、Swap从硬盘分区到软RAID从LVM弹性扩容到Swap交换空间一篇搞定企业级存储方案前言今天的课程是Linux存储管理的终极篇涵盖四个核心模块GPT分区与parted工具——管理2TB以上大容量磁盘软RAID技术——用多块硬盘实现数据冗余和高性能LVM逻辑卷管理——弹性扩容、跨盘存储、快照备份Swap交换空间——内存不够时用磁盘顶一顶学完今天的内容你将能独立完成企业级存储方案的设计与实施。一、GPT分区管理1.1 GPT vs MBR对比项MBRGPT最大分区容量2TB18 ZiB2⁶⁴ × 512B最大分区数15个128个冗余备份无分区表有备份固件要求BIOSUEFI1.2 gdisk工具# 安装[rootcentos7 ~]yuminstall-ygdisk# 查看分区表[rootcentos7 ~]gdisk-l/dev/sdb# 进入交互模式[rootcentos7 ~]gdisk /dev/sdb Command(?forhelp): o# 转换为GPTCommand(?forhelp): n# 创建分区Command(?forhelp): p# 查看分区表Command(?forhelp): w# 保存并退出# 更改分区名称Command(?forhelp): c Using1Enter name: data01# 查看分区详情Command(?forhelp): i Using1# 删除分区Command(?forhelp): d Using11.3 wipefs —— 清除磁盘签名# 查看磁盘签名[rootcentos7 ~]wipefs /dev/sdb# 清除所有签名⚠️危险操作[rootcentos7 ~]wipefs-a/dev/sdb1.4 parted工具支持MBR和GPT交互式操作[rootcentos7 ~]parted/dev/sdb(parted)unit MiB# 设置单位为MiB(parted)mklabel msdos# 设置MBR分区表(parted)mklabel gpt# 设置GPT分区表(parted)mkpart primary12049# 创建分区(parted)mkpart data01 xfs12049# GPT: 分区名 data01(parted)resizepart15121# 扩展分区到5121MiB(parted)rm1# 删除分区(parted)print# 查看分区表(parted)quit免交互操作# MBR[rootcentos7 ~]parted/dev/sdb mklabel msdos[rootcentos7 ~]parted/dev/sdb unit MiB mkpart primary12049[rootcentos7 ~]parted/dev/sdb unit MiB resizepart15121[rootcentos7 ~]parted/dev/sdbrm1# GPT[rootcentos7 ~]parted/dev/sdb mklabel gpt[rootcentos7 ~]parted/dev/sdb unit MiB mkpart data01 xfs12049[rootcentos7 ~]parted/dev/sdb unit MiB resizepart15121[rootcentos7 ~]parted/dev/sdbrm11.5 文件系统持久化挂载/etc/fstab# 查看UUID[rootcentos7 ~]blkid /dev/sdb1 /dev/sdb1:UUIDf5c35f10-0274-45af-b044-73694989fe01TYPExfs# 编辑/etc/fstab[rootcentos7 ~]vim/etc/fstabUUIDf5c35f10-0274-45af-b044-73694989fe01/data01 xfs defaults00# 挂载所有[rootcentos7 ~]mount-a1.6 文件系统空间不足排查情况一大文件占用[rootcentos7 ~]df-h/myapp-1/ 文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb12.0G2.0G 436K100% /myapp-1[rootcentos7 ~]find/myapp-1/-size100M /myapp-1/etc/bigfile[rootcentos7 ~]rm-f/myapp-1/etc/bigfile情况二删除后空间未释放# 文件被进程占用[rootcentos7 ~]lsof|grepdelete|grep/myapp-1tail1654root 3r REG8,172061565952/myapp-1/etc/bigfile(deleted)[rootcentos7 ~]kill1654情况三大量小文件耗尽inode[rootcentos7 ~]df-i/myapp-2 文件系统 Inode 已用(I)可用(I)已用(I)% 挂载点 /dev/sdb265536655360100% /myapp-2# 删除或合并小文件[rootcentos7 ~]cat/myapp-2/file-{00001..10000}file-00001二、RAID存储技术2.1 RAID级别速查RAID级别最小磁盘容错能力可用容量读性能写性能成本RAID 02无100%高高低RAID 12单盘50%高低中RAID 53单盘(N-1)/N中低中RAID 64双盘(N-2)/N中低高RAID 104多盘50%高中高2.2 mdadm管理软RAIDRAID 0[rootcentos7 ~]yuminstall-ymdadm# 创建RAID0[rootcentos7 ~]mdadm--create/dev/md0--level0--raid-devices2/dev/sd{b,c}# 查看[rootcentos7 ~]cat/proc/mdstat[rootcentos7 ~]mdadm--detail/dev/md0# 格式化和挂载[rootcentos7 ~]mkfs.xfs /dev/md0[rootcentos7 ~]mkdir/raid/raid0[rootcentos7 ~]mount/dev/md0 /raid/raid0# 删除RAID[rootcentos7 ~]umount/dev/md0[rootcentos7 ~]mdadm--stop/dev/md0[rootcentos7 ~]mdadm--zero-superblock /dev/sd{b,c}RAID 1# 创建RAID1[rootcentos7 ~]mdadm--create/dev/md1--level1--raid-devices2/dev/sd{b,c}# 添加热备盘[rootcentos7 ~]mdadm--add/dev/md1 /dev/sdd# 模拟故障[rootcentos7 ~]mdadm--fail/dev/md1 /dev/sdc# 移除故障盘[rootcentos7 ~]mdadm--remove/dev/md1 /dev/sdcRAID 5# 创建RAID54块盘1块校验[rootcentos7 ~]mdadm--create/dev/md5--level5--raid-devices4/dev/sd{b..e}# 添加热备[rootcentos7 ~]mdadm--add/dev/md5 /dev/sdf# 模拟故障热备自动顶替[rootcentos7 ~]mdadm--fail/dev/md5 /dev/sdb# 扩容从4盘扩到5盘[rootcentos7 ~]mdadm--add/dev/md5 /dev/sdg[rootcentos7 ~]mdadm--grow/dev/md5 --raid-devices5[rootcentos7 ~]xfs_growfs /raid/raid5三、LVM逻辑卷管理3.1 LVM基本概念物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统 硬盘/分区 存储池 弹性分区3.2 基本管理流程# 1. 创建物理卷(PV)[rootcentos7 ~]pvcreate /dev/sdb /dev/sdc /dev/sdd[rootcentos7 ~]pvs# 查看PV列表[rootcentos7 ~]pvdisplay /dev/sdb# 查看PV详情# 2. 创建卷组(VG)[rootcentos7 ~]vgcreate webapp /dev/sdb[rootcentos7 ~]vgcreate dbapp /dev/sd{c,d}[rootcentos7 ~]vgs# 查看VG列表# 3. 创建逻辑卷(LV)[rootcentos7 ~]lvcreate-nwebapp01-L5G webapp[rootcentos7 ~]lvcreate-ndata01-L25G dbapp[rootcentos7 ~]lvs# 查看LV列表# 4. 创建文件系统并挂载[rootcentos7 ~]mkfs.xfs /dev/webapp/webapp01[rootcentos7 ~]mount/dev/webapp/webapp01 /usr/share/nginx/html3.3 卷组扩展与缩减# 扩展卷组添加PV[rootcentos7 ~]vgextend webapp /dev/sdc /dev/sdd# 缩减卷组移除PV前需迁移数据[rootcentos7 ~]pvmove /dev/sdb# 将数据移到其他PV[rootcentos7 ~]vgreduce webapp /dev/sdb# 从VG移除3.4 逻辑卷扩展与缩减XFS只支持扩展# 方式一先扩LV再扩FS[rootcentos7 ~]lvextend-L2G /dev/webapp/webapp01[rootcentos7 ~]xfs_growfs /usr/share/nginx/html# 方式二一步到位-r同时扩FS[rootcentos7 ~]lvextend-rL20G /dev/webapp/webapp01EXT4支持扩展和缩减# 扩展[rootcentos7 ~]lvextend-rL25G /dev/webapp/webapp01# 缩减需卸载先缩FS再缩LV[rootcentos7 ~]umount/usr/share/nginx/html[rootcentos7 ~]e2fsck-f/dev/webapp/webapp01[rootcentos7 ~]resize2fs /dev/webapp/webapp01 10G[rootcentos7 ~]lvreduce-L10G /dev/webapp/webapp01[rootcentos7 ~]mount/dev/webapp/webapp01 /usr/share/nginx/html3.5 逻辑卷快照# 创建快照[rootcentos7 ~]lvcreate-s-nwebapp01-snap1-L10G /dev/webapp/webapp01# 挂载快照查看数据[rootcentos7 ~]mount/dev/webapp/webapp01-snap1 /mnt/snap[rootcentos7 ~]ls/mnt/snap3.6 RAID逻辑卷# 创建RAID1逻辑卷[rootcentos7 ~]lvcreate--typeraid1-nwebapp01-L15G webapp# 修复RAID逻辑卷磁盘故障后[rootcentos7 ~]vgreduce--removemissingwebapp--force[rootcentos7 ~]vgextend webapp /dev/sdd[rootcentos7 ~]lvconvert--repair/dev/webapp/webapp01四、Swap交换空间管理4.1 Swap的作用扩展内存物理内存不足时将不常用数据暂存磁盘Hibernate支持保存内存内容到Swap实现休眠唤醒4.2 Swap大小参考物理内存交换空间允许Hibernate时≤2GB2×RAM3×RAM2-8GB1×RAM2×RAM8-64GB≥4GB1.5×RAM≥64GB≥4GB不建议4.3 创建和使用Swap# 1. 创建分区并设为swap类型[rootcentos7 ~]parted/dev/sdb unit MiB mkpart swap01 linux-swap12049# 2. 格式化swap[rootcentos7 ~]mkswap/dev/sdb1# 3. 激活swap[rootcentos7 ~]swapon/dev/sdb1# 4. 查看swap[rootcentos7 ~]swapon-sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3# 5. 设置优先级数字越大越优先使用[rootcentos7 ~]swapon-p4/dev/sdb1# 6. 停用swap[rootcentos7 ~]swapoff /dev/sdb1# 7. 持久化/etc/fstabUUID2bf4e179-3648-4412-9495-3b278df4acd6 swap swappri400# 8. 激活所有swap[rootcentos7 ~]swapon-a4.4 内存查看[rootcentos7 ~]free-mtotal usedfreeshared buff/cache available Mem:39313303529121623485Swap:406304063写在最后今天的内容涵盖了Linux存储管理的四大支柱技术核心优势典型场景GPT分区突破2TB限制大容量数据盘软RAID冗余/性能/成本平衡数据安全、读写加速LVM弹性扩容、快照动态存储、在线扩容Swap内存扩展内存不足时的缓冲核心命令速查# 分区parted/dev/sdb mklabel gptparted/dev/sdb mkpart data01 xfs12049# RAIDmdadm--create/dev/md0--level5--raid-devices4/dev/sd{b..e}mdadm--detail/dev/md0# LVMpvcreate /dev/sd{b..d}vgcreate vg0 /dev/sd{b..d}lvcreate-nlv0-L10G vg0 lvextend-rL20G /dev/vg0/lv0# Swapmkswap/dev/sdb1swapon/dev/sdb1点点关注持续更新欢迎技术讨论。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/26 23:24:47
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/26 18:48:15
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/26 3:42:08
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/26 11:37:29
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 9:16:41
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/26 21:11:24

日新闻

周新闻