【Linux 1】

在Linux系统运维中,存储管理是核心基础能力之一------无论是服务器磁盘规划、文件系统部署,还是动态存储调整、资源配额管控,都直接影响系统稳定性和资源利用率。本文将从磁盘分区、文件系统、挂载管理,到LVM逻辑卷、磁盘配额,一步步拆解Linux存储管理的核心操作,每一步都搭配实操命令,兼顾理论与落地,适合运维新手入门和资深工程师查漏补缺。

一、磁盘与分区管理:搭建存储基础

磁盘是存储的物理载体,而分区则是对磁盘空间的合理划分,不同分区可承载不同用途(如系统分区、数据分区),避免单一分区故障影响整体系统。

1.1 查看磁盘信息(必学命令)

在进行任何磁盘操作前,首先要明确系统中磁盘的数量、分区情况,常用3个命令覆盖所有场景:

lsblk:以树形结构列出所有块设备(磁盘、分区、U盘等),直观展示设备层级关系,无需额外参数即可快速查看;

fdisk -l:查看所有磁盘及分区详细信息,包括磁盘大小、分区类型、扇区数量,适合MBR分区表的磁盘查看;

parted -l:查看所有磁盘的分区表信息,支持MBR和GPT两种分区表,尤其适合大于2TB的磁盘查看。

1.2 分区工具:按需选择(MBR vs GPT)

分区工具的选择取决于磁盘大小和分区表类型,核心区分两种场景,避免选错导致磁盘空间浪费:

fdisk:适合MBR分区表(磁盘<2TB)

交互式分区命令:fdisk /dev/sdb(/dev/sdb为目标磁盘);输入m可查看所有操作帮助,包括创建分区(n)、删除分区(d)、保存分区(w)等。

parted:适合GPT分区表(磁盘>2TB)

创建GPT分区表:parted /dev/sdb mklabel gpt;创建主分区(格式为ext4,占用全部磁盘空间):parted /dev/sdb mkpart primary ext4 1MiB 100%

注意:分区操作会清除磁盘原有数据,操作前务必备份重要数据;GPT分区表支持更大磁盘,是目前服务器主流选择。

二、文件系统创建:让磁盘可被系统识别

分区完成后,需要格式化分区并创建文件系统------文件系统是操作系统与磁盘之间的接口,决定了数据的存储方式和访问效率。Linux支持多种文件系统,需根据场景选择。

2.1 常见文件系统格式及实操命令

主流文件系统各有优势,ext4适合通用场景,xfs适合大文件存储,btrfs支持更多高级特性,实操命令如下:

mkfs.ext4 /dev/sdb1:将/dev/sdb1分区格式化为ext4(最常用,稳定性高,适合中小文件);

mkfs.xfs /dev/sdb2:将/dev/sdb2分区格式化为xfs(读写速度快,适合大文件、高并发场景,如数据库);

mkfs.btrfs /dev/sdb3:将/dev/sdb3分区格式化为btrfs(支持快照、动态扩容,适合需要灵活管理的场景)。

三、挂载与卸载:让系统访问磁盘资源

文件系统创建后,需将分区挂载到Linux系统的某个目录(挂载点),系统才能通过该目录访问磁盘中的数据。挂载分为临时挂载和开机自动挂载,满足不同使用需求。

3.1 临时挂载与卸载

临时挂载仅在当前系统会话有效,重启后失效,适合临时测试或应急场景:

挂载:mount /dev/sdb1 /mnt/data(将/dev/sdb1分区挂载到/mnt/data目录,/mnt/data需提前创建);

卸载:umount /mnt/data(卸载挂载点,卸载前需确保该目录无进程正在访问,否则会报错)。

3.2 查看挂载状态

常用两个命令查看挂载情况,快速排查挂载异常:

mount | grep sdb1:查看指定分区(/dev/sdb1)的挂载详情,包括挂载点、文件系统类型;

df -hT:查看所有已挂载分区的使用情况,包括分区大小、已用空间、文件系统类型(-h人性化显示,-T显示文件系统类型)。

3.3 开机自动挂载(永久生效)

生产环境中,需配置开机自动挂载,避免重启后磁盘无法访问,核心配置文件为/etc/fstab

编辑/etc/fstab文件,添加一行配置(格式:设备路径 挂载点 文件系统类型 挂载参数 dump fsck): /dev/sdb1 /mnt/data ext4 defaults 0 2

配置说明:

defaults:默认挂载参数(可读、可写、可执行);

0:dump备份开关(0表示不备份);

2:fsck检查顺序(0表示不检查,1优先检查,2次优先检查)。

测试配置:mount -a(重载/etc/fstab配置,若无报错则配置正常,重启后会自动挂载)。

四、逻辑卷管理(LVM):灵活管理存储资源

传统分区的大小固定,一旦划分完成无法动态调整,而LVM(Logical Volume Manager,逻辑卷管理)解决了这一痛点------它将物理磁盘抽象为物理卷、卷组、逻辑卷,支持动态扩容、缩容、快照等功能,是生产环境中灵活管理存储的首选方案。

4.1 创建LVM的基本流程(实操步骤)

创建物理卷(PV):将磁盘分区转换为LVM可识别的物理卷,pvcreate /dev/sdb1

创建卷组(VG):将多个物理卷合并为一个卷组(统一管理存储空间),vgcreate vg_data /dev/sdb1(vg_data为卷组名称);

创建逻辑卷(LV):从卷组中划分空间创建逻辑卷(实际使用的"分区"),lvcreate -L 20G -n lv_data vg_data(-L指定大小,-n指定逻辑卷名称);

格式化与挂载:mkfs.ext4 /dev/vg_data/lv_data(格式化逻辑卷),mount /dev/vg_data/lv_data /mnt/lv(挂载到指定目录)。

4.2 查看LVM相关信息

通过三个简单命令,快速查看LVM的物理卷、卷组、逻辑卷状态:

pvs:查看所有物理卷的状态(大小、已用空间、所属卷组);

vgs:查看所有卷组的状态(总大小、剩余空间、包含的物理卷);

lvs:查看所有逻辑卷的状态(大小、所属卷组、挂载点)。

4.3 扩展逻辑卷(最常用操作)

当逻辑卷空间不足时,可动态扩展(前提:卷组有剩余空间),无需卸载,在线扩容:

扩展逻辑卷大小(增加10G):lvextend -L +10G /dev/vg_data/lv_data

调整文件系统大小(使扩容生效):

ext4文件系统:resize2fs /dev/vg_data/lv_data

xfs文件系统:xfs_growfs /dev/vg_data/lv_data

4.4 缩减逻辑卷(需谨慎)

缩减逻辑卷存在数据丢失风险,建议离线操作(卸载逻辑卷),步骤如下:

卸载逻辑卷:umount /mnt/lv

检查文件系统(避免数据损坏):e2fsck -f /dev/vg_data/lv_data

缩小文件系统大小(先缩文件系统,再缩逻辑卷):resize2fs /dev/vg_data/lv_data 15G(缩小到15G);

缩小逻辑卷大小:lvreduce -L 15G /dev/vg_data/lv_data

重新挂载:mount /mnt/lv

警告:缩减逻辑卷前,务必备份所有数据;xfs文件系统不支持缩减,仅ext4、btrfs等支持。

五、磁盘配额:限制资源使用,避免滥用

在多用户服务器中,为避免单个用户或组占用过多磁盘空间,需配置磁盘配额------限制用户/组可使用的最大磁盘空间和文件数量,保障存储资源公平分配。以下以ext4文件系统为例,讲解配额配置流程。

5.1 启用磁盘配额

重新挂载分区,启用配额功能:mount -o usrquota,grpquota /dev/sdb1 /mnt/data(usrquota启用用户配额,grpquota启用组配额);

创建配额文件(系统用于存储配额配置):quotacheck -cug /mnt/data(-c创建,-u用户,-g组);

启用配额:quotaon /mnt/data

5.2 编辑用户配额与查看配额

编辑用户配额(以用户alice为例):edquota -u alice,进入编辑界面,可设置软限制(警告阈值)和硬限制(最大限制);

查看所有配额使用情况:repquota -a,直观查看每个用户/组的配额限制和实际使用情况。

六、磁盘使用情况查看:及时排查空间问题

日常运维中,需定期查看磁盘使用情况,避免磁盘满导致系统故障,核心命令如下:

df -h:人性化查看所有已挂载分区的使用情况(大小、已用、可用、使用率);

du -sh /home:查看指定目录(/home)的总大小(-s显示总和,-h人性化显示);

du --max-depth=1 -h /var:查看指定目录(/var)下一级子目录的大小,快速定位空间占用大户。

七、常见问答

Q1:MBR和GPT分区表的核心区别是什么?如何选择?

A:核心区别有3点:1. 支持磁盘大小:MBR最大支持2TB磁盘,GPT最大支持18EB磁盘;2. 分区数量:MBR最多4个主分区,GPT无限制(推荐不超过128个);3. 安全性:GPT有分区表备份,容错性更强。 选择建议:磁盘≤2TB可选MBR,磁盘>2TB必须选GPT;生产环境优先选GPT,兼容性和安全性更优。

Q2:ext4、xfs、btrfs三种文件系统,适合哪些场景?

A:1. ext4:通用型文件系统,稳定性高、兼容性好,适合中小文件、普通服务器场景(如Web服务器);2. xfs:读写速度快,支持大文件、高并发,适合数据库、大数据等场景;3. btrfs:支持快照、动态扩容、数据校验,适合对数据安全性和灵活性要求高的场景(如测试环境、存储服务器)。

Q3:/etc/fstab配置错误,会导致系统无法启动吗?如何解决?

A:会!若/etc/fstab配置错误(如设备路径写错、文件系统类型错误),系统启动时会卡在挂载环节,无法正常进入系统。 解决方法:重启系统,在GRUB界面按e进入编辑模式,在linux行末尾添加init=/bin/bash,进入单用户模式;编辑/etc/fstab,修正错误配置,保存后执行mount -a测试,无误后重启系统即可。

Q4:LVM扩容和传统分区扩容,核心区别是什么?

A:1.传统分区扩容:需先调整分区大小(需卸载分区,且相邻分区有空闲空间),再调整文件系统大小,操作复杂且有局限性;2. LVM扩容:无需卸载逻辑卷,可在线扩容,且卷组中的空闲空间可来自任意物理卷(无需相邻),操作灵活,适合生产环境动态调整。

Q5:磁盘配额配置完成后,为什么用户仍能超出配额?

A:常见原因有3点:1. 挂载时未正确启用usrquota、grpquota参数,需重新挂载并启用;2. 未创建配额文件(quotacheck -cug命令未执行),系统无法识别配额配置;3. 软限制有宽限期(默认7天),宽限期内用户可暂时超出软限制,硬限制才是绝对上限。

Q6:如何快速定位Linux系统中磁盘空间占用最大的目录?

A:使用组合命令:du --max-depth=1 -h / | sort -rh,该命令会查看根目录下所有一级子目录的大小,并按从大到小排序,快速定位空间占用最大的目录;再进入该目录,重复执行命令,逐步缩小范围,找到具体的大文件或目录。

相关推荐
JF_Ma1 小时前
天量极客自动化技术:miniQMT系统实现量化交易自动化
运维·自动化
开开心心就好1 小时前
无弹窗不更新的PC本地播放工具
运维·科技·macos·docker·计算机外设·ocr·powerpoint
面向对象World1 小时前
Z8350 Broadcom SDIO网卡调试Ubuntu 22.04 Server版
linux·运维·ubuntu
Irissgwe1 小时前
12、多路转接 select
linux·io多路转接·select
我命由我123451 小时前
工程中安全帽颜色含义
运维·经验分享·学习·职场和发展·求职招聘·职场发展·学习方法
ZFSS1 小时前
BYOK(自带密钥)使用指南
运维·服务器·前端·人工智能·midjourney
无足鸟ICT1 小时前
【RHCA+】编辑多个文件
linux
fengyehongWorld1 小时前
Linux fd命令
linux
AIMath~1 小时前
hermes agent安装在Linux centos中
linux·运维·服务器