RH134学习进程——七.管理基本存储

七.管理基本存储

1.添加分区、文件系统和挂载

1.1对磁盘进行分区(RH124-10)

磁盘分区是将物理硬盘划分为独立逻辑单元(分区),不同分区可承载不同功能(如系统、数据、交换空间)。RHEL 9 支持两种主流分区方案:MBRGPT

如:

1.2MBR分区方案

MBR(Master Boot Record,主引导记录)是计算机磁盘分区传统标准 ,自 1983 年随 IBM PC DOS 2.0 诞生以来,长期主导小容量存储设备的分区管理,至今仍在老旧设备、小存储场景中广泛使用。

核心作用是****"记录磁盘分区信息"**** 和****"引导操作系统启动"**** ,但其设计局限(如容量、分区数量)也使其逐渐被 GPT 取代

图解:

MBR分区方案在BIOS固件的系统上最多支持4个主分区,通过扩展分区和逻辑分区,最多创建15个分区;

分区大小数据以32位值存储,最大磁盘和分区大小为2TiB;

2TiB磁盘和分区大小限制是MBR的局限,因此MBR方案逐渐被GPT分区方案代替。

1.3GPT分区方案

对于可扩展固件接口(UEFI)固件系统,默认使用GPT分区方案;

GPT最多支持128个分区,64位值存储分区大小,最大磁盘和分区大小可以达到8ZiB;

GPT使用全局唯一标识符(GUID)来识别每个磁盘和分区,GPT提供分区表信息的冗余

主GPT位于磁盘头部,备份副本位于磁盘尾部,GPT使用checksum来检测GPT头和分区表中的错误与损坏,提高数据安全性。

GPT分区图解:

GPT分区表冗余结构

1.4使用常见管理工具管理分区

1.4.1 fdisk

定位:

历史最悠久、最受欢迎的命令行分区工具;

功能:

最初用于 MBR 分区表,现在也支持 GPT 分区,兼容性较强;

适用场景:

需要传统分区操作,或对兼容性要求高的场景(同时涉及 MBR 和 GPT 时可快速上手)。

1.4.2 gdisk

定位:

fdisk 的 "GPT 专用变体";

功能:

专为支持 GPT 分区表设计,在 GPT 分区的创建、修改、校验等操作上更专业、更精细。

适用场景:

需要深度管理 GPT 分区表的场景(比如大磁盘、多分区的 GPT 环境)。

1.4.3 parted & libparted

定位:

红帽企业 Linux(RHEL)的标准分区工具/库;

功能:

parted是命令行工具,libparted是其底层支持库;

可同时管理MBR 和 GPT 两种分区方案(这是它的核心优势,适用场景极广)。

适用场景:

红帽系统(RHEL)的标准化分区管理,尤其是需要同时兼容 MBR 和 GPT 的企业级环境。

1.4.3.1使用parted管理磁盘分区

(1)进入parted交互模式

parted /dev/vda

(2)查看磁盘

print

1.4.3.2使用parted管理分区一般流程:

1.5为新磁盘设置分区表:

对新磁盘进行分区,首先必须要为其写入磁盘标签。磁盘标签指示了所用的分区方案;

MBR=msdos;

GPT=gpt;

如:

parted /dev/vdb mklabel gpt/msdos

注:

parted命令即刻生效,可能导致数据丢失,mklabel可视为擦除现有分区表

分区表和分区的区别

1.6创建MBR分区

(1)parted指定需要创建分区的磁盘设备;

parted /dev/vdb

(2)使用mkpart子命令创建新的主分区或扩展分区;

mkpart

如:

(3)指定分区的文件系统类型,如xfs或ext4;(仅指定分区类型,不会创建文件系统)

xfs/ext4

如:

(4)指定新分区开始的扇区(磁盘存储的最小物理单位),s后缀提供了扇区的值,也可以使用MiB、GiB、TiB、MB、GB或TB后缀,若无后缀,默认为MB;

如:2048s

(5)指定应结束新分区的磁盘扇区

如:1000MB

(6)退出parted

如:quit

(7)运行udevadm settle命令,等待系统检测新分区并在/dev目录下创建关联的设备文件

如:udevadm settle

(8)或在命令行(非交互模式)直接输入完整命令

parted /dev/vdb mkpart primary xfs 2048s 1000MB

如:

1.7创建GPT分区

(1)parted指定需要创建分区的磁盘设备;

如:parted /dev/vdb

(2)使用mkpart子命令创建新的主分区或扩展分区;

如:mkpart usersdata

(3)指定分区的文件系统类型,如xfs或ext4

如:xfs

(4)指定新分区开始的扇区

(5)指定应结束新分区的磁盘扇区

(6)退出

(7)运行udevadm settle命令,等待系统检测新分区并在/dev目录下创建关联的设备文件

如:udevadm settle

(8)或在命令行(非交互模式)直接输入完整命令

parted /dev/vdb mkpart usersdata xfs 2048s 1000MB

如:

1.8创建两种分区方案对比

|---------------------|-------------------------------------------------|---------------------------------------------------|
| 对比项 | MBR 分区表 (主引导记录) | GPT 分区表 (GUID 分区表) |
| 磁盘容量支持 | 最大支持2TB磁盘 | 支持超2TB大磁盘(理论最大8ZB) |
| 分区数量限制 | 最多4个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可分多个逻辑分区) | 最多 128 个分区,无 "主 / 扩展 / 逻辑" 区分,所有分区均为 "主分区" 类型 |
| 分区表可靠性 | 分区表仅存于磁盘开头 ,无冗余,易损坏 | 分区表有备份(磁盘末尾) + CRC 校验,可靠性更高 |
| parted初始化命令 | 若磁盘无分区表,需执行mklabel msdos (可选,部分场景可省略) | 必须执行mklabel gpt 明确创建 GPT 分区表 |
| mkpart子命令差异 | 需指定分区类型 (primary/extended),无"分区名称"参数 | 支持自定义分区名称 (如mkpart usersdata),无"分区类型"限制 |
| 非交互模式命令差异 | parted /dev/vdb mkpart primary xfs 2048s 1000MB | parted /dev/vdb mkpart usersdata xfs 2048s 1000MB |

1.9删除分区

(1)指定包含要删除分区的磁盘

如:parted /dev/vda

(2)指定要删除的分区编号

print命令列出分区编号

如:

(3)删除分区

如:rm 编号

(4)验证是否删除:(可选)

再次输入print命令,观察分区情况

(5)退出parted

1.10创建文件系统

分区完成后,需要向其中添加文件系统;

RHEL支持多种文件系统,其中常用类型是XFS和ext4;

RHEL安装程序Anaconda默认使用XFS;

|------------|-------------------------|---------------------|
| 特性 | XFS | ext4 |
| 红帽默认性 | RHEL 安装程序 Anaconda 默认使用 | 传统主流,兼容多数 Linux 发行版 |
| 性能侧重 | 高吞吐量、大文件 / 大存储优化 | 稳定性、兼容性优先 |
| 文件大小限制 | 理论最大 16EiB(艾字节) | 理论最大 16TiB(太字节) |
| 日志机制 | 元数据 + 数据日志(可靠性高) | 元数据日志(默认) |
| 典型场景 | 服务器存储、大数据业务 | 通用存储、传统业务系统 |

创建XFS文件系统

mkfs -t 文件类型(mkfs -t xfs)

mkfs.文件类型(mkfs.xfs)

(1)在物理磁盘上创建

mkfs -t xfs \

/dev/vdb

(2)在逻辑卷中创建

mkfs -t xfs \

/dev/vg_name/lv_name

如:mkfs.xfs /dev/vdb1

1.11手动挂载文件系统(RH124------11)

手动挂载也可用于验证,但当系统重启时,挂载会丢失;

使用mount命令进行挂载;

如:mount /dev/sdb1 /mnt

筛选出与磁盘设备相关的挂载信息:

如:mount | grep vda

1.12持久挂载文件系统

编辑/etc/fstab文件,实现系统在启动时挂载文件系统;

/etc/fstab文件每行有6个字段:

设备标识:

分区名(如 /dev/vda1)或 UUID(更可靠,避免设备名变化问题);

挂载点:

文件系统要挂载到的目录;

文件系统类型:

如 xfs、ext4、vfat 等;

挂载选项:

如 defaults(包含 rw、relatime 等常用选项)、自定义权限 / 兼容选项;

dump 标志

0 表示不备份,1 表示备份(现代很少用 dump 工具,一般填 0);

fsck 检查顺序:

0 表示不检查,1 表示优先检查(根目录推荐),2 表示次优先检查(ext4 等文件系统用)。

如:cat /dev/fstab

解释:(以第一行为例)

设备标识:

/boot 分区的 UUID(通过 blkid /dev/vda3 可查看,UUID 比 /dev/vda3 更可靠,避免设备名变化导致挂载失败);

挂载点:

/boot(系统启动文件存储目录,如内核、grub 配置);

文件系统:

xfs(红帽默认高性能文件系统);

挂载选项:

defaults(包含 rw(可读写)、relatime(相对时间戳)等常用选项);

dump 标志:

0(不使用 dump 工具备份);

fsck 检查顺序:

0(因为 xfs 文件系统不依赖 fsck 检查,红帽规范中 xfs 填 0)。

挂载步骤:

(1)使用lsblk -fs命令,扫描连接到计算机的块设备并检索文件系统UUID

如:

(2)使用UUID或块设备进行挂载(详见RH124------11)

mount UUID="****" /mnt/data(挂载点)

mount 设备文件路径 挂载点目录;

如:

mount /dev/vdb1 /mnt/data

(3)在配置文件/etc/fstab修改后,要重启服务器或重新登录,让systemd注册新配置

systemctl daemon-reload

注:

重启操作系统前一定要验证挂载没有错误。

2.管理交换空间

2.1SWAP(交换分区)

swap是Linux系统中由内核内存管理子系统控制的磁盘区域;

swap与物理内存(RAM)共同构成虚拟内存。

当物理内存不足时,内核会搜索RAM,寻找已经分配给进程但空闲的内存页并"写入"SWAP,从而释放物理内存;

当某个进程要访问磁盘上的内存页 时,内核会从SWAP中"换回" 所需的内存页,重新找另一个空闲的内存页"写入"SWAP来代替;

SWAP是临时缓解内存压力的手段,但因依赖磁盘读写(位于磁盘上,速度远低RAM),不能作为长期内存不足的解决方案。

流程:

2.2SWAP的大小

SWAP大小需根据物理内存(RAM)容量和业务场景规划,红帽官方建议参考:

|-------------------|---------------------------|-------------------------------------|
| 物理内存(RAM) | 推荐 SWAP 大小(无休眠需求) | 推荐 SWAP 大小(有休眠需求,需容纳全部 RAM) |
| ≤ 2GB | 等于 RAM 容量 | 至少 2 倍于 RAM 容量 |
| 2GB ~ 8GB | RAM 容量的 50% | 至少等于 RAM 容量 |
| 8GB ~ 64GB | 4GB(或按需调整) | 至少等于 RAM 容量 |
| >64GB | 按需调整(一般 4GB~8GB) | 至少等于 RAM 容量 |

2.3创建SWAP分区

使用parted命令创建所需大小的分区,将其文件系统类型设置为linux-swap;

(1)进入parted交互模式

如:parted /dev/vdb

(2)创建分区表(执行一次即可)

如:mklabel msdos/gpt

(3)创建SWAP分区

如:mkpart myswap linux-swap

创建500MB的SWAP分区

文件类型为linux-swap

(4)验证分区是否创建

如:print

(5)退出parted

quit

(6)刷新设备

udevadm settle

完整流程:

2.4格式化SWAP分区

mkswap命令会格式化swap分区;

mkswap会在分区开头写入单个数据块,将分区的其他部分保留为未格式化,这样内核就可以用其来存储内存页;

如:mkswap /dev/vdb2

2.5激活SWAP分区

完整流程:

(1)临时激活

使用swapon命令激活已经格式化的swap分区;

使用swapon -a来激活/etc/fstab文件中所有的swap分区;

如:swapon /dev/vdb2

(2)永久激活(开机自动挂载)

编辑/etc/fstab文件,添加SWAP分区条目;

如:

echo "UUID=******** none swap defaults 0 0" >> /etc/fstab

解释:

****UUID=****:****SWAP 分区的 UUID(lsblk --fs /dev/vdb1查看);

****none:****SWAP 无挂载点(与普通文件系统不同);

****swap:****文件系统类型;

****defaults:****默认挂载选项;

最后两个0:dumpfsck标志(SWAP 无需备份和文件系统检查,均填0)。

如:

查看UUID:

lsblk --fs /dev/vdb2

添加条目:

echo "UUID=******** none swap defaults 0 0"


更新systemd进程,应用新配置文件

激活分区:swapon -a

(3)验证激活状态

swapon --show

cat /proc/swaps

2.6停用SWAP分区

swapoff命令;

如:

swapoff /dev/vdb2

验证是否被停用

如:swapon --show

已经被停用;

2.7设置SWAP分区优先级

系统默认按顺序使用swap,即内核先使用第一个已激活swap,直至其空间已满,然后开始使用第二个swap;

可以为每个swap定义一个优先级,强制按顺序使用swap;

当系统有多个SWAP分区/文件时,可通过priority参数设置优先级(数值越大,优先级越高)。

完整流程:

(1)临时设置

如:

swapon --priority=100 /dev/vda1

(2)永久设置

在/etc/fstab挂载选项中添加pri=数值(默认是-2);

如:

UUID=***** none swap defaults,pri=100 0 0

(3)显示优先级

swapon --show

如:

注:

当SWAP分区有相同优先级时,内核会以轮循方式向其写入。

3.总结创建GPT/MBR分区(以parted交互模式为例)

3.1查看磁盘情况(用户身份)

lsblk

3.2创建分区表仅在未使用的磁盘中,用/dev/vdb为例)

parted /dev/vdb

mklabel gpt/msdos

3.3创建分区

mkpart

分区名称(如swap);

文件系统类型(如linux-swap);

分区开始的扇区(如100MiB);

分区结束的扇区(如200MB);

3.4验证创建完成

print

3.5运行udevadm settle命令,创建设备文件(root身份)

udevadm settle

注:

创建多个分区时,需要注意扇区开始与结束的区域:

如:

A分区扇区区域200MB-300MB;

创建B分区时应该由300MB开始,如300MB-400MB

大小即:结束值-开始值

如400-300=100MB

相关推荐
GAOJ_K2 小时前
交叉导轨如何避免无效安装
运维·人工智能·科技·自动化·制造
Trouvaille ~2 小时前
【Linux】进程信号(一):信号的快速认识与五种产生方式
linux·运维·网络·c++·操作系统·信号处理·中断
赵民勇2 小时前
使用GSocketService创建Socket服务详解
linux·服务器
刹那间的回眸x.y2 小时前
Jenkins学习
运维·学习·jenkins
线束线缆组件品替网2 小时前
Stewart Connector RJ45 以太网线缆高速接口设计解析
服务器·网络·人工智能·音视频·硬件工程·材料工程
凯子坚持 c3 小时前
Qt常用控件指南(3)
运维·服务器
闲过信陵饮~3 小时前
ubuntu24 安装向日葵远程软件报错
linux·运维·ubuntu
Dovis(誓平步青云)3 小时前
《优化算法效率的利器:双指针的原理、变种与边界处理》
linux·运维·算法·功能详解
wechat_Neal3 小时前
供应商合作模式中以产品中心取向的转型要点
运维·汽车·devops