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

在Red Hat 6.5系统中,如果未使用LVM(逻辑卷管理),而是采用传统的分区方式,对磁盘或分区进行扩容相对较为复杂。以下是一种可行的非LVM磁盘扩容方法,适用于直接扩展现有分区的情况: ### 磁盘扩容前准备 1. **确认磁盘空间**:确保物理磁盘本身具备可用的未分配空间,或者已经添加了新的磁盘空间(例如在虚拟化环境中扩展磁盘容量)。 2. **备份数据**:在执行任何磁盘操作之前,务必备份重要数据以防止数据丢失。 3. **卸载目标分区**:若要修改的分区已挂载,需先卸载该分区。例如: ```bash umount /dev/sda1 ``` ### 使用 `fdisk` 调整分区大小 1. **启动 `fdisk` 工具**:通过以下命令进入分区编辑界面: ```bash fdisk /dev/sda ``` 2. **删除并重新创建分区**:选择要扩展的分区(如 `/dev/sda1`),删除原有分区后重新创建一个更大的分区。注意保持起始扇区与原分区一致,仅调整结束扇区以包含更多空间[^3]。 3. **保存更改并退出**:输入 `w` 保存分区表更改并退出 `fdisk`。 ### 文件系统扩容 完成分区调整后,需要扩展文件系统以利用新增的空间。具体命令取决于文件系统类型: - **对于 ext4 文件系统**: ```bash resize2fs /dev/sda1 ``` - **对于 XFS 文件系统**(虽然Red Hat 6.5默认不使用XFS,但若手动安装则适用): ```bash xfs_growfs /dev/sda1 ``` ### 验证扩容结果 1. 检查文件系统是否已成功扩展: ```bash df -h ``` 2. 确认分区信息是否正确更新: ```bash fdisk -l /dev/sda ``` ### 注意事项 - **数据完整性风险**:直接修改分区存在数据损坏的风险,务必确保有完整备份。 - **在线扩容限制**:除非文件系统支持在线扩容(如XFS),否则必须卸载分区才能安全执行上述步骤[^2]。 - **MBR分区表限制**:若使用传统的MBR分区表,最多只能支持4个主分区或3个主分区加1个扩展分区。若已有多个分区,可能需要调整分区结构以释放空间[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫王da锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值