RHCE认证考试学习笔记(九):文件系统与存储管理

  |   0 评论   |   0 浏览

图片

大家好,欢迎回到RHCE9学习笔记系列。在前八篇文章中,我们学习了Linux基础命令、文件操作、权限控制、进程服务、软件包管理、网络配置以及防火墙安全。今天,我们将进入系统存储管理的核心领域:文件系统与存储管理。无论是添加新硬盘、扩容分区,还是构建高性能存储池,都需要对文件系统有深入的理解。本文将系统讲解磁盘分区、格式化、挂载、逻辑卷管理(LVM)、网络文件系统(NFS)以及文件归档等关键知识点。

1. 文件系统概述

文件系统是操作系统用于组织和管理文件数据的结构。磁盘本身只能存储0和1,通过格式化操作,我们为磁盘建立了文件系统,从而能够高效地存取文件。Linux支持多种文件系统,常见的有:

文件系统特点
ext4成熟的Linux文件系统,支持最大1TB单文件,稳定性好
xfsRHEL 7及以后默认的文件系统,支持更大容量(最大8EB),性能优越
btrfs支持快照、压缩等高级功能(仍在发展中)
swap交换分区,用于虚拟内存

2. 使用硬盘的完整流程

在Linux中,添加一块新硬盘并投入使用需要四个步骤:

添加物理硬盘(虚拟机或物理机)

分区(可选,也可以直接使用整块硬盘)

格式化(创建文件系统)

挂载(将文件系统关联到目录树)

2.1 硬盘命名规则

Linux中,SATA、SAS、SCSI硬盘被识别为/dev/sdX,其中X为a、b、c…(如/dev/sda、/dev/sdb)。NVMe固态硬盘被识别为/dev/nvme0n1、/dev/nvme1n1等。

分区在设备名后添加数字,如/dev/sda1、/dev/nvme0n1p1。

2.2 查看现有磁盘

#查看所有磁盘和分区fdisk -l#或者使用 lsblk #查看树形结构lsblk

3. 磁盘分区(MBR与GPT)

分区是将磁盘划分为多个独立区域的过程。目前主流的分区表有两种:MBR(Master Boot Record)和GPT(GUID Partition Table)。

MBR:传统分区方式,最多支持4个主分区,或3个主分区+1个扩展分区(内含多个逻辑分区),最大支持2TB磁盘。

GPT:新一代分区方式,支持128个分区,支持超过2TB的磁盘,是UEFI启动的标配。

3.1 使用 fdisk 进行 MBR 分区

#对 /dev/sdb进行分区fdisk /dev/sdb

进入交互界面后,常用命令:

m:显示帮助

n:新建分区

p:打印分区表

d:删除分区

w:保存并退出

q:不保存退出

创建分区示例:

输入n,选择p(主分区)或e(扩展分区)

输入分区号(1-4)

选择起始扇区(默认)

输入结束扇区,可用+size{K,M,G}指定大小,如+10G

输入w保存

3.2 使用 gdisk 进行 GPT 分区

gdisk的用法与fdisk类似,但支持 GPT。

gdisk /dev/sdb

4. 格式化分区(创建文件系统)

分区创建后,需要格式化成具体的文件系统才能使用。

4.1 创建 xfs 文件系统

mkfs.xfs /dev/sdb1

4.2 创建 ext4 文件系统

mkfs.ext4 /dev/sdb1

4.3 创建 swap 交换分区

mkswap /dev/sdb2swapon /dev/sdb2      #启用

5. 挂载文件系统

格式化后的分区需要挂载到目录树的一个节点才能访问。

5.1 临时挂载

mkdir /mnt/datamount /dev/sdb1 /mnt/data#查看挂载情况df -hmount | grep sdb1

5.2 永久挂载 – /etc/fstab

编辑/etc/fstab文件,添加一行:

/dev/sdb1  /mnt/data  xfs  defaults  0 0

字段含义:

设备(可用UUID或设备路径)

挂载点

文件系统类型

挂载选项(defaults表示 rw,suid,dev,exec,auto,nouser,async)

dump备份标志(0表示不备份)

fsck检查顺序(0表示不检查,1用于根文件系统,2用于其他)

查看UUID:

blkid

推荐使用UUID,因为它不会因设备顺序变化而失效:

UUID=xxxx-xxxx-xxxx  /mnt/data  xfs  defaults  0 0

修改/etc/fstab后,可以执行mount -a测试所有挂载项是否正确。

6. 逻辑卷管理(LVM)

LVM(Logical Volume Manager)是Linux下强大的磁盘管理工具,它允许将多块物理磁盘或分区组合成一个逻辑卷,并实现动态扩容、快照等高级功能。LVM的层次结构:

PV(Physical Volume):物理卷,可以是整个磁盘或分区。

VG(Volume Group):卷组,由一个或多个PV组成。

LV(Logical Volume):逻辑卷,从VG中划分出来,相当于可用的分区。

6.1 创建 LVM

#1. 创建物理卷(PV)pvcreate /dev/sdb1 /dev/sdc1#查看PVpvspvdisplay# 2. 创建卷组(VG)vgcreate myvg /dev/sdb1 /dev/sdc1#查看VGvgsvgdisplay# 3. 创建逻辑卷(LV)lvcreate -n mylv -L 10G myvg#查看LVlvslvdisplay

6.2 格式化并挂载 LV

mkfs.xfs /dev/myvg/mylvmkdir /mnt/lvmmount /dev/myvg/mylv /mnt/lvm

6.3 扩容逻辑卷

#1. 扩展LV(增加5GB)lvextend -L +5G /dev/myvg/mylv# 2. 扩展文件系统# 对于 xfsxfs_growfs /mnt/lvm# 对于 ext4resize2fs /dev/myvg/mylv

注意:xfs文件系统只能扩容,不能缩容。

6.4 在线扩容卷组

当VG空间不足时,可以添加新的PV:

pvcreate /dev/sdd1vgextend myvg /dev/sdd1

6.5 删除 LVM

umount /mnt/lvmlvremove /dev/myvg/mylvvgremove myvgpvremove /dev/sdb1 /dev/sdc1

7. 交换分区(swap)

当物理内存不足时,系统会将部分数据暂存到swap空间。swap可以是一个分区或一个文件。

7.1 创建 swap 分区

#假设 /dev/sdc1 已创建为 swap 类型mkswap /dev/sdc1swapon /dev/sdc1

永久启用,添加/etc/fstab:

/dev/sdc1  none  swap  sw  0 0

7.2 创建 swap 文件

dd if=/dev/zero of=/swapfile bs=1M count=2048   #2GBchmod 600 /swapfilemkswap /swapfileswapon /swapfile

永久启用,添加/etc/fstab:

/swapfile  none  swap  sw  0 0

查看swap使用情况:

swapon --showfree -h

8. 网络文件系统 – NFS

NFS(Network File System)允许将远程目录挂载到本地,实现文件共享。

8.1 服务端配置(NFS Server)

#安装软件包dnf install nfs-utils -y# 创建共享目录mkdir /srv/nfs_sharechmod 777 /srv/nfs_share#编辑 /etc/exportsecho "/srv/nfs_share 192.168.1.0/24(rw,sync,no_root_squash)" >> /etc/exports#启动服务systemctl start nfs-serversystemctl enable nfs-server#放行防火墙(若使用防火墙)firewall-cmd --add-service=nfs --permanentfirewall-cmd --reload

8.2 客户端挂载

#安装软件包dnf install nfs-utils -y#创建挂载点mkdir /mnt/nfs#挂载mount -t nfs 192.168.1.10:/srv/nfs_share /mnt/nfs# 永久挂载(/etc/fstab)192.168.1.10:/srv/nfs_share  /mnt/nfs  nfs  defaults  0 0

9. VDO – 数据去重与压缩

VDO(Virtual Data Optimizer)是RHEL提供的一种存储优化技术,通过在线数据去重和压缩来减少实际磁盘占用。在RHEL 9中,VDO功能已集成到LVM中。

9.1 创建 VDO 卷

#创建物理卷和卷组(如使用整块磁盘)pvcreate /dev/sdevgcreate vg_vdo /dev/sde# 创建 VDO 逻辑卷(指定物理大小和虚拟大小)lvcreate --type vdo -n vdolv -L 20G -V 100G vg_vdo# -L:实际物理大小(用于去重压缩的存储空间)# -V:虚拟大小(用户看到的逻辑卷大小)

9.2 格式化与挂载

mkfs.xfs /dev/vg_vdo/vdolvmkdir /mnt/vdomount /dev/vg_vdo/vdolv /mnt/vdo#查看 VDO 效率vdostats --human-readable

10. 文件查找 – find

find是Linux下最强大的文件查找命令,可以根据文件名、类型、大小、时间、权限等条件递归查找。

10.1 常用语法

find [路径] [条件] [动作]

10.2 常用条件

#按名称查找find /etc -name "*.conf"#按类型(f 文件,d 目录,l 链接)find /home -type f#按大小(+100M 大于100M,-1k 小于1k)find /var -size +10M#按修改时间(-mtime 7 7天内修改过,-mtime +7 7天前修改)find /var/log -mtime -7#按用户/组find /home -user zhangsan#按权限find / -perm 644

10.3 动作(-exec)

#找到并删除find /tmp -name ".tmp" -exec rm {}\;# 找到并复制到指定目录find . -name ".txt" -exec cp {} /backup/\;# 使用 xargs 提高效率find . -name "*.log" | xargs rm

11. 文件归档与压缩

11.1 tar – 归档工具

tar可以将多个文件打包成一个文件,并可选择压缩。

#打包(不压缩)tar cvf archive.tar /path/to/dir#打包并压缩(gzip)tar czvf archive.tar.gz /path/to/dir#打包并压缩(bzip2)tar cjvf archive.tar.bz2 /path/to/dir#解包tar xvf archive.tar#解压gzip 包tar xzvf archive.tar.gz

参数说明:

c:创建归档

x:解包

v:显示过程

f:指定文件

z:通过gzip压缩/解压

j:通过bzip2压缩/解压

J:通过xz压缩/解压

11.2 zip / unzip

#压缩文件或目录zip -r archive.zip /path/to/dir#解压unzip archive.zip -d /target/dir

11.3 gzip / gunzip

gzip file.txt          #压缩成 file.txt.gzgunzip file.txt.gz   # 解压

12. 综合实战:新增磁盘并配置 LVM

假设我们新增了一块20GB的磁盘/dev/sdb,需要将其全部用于LVM,创建一个10GB的逻辑卷,格式化为xfs,挂载到/data,并预留空间供日后扩展。

12.1 分区(可选,也可直接使用整个磁盘)

#创建1个分区占用全部空间fdisk /dev/sdb#输入 n, p, 1, 默认,默认,w

12.2 创建 PV、VG、LV

pvcreate /dev/sdb1vgcreate data_vg /dev/sdb1lvcreate -n data_lv -L 10G data_vg

12.3 格式化与挂载

mkfs.xfs /dev/data_vg/data_lvmkdir /datamount /dev/data_vg/data_lv /data

12.4 添加到 /etc/fstab

blkid /dev/data_vg/data_lv   #获取UUIDecho "UUID=xxxxxx  /data  xfs  defaults  0 0" >> /etc/fstab

12.5 测试扩展

#假设以后空间不足,扩展LV(需要VG有剩余空间)lvextend -L +5G /dev/data_vg/data_lvxfs_growfs /data

总结

本篇我们学习了Linux文件系统与存储管理的核心内容:

硬盘使用流程:分区(MBR/GPT)→ 格式化 → 挂载

文件系统类型:xfs、ext4、swap 等

永久挂载:通过/etc/fstab实现

LVM逻辑卷管理:PV、VG、LV 的创建、扩容、删除

swap空间:分区或文件的创建与启用

NFS网络文件系统:服务端配置与客户端挂载

VDO数据优化:去重压缩提升存储效率

文件查找:find命令的强大用法

文件归档:tar、zip、gzip 的使用

存储管理是Linux运维的核心技能之一。掌握这些知识,你就能灵活应对服务器存储扩容、数据备份、共享存储等各种场景。

下一篇,我们将学习shell脚本编程,让自动化运维成为可能。敬请期待!


练习建议:

在虚拟机中新增一块10GB的硬盘,使用 LVM 创建一个5GB的逻辑卷,挂载到/mnt/lvm_test,然后扩容到8GB。

配置 NFS 服务,将/srv/nfs_share共享给另一台机器,并测试读写。

使用find命令查找/var/log下7天前修改的日志文件,并压缩它们。

创建一个 swap 文件,并设置开机自动启用。


标题:RHCE认证考试学习笔记(九):文件系统与存储管理
作者:shuaiqijun
地址:https://shuaiqijun.com/articles/2026/03/26/1774504801682.html