RedHat磁盘的添加和扩容

前情提要

  • 🧱 磁盘结构流程概念图:

物理磁盘 (/dev/sdX)

 └── 分区(如 /dev/sdX1)或整块磁盘(直接使用)

      └── 物理卷 (PV, 用 pvcreate)

           └── 卷组 (VG, 用 vgcreate)

                └── 逻辑卷 (LV, 用 lvcreate)

                     └── 格式化为文件系统(如 ext4,用 mkfs.ext4)

  • 命令职责说明

命令

作用

用于哪种结构

mkpart

用于创建磁盘分区(在 parted 中)

普通分区结构、也可为 LVM 提供空间

vgcreate

创建 LVM 的卷组(VG

LVM 结构

pvcreate

初始化一个设备或分区为 LVM 的物理卷

LVM 结构

lvcreate

在卷组里创建逻辑卷(LV

LVM 结构

mkfs.ext4

格式化一个分区或逻辑卷为 ext4 文件系统

可用于普通分区或 LVM LV

  • 小结

操作目标

你应使用的命令

创建普通磁盘分区

parted + mkpart + mkfs.ext4

使用磁盘做 LVM

pvcreate + vgcreate + lvcreate

格式化成 ext4 文件系统

mkfs.ext4

1、添加一块磁盘

2、创建分区

  • 2.1小于2T空间可采用fdisk命令进行分区

`

fdisk /dev/sdb

n

p

1

w

最后输入w保存所有配置,输入quit退出/放弃配置退出

  • 2.2大于2T可采用parted命令进行ext4分区

parted /dev/sdb

使用 parted 创建 GPT 分区表并分区

mklabel gpt            # 创建 GPT 分区表

mkpart primary ext4 0% 100%   # 创建分区,占满整个磁盘

quit

进入 parted 命令行后,依次执行:

mkfs.ext4 /dev/sdb1

格式化分区(假设创建的是 /dev/sdb1)

mkdir /data

mount /dev/sdb1 /data

创建挂载点并挂载

  • 2.3大于2T可采用parted命令进行LVM分区(优选)

查看磁盘状态和需要初始化的磁盘分区

创建物理卷(PV)

pvcreate /dev/sdc

创建卷组(VG)

vgcreate vg_data /dev/sdc

创建逻辑卷(LV)

比如分配 2GB 空间:

lvcreate -n lv_data -L 2G vg_data

也可以使用所有剩余空间:

lvcreate -n lv_data -l 100%FREE vg_data

格式化逻辑卷为 ext4

mkfs.ext4 /dev/vg_data/lv_data

挂载到你想用的目录

mkdir /lvm-data

mount /dev/vg_data/lv_data /data

3、设置开机自动挂载(写入 /etc/fstab

先获取 UUID:

blkid /dev/sdb1

然后编辑 /etc/fstab:

vi /etc/fstab

添加如下行(替换为实际 UUID):

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /data  ext4  defaults  0 0

4、添加完成检查状态

🔧 注意事项

  • RedHat 6.5 默认支持 GPT,但是你必须使用 parted 或 gdisk,不要使用 fdisk
  • 如果你使用的是较老的 BIOS(非 UEFI),启动盘不能使用 GPT(但数据盘没问题)。

5、扩容磁盘

  • 5.1、ext4磁盘类型的扩容

查看目前磁盘状态

卸载分区,此时会中断业务

umount /dev/sdb1

如果提示 busy,可以用:

lsof | grep /dev/sdb1

结束占用进程后再卸载。

卸载之前

卸载之后

使用 parted 删除并重建分区(不丢数据)

⚠️ 只删除分区,不格式化,数据不会丢失。

parted /dev/sdb

在 parted 交互命令行中执行:

rm 1                       # 删除 sdb1 分区

mkpart primary ext4 0% 100%   # 创建新的分区占满整个磁盘

quit

让系统识别新的分区表

partprobe

扩展文件系统到新的分区大小

e2fsck -f /dev/sdb1      # 先检查文件系统(非常重要)

resize2fs /dev/sdb1      # 扩展 ext4 文件系统

重新挂载分区

mount /dev/sdb1 /data

df -h /data              # 查看是否扩容成功

  • 5.2、LVM格式的扩容

查看 VG 剩余空间(确认)

vgdisplay vg_data

执行扩容逻辑卷命令(使用所有剩余空间)

lvextend -l +100%FREE /dev/vg_data/lv_data

这表示:将 vg_data 中剩余的全部空间分配给 lv_data。

你也可以指定扩多少,比如再加 2G:

lvextend -L +2G /dev/vg_data/lv_data

扩展文件系统(ext4)

由于你使用的是 ext4 文件系统(默认情况下通常是),运行:

resize2fs /dev/vg_data/lv_data

这个命令会让文件系统识别到新的逻辑卷大小,并利用新增空间。

📌 注意:这个命令可以在线运行,不影响业务!

验证扩容是否成功

df -h /lvm-data

6、总结

  • ✅ LVM 与 ext4 的对比总结:

特性

LVM

ext4

扩容方式

支持动态扩容、收缩

支持在线扩展,但无法收缩

磁盘合并

支持合并多个磁盘形成一个逻辑卷

不支持多个磁盘合并

文件系统管理

支持快速变动和调整逻辑卷

固定文件系统,变更需要重分区

快照

支持快照,适合数据备份与恢复

不支持文件系统级别的快照

性能开销

有较小的性能开销

较小,无额外的抽象层

数据恢复

恢复复杂,需要恢复 LVM 配置

恢复相对简单

文件系统功能

不涉及文件系统,交给其他工具

提供日志、文件系统修复等功能

  • 对于普通的ext4的格式也可以在线扩容但是需要用到非系统自带组件,需要另外安装。
  • ⚠️ 注意事项:
  • growpart 是 cloud-utils 包的一部分(有些系统可能需要安装):

yum install cloud-utils-growpart

  • 并且growpart 只适用于 MBR 或 GPT 分区表的末尾分区。不能扩展中间分区。
  • 如果你原来是 LVM 分区,这个方法就不适用,而是要用 lvextend + resize2fs。

  • 正确理解 growpart 和 resize2fs

命令

作用

是否会中断业务

growpart

扩展分区表中该分区的大小(前提是后面有空闲空间)

❌ 不会中断

resize2fs

扩展 ext4 文件系统以使用新空间

❌ 在线执行


  • 🧠 工作原理简述

在使用云平台或 LVM 之外的普通分区时,如果你挂载的是 /dev/sdb1 这样的 普通 ext4 分区,growpart 会:

  • 只调整分区表,把 /dev/sdb1 从 2G 扩到例如 5G
  • 文件系统大小并没有变化
  • 所以你还需要运行 resize2fs 才会看到新的可用空间

  • 在线扩容 ext4 分区完整流程(无业务中断)

假设你挂载的是 /dev/sdb1 到 /data,现在你已经通过扩盘或者调整磁盘,使得 /dev/sdb 后面有空闲空间。

# 第一步:扩展分区(非破坏性)

growpart /dev/sdb 1

# 第二步:扩展文件系统

resize2fs /dev/sdb1

注意:这个操作不会卸载分区,可以在线完成。


  • 🔍 验证是否成功:

df -h /data

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/80453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lua—元表(Metatable)

原表解析 在 Lua table 中我们可以访问对应的 key 来得到 value 值,但是却无法对两个 table 进行操作(比如相加)。 因此 Lua 提供了元表(Metatable),允许我们改变 table 的行为,每个行为关联了对应的元方法。 setmetatable(table,metatable…

一种运动平台扫描雷达超分辨成像视场选择方法——论文阅读

一种运动平台扫描雷达超分辨成像视场选择方法 1. 专利的研究目标与意义1.1 研究目标1.2 实际意义2. 专利的创新方法与技术细节2.1 核心思路与流程2.1.1 方法流程图2.2 关键公式与模型2.2.1 回波卷积模型2.2.2 最大后验概率(MAP)估计2.2.3 统计约束模型2.2.4 迭代优化公式2.3 …

Listremove数据时报错:Caused by: java.lang.UnsupportedOperationException

看了二哥的foreach陷阱后,自己也遇见了需要循环删除元素的情况,立马想到了当时自己阴差阳错的避开所有坑的解决方式:先倒序遍历,再删除。之前好使,但是这次不好使了,报错Caused by: java.lang.UnsupportedO…

Ceph集群OSD运维手册:基础操作与节点扩缩容实战

#作者:stackofumbrella 文章目录 一、Ceph集群的OSD基础操作查看osd的ID编号查看OSD的详细信息查看OSD的状态信息查看OSD的统计信息查看OSD在主机上的存储信息查看OSD延迟的统计信息查看各个OSD使用率集群暂停接收数据集群取消暂停 OSD写入权重操作查看默认OSD操作…

PHP框架在分布式系统中的应用!

随着互联网业务的快速发展,分布式系统因其高可用性、可扩展性和容错性成为现代应用架构的主流选择。而PHP作为一门成熟的Web开发语言,凭借其简洁的语法、丰富的框架生态和持续的性能优化,逐渐在分布式系统中崭露头角。本文将深入探讨PHP框架在…

MySQL 索引(一)

文章目录 索引(重点)硬件理解磁盘盘片和扇区定位扇区磁盘的随机访问和连续访问 软件方面的理解建立共识索引的理解 索引(重点) 索引可以提高数据库的性能,它的价值,在于提高一个海量数据的检索速度。 案例…

环境搭建-复现ST-GCN输出动作分类视频(win10+openpose1.7.0+VS2019+CMake3.30.1+cuda11.1)

这次我们安装github.com/yysijie/st-gcn这个作者源码环境,安装流程十分复杂这里介绍大体流程。 1.首先编译openpose的python API接口这个编译难度较大,具体参考博文:windows编译openpose及在python中调用_python openpose-CSDN博客 这个博…

HTML属性

HTML(HyperText Markup Language)是网页开发的基石,而属性(Attribute)则是HTML元素的重要组成部分。它们为标签提供附加信息,控制元素的行为、样式或功能。本文将从基础到进阶,全面解析HTML属性…

2025年“深圳杯”数学建模挑战赛C题国奖大佬万字思路助攻

完整版1.5万字论文思路和Python代码下载:https://www.jdmm.cc/file/2712073/ 引言 本题目旨在分析分布式能源 (Distributed Generation, DG) 接入配电网系统后带来的风险。核心风险评估公式为: R P_{loss} \times C_{loss} P_{over} \times C_{over}…

两数相加(2)

2. 两数相加 - 力扣(LeetCode) 解法: class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode * dummy new ListNode(0);int carry 0;ListNode * head dummy;while (l1 ! nullptr || l2 ! nullptr ||…

基于大模型的新型隐球菌脑膜炎智能诊疗全流程系统设计与实现的技术方案文档

目录 一、术前风险预测系统1. 多模态融合模型架构2. 风险预测流程图(Mermaid)二、麻醉剂量预测系统1. 靶控输注(TCI)模型2. 麻醉方案优化流程图(Mermaid)三、术后并发症预测模型1. 时序预测模型(LSTM)2. 并发症预测流程图(Mermaid)四、健康教育管理模块1. 移动健康(…

coze工作流完成行业调研报告

一、coze 是什么? Coze是由字节跳动推出的新一代AI应用开发平台,定位是零代码或低代码的AI开发平台,也被称为字节跳动版的GPTs ,国内版名为“扣子”。 Coze有国内版和国外版两个版本。国内版网址为http://www.coze.cn &#xff…

智慧农业运维平台养殖—传感器管理监控设计—仙盟创梦IDE

智慧农业综合监测与智能执行系统简介 该系统围绕农业生产全流程,融合气象环境监测、农技指导精准推送及多维度智能控制,助力农业高效、科学发展。 气象环境与农技指导:于农业现场部署慧云智能物联网设备,实时监测空气温湿度、光照…

docker 镜像的导出和导入(导出完整镜像和导出容器快照)

一、导出原始镜像 1. 使用 docker save 导出完整镜像 适用场景&#xff1a;保留镜像的所有层、元数据、标签和历史记录&#xff0c;适合迁移或备份完整镜像环境。 操作命令 docker save -o <导出文件名.tar> <镜像名:标签>示例&#xff1a;docker save -o milvu…

Spring循环依赖问题

个人理解&#xff0c;有问题欢迎指正。 Spring 生命周期中&#xff0c;首先使用构造方法对 bean 实例化&#xff0c;实例化完成之后才将不完全的 bean放入三级缓存中提前暴露出 bean&#xff0c;然后进行属性赋值&#xff0c;此时容易出现循环依赖问题。 由此可见&#xff0c;…

JAVA自动装箱拆箱

引言 Java 中的**装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09;**是自动类型转换的机制&#xff0c;用于在基本数据类型&#xff08;如 int、long 等&#xff09;和其对应的包装类&#xff08;如 Integer、Long 等&#xff09;之间进行转换。这种…

如何阅读、学习 Linux 2 内核源代码 ?

学习Linux 2内核源代码是深入理解操作系统工作原理的绝佳途径&#xff0c;但这无疑是一项极具挑战性的任务。下面为你提供一套系统的学习方法和建议&#xff1a; 一、扎实基础知识 操作系统原理 透彻掌握进程管理、内存管理、文件系统、设备驱动等核心概念。推荐阅读《操作系…

树莓派4的v4l2摄像头(csi)no cameras available,完美解决

根据2025年最新技术文档和树莓派官方支持建议&#xff0c;no cameras available错误通常由驱动配置冲突或硬件连接问题导致。以下是系统化解决方案&#xff1a; 一、核心修复步骤 强制禁用传统驱动 sudo nano /boot/firmware/config.txt确保包含以下配置&#xff08;2025年新版…

c++学习之路(3)

通过《c学习之路&#xff08;2&#xff09;》的学习&#xff0c;我们已经掌握了数据的储存&#xff0c;以及数据的读入与输出&#xff0c;这次课程&#xff0c;我们要学习if语句的使用方法以及逻辑表达式请各位学者做好准备&#xff0c;谢谢配合&#xff01;&#xff01;&#…

Java程序题案例分析

目录 一、基础语法 1. 类与对象 2. 接口与抽象类 二、面向对象语法 1. 继承与多态 2. 四种访问修饰符 三、设计模式相关语法 一、策略模式&#xff08;接口回调实现&#xff09; 1. 完整实现与解析 二、工厂模式&#xff08;静态工厂方法实现&#xff09; 1. 完整实…