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点点关注持续更新欢迎技术讨论。

相关新闻

最新新闻

Qt界面渲染机制与性能优化实战指南

Qt界面渲染机制与性能优化实战指南

1. Qt界面渲染体系概述 作为跨平台应用开发框架的核心能力,Qt的界面渲染体系经历了从传统Widgets到现代QML的技术演进。我在实际项目中发现,理解这套渲染机制对解决UI卡顿、元素错位等典型问题至关重要。 Qt目前支持三种主要的渲染路径: 软…

2026/8/3 7:53:25
Matlab从入门到精通:30个实战案例解析

Matlab从入门到精通:30个实战案例解析

1. Matlab学习记录30:从入门到精通的实战指南作为一名长期使用Matlab进行科学计算和工程仿真的从业者,我经常被问到如何系统性地掌握这个强大的工具。Matlab学习记录30这个标题背后,实际上反映的是大多数学习者在掌握Matlab过程中遇到的共性挑…

2026/8/3 7:53:25
JVM原理与Java性能调优实战指南

JVM原理与Java性能调优实战指南

1. JVM与JAVA:从原理到实战的深度解析在Java开发者日常工作中,JVM(Java Virtual Machine)就像一位看不见的魔术师,默默支撑着所有Java程序的运行。但当你遇到"failed to create jvm"错误时,或是面…

2026/8/3 7:53:25
LabVIEW 编程避坑指南:新手最容易踩的 10 个坑

LabVIEW 编程避坑指南:新手最容易踩的 10 个坑

LabVIEW 是 NI 公司推出的图形化编程语言(G 语言),凭借"所见即所得"的编程方式,在测试测量、自动化控制、科研数据采集等领域拥有庞大的用户群。然而"上手门槛低"也带来一个隐患:很多新手在入门阶…

2026/8/3 7:53:25
大麦网自动抢票脚本:从手动到毫秒级的终极进化方案

大麦网自动抢票脚本:从手动到毫秒级的终极进化方案

大麦网自动抢票脚本:从手动到毫秒级的终极进化方案 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 在热门演唱会门票秒罄的时代,传统手动抢票方式早已…

2026/8/3 7:53:25
Windows微信QQ防撤回终极指南:原理、工具与安全部署

Windows微信QQ防撤回终极指南:原理、工具与安全部署

1. 项目概述:为什么我们需要消息防撤回? 在Windows上使用微信和QQ,最让人抓狂的瞬间之一,可能就是看到对话框里突然跳出“对方已撤回一条消息”。好奇心被高高吊起,却无从得知对方到底说了什么,是工作上的关…

2026/8/3 7:48:24