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

### Linux 系统中的磁盘分区方法 在 Linux 中,可以通过多种方式完成磁盘分区操作。对于小于等于 2TB 的磁盘,通常使用 `fdisk` 工具来创建 MBR 分区表;而对于大于 2TB 的磁盘,则推荐使用 `parted` 或者 `gdisk` 创建 GPT 分区表。 #### 使用 fdisk 进行磁盘分区 以下是通过 `fdisk` 对新加入的硬盘 `/dev/sdb` 进行分区的具体过程: 1. **查看当前磁盘信息** 可以运行命令 `lsblk` 来确认新增加的硬盘设备名称[^1]。 2. **启动 fdisk 并创建分区** 执行以下命令进入交互模式并按照提示逐步创建新的分区: ```bash fdisk /dev/sdb ``` 3. **保存更改退出** 输入 `w` 将修改写入到磁盘并退出编辑器。 需要注意的是,当磁盘容量超出 2TB 范围时,由于技术限制,`fdisk` 不再适用,此时应改用其他工具如 `parted` 或 `gdisk`[^2]。 --- ### 非 LVM 下的磁盘扩容流程 为了实现不中断服务即可扩展存储空间的目标,在非逻辑卷管理 (Non-LVM) 场景下可采用如下策略来进行在线扩容: 1. **安装必要软件包** 根据操作系统版本不同分别执行相应指令获取所需程序集: - CentOS/RedHat 用户需先启用 EPEL 源后再继续安装; ```bash yum install -y cloud-utils-growpart gdisk xfsprogs ``` - Ubuntu 则直接可用官方源下载依赖项; ```bash sudo apt update && sudo apt install cloud-guest-utils gdisk xfsprogs ``` 2. **调整现有分区大小至最大可能值** 应用 growpart 实现无损增大指定编号分区尺寸动作: ```bash growpart /dev/sda 1 ``` 3. **重新定义文件系统的边界范围** 如果目标分区采用了 ext4 文件系统结构形式的话那么就调用 resize2fs 功能模块达成目的;若是 XFS 类型则对应采取 xfs_growfs 方法处理之. ```bash # For EXT4 filesystems resize2fs /dev/sda1 # Or for XFS filesystems xfs_growfs /mountpoint/ ``` 上述步骤完成后即成功完成了整个磁盘及其内部数据区域的同时扩大作业而无需暂停任何正在运行的服务进程[^3]. --- ### 注意事项 - 在实际操作前务必做好重要资料备份工作以防万一发生意外丢失现象。 - 当涉及多块物理驱动器组合配置RAID阵列或者虚拟化平台环境部署情形时还需额外考虑更多因素影响最终实施方案的选择决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我叫王da锤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值