Centos7虚拟机快速扩展app目录

 Docker君   2025-08-26 11:42   18 人阅读  0 条评论

Centos7虚拟机快速扩展app目录  第1张

1、VM虚拟机安装的centos7系统,有个app目录。怎么在不影响使用的情况下扩展下app的目录大小?


在 VM 虚拟机的 CentOS 7 系统中扩展app目录大小,需分步骤操作(假设app目录所在分区使用 LVM 管理,这是 CentOS 7 推荐的灵活方式,且支持在线扩展)。以下是详细流程:

前提准备

  1. 备份数据:操作前备份app目录重要数据(如cp -r /app /backup/app_bak),防止意外。

  2. 确认app目录的存储结构
    执行 df -h /app 查看挂载点(如 /dev/mapper/centos-app),确认是否为 LVM(路径含mapper通常是 LVM)。
    执行 blkid /dev/mapper/centos-app 查看文件系统类型(如xfsext4,CentOS 7 默认是 xfs)。

步骤 1:扩展虚拟机磁盘(VM 层面)

首先在虚拟机软件(如 VMware/VirtualBox)中增加虚拟磁盘容量:


  1. 关闭虚拟机(部分软件支持在线扩展,但建议关闭操作)。

  2. 进入虚拟机设置 → 选择磁盘 → 扩展容量(如从 20GB 扩展到 40GB)。

  3. 重启虚拟机,使系统识别新增的磁盘空间。

步骤 2:在 CentOS 中识别新增磁盘空间

查看磁盘现状:

lsblk  # 检查磁盘(如sda)的总容量是否已增加


刷新磁盘分区表(无需重启):

partprobe  # 让系统识别磁盘容量变化


步骤 3:扩展 LVM 逻辑卷(核心步骤)

如果app目录基于 LVM(如 /dev/mapper/centos-app),按以下步骤扩展:

3.1 扩展物理卷(PV)

如果新增空间在原有磁盘(如sda)上,需先将空闲空间分配给物理卷:


# 查看物理卷现状(确认PV名称,如/dev/sda2) pvdisplay # 扩展物理卷(将新增空间加入已有PV) pvresize /dev/sda2  # /dev/sda2为实际PV路径,需根据lsblk结果修改


3.2 扩展卷组(VG)

如果app所在卷组(如centos)有空闲空间,可跳过此步;否则扩展卷组:


# 查看卷组现状(确认VG名称和剩余空间) vgdisplay centos  # centos为实际VG名称 # 若需扩展卷组(将新增PV加入VG,若有新磁盘时使用) vgextend centos /dev/sda3  # 假设新增分区为sda3(需先创建分区)


3.3 扩展逻辑卷(LV)


# 查看逻辑卷现状(确认LV名称和路径,如/dev/centos/app) lvdisplay /dev/centos/app # 扩展逻辑卷(增加10GB,或使用全部空闲空间) lvextend -L +10G /dev/centos/app  # 增加10GB # 或使用卷组全部空闲空间:lvextend -l +100%FREE /dev/centos/app


步骤 4:扩展文件系统

逻辑卷扩展后,需同步扩展文件系统(根据实际类型选择命令):

若为xfs文件系统(CentOS 7 默认):

xfs_growfs /app  # 直接指定挂载点,自动扩展至逻辑卷最大容量


若为ext4文件系统:


resize2fs /dev/centos/app  # 指定逻辑卷路径


步骤 5:验证结果

执行以下命令确认app目录容量已扩展:


df -h /app  # 查看可用空间是否增加


注意事项

  1. app目录未使用 LVM(直接挂载在普通分区,如sda3):
    需先通过fdiskparted调整分区大小(风险较高,需谨慎操作,建议先转换为 LVM)。

  2. 在线扩展:LVM、xfs、ext4 均支持在线扩展,无需卸载app目录。

  3. 操作失误处理:若扩展失败,可通过备份恢复数据,或使用e2fsck(ext4)、xfs_repair(xfs)检查文件系统。


按以上步骤操作,可在不影响app目录使用的情况下安全扩展其容量。


2、创建分区 /dev/sda3


要创建新的分区(如/dev/sda3)并将其初始化为物理卷(PV),以便加入卷组(VG),可按以下步骤操作(以/dev/sda磁盘为例,新增分区为sda3):

步骤 1:确认磁盘及空闲空间

首先确认要操作的磁盘(如sda)有未分配的空闲空间:


lsblk /dev/sda  # 查看磁盘分区情况


输出示例(注意SIZE列中未分配的空间):

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda      8:0    0   40G  0 disk ├─sda1   8:1    0    1G  0 part /boot └─sda2   8:2    0   20G  0 part  # 原有分区,剩余约19G未分配


步骤 2:使用fdisk工具创建新分区

fdisk是常用的磁盘分区工具,支持 MBR 和 GPT 分区表(CentOS 7 默认 MBR):


  1. 进入磁盘分区界面(需root权限):


fdisk /dev/sda  # 操作sda磁盘


输入命令创建分区:
  • 输入 n(新建分区)→ 选择分区类型(默认p主分区)→ 输入分区号(如3,即sda3)→ 按回车默认起始扇区(使用连续空闲空间)→ 输入分区大小(如+10G表示 10GB,或直接回车使用全部空闲空间)。

  • 示例交互:

Command (m for help): n  # 新建分区 Partition type:  p   primary (2 primary, 0 extended, 2 free)  e   extended Select (default p): p  # 主分区 Partition number (3,4, default 3): 3  # 分区号3 First sector (41943040-83886079, default 41943040):  # 回车默认 Last sector, +sectors or +size{K,M,G} (41943040-83886079, default 83886079): +10G  # 分配10GB Partition 3 of type Linux and of size 10 GiB is set


保存分区设置:
  • 输入 w(写入分区表并退出):

Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.


步骤 3:刷新分区表(使系统识别新分区)

执行以下命令让系统立即识别新创建的分区(无需重启):


partprobe /dev/sda  # 刷新sda磁盘的分区表


确认新分区已创建:

lsblk /dev/sda  # 应能看到新增的sda3

输出示例:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda      8:0    0   40G  0 disk ├─sda1   8:1    0    1G  0 part /boot ├─sda2   8:2    0   20G  0 part └─sda3   8:3    0   10G  0 part  # 新增的分区


步骤 4:将新分区初始化为物理卷(PV)

新分区需要初始化为 LVM 物理卷才能加入卷组:

pvcreate /dev/sda3  # 初始化sda3为PV

成功输出:

 Physical volume "/dev/sda3" successfully created.


步骤 5:将新 PV 加入卷组(VG)

此时可执行之前提到的vgextend命令,将新 PV 加入目标卷组(如centos):

vgextend centos /dev/sda3  # 将sda3加入centos卷组

成功输出:

 Volume group "centos" successfully extended

验证结果

查看卷组是否已包含新的空闲空间:

vgdisplay centos  # 检查Free PE / Size是否增加 # 或更简洁的:vgs centos


至此,新分区已创建并加入卷组,后续即可扩展逻辑卷(LV)和文件系统。


注意:如果磁盘使用 GPT 分区表(大容量磁盘常见),建议使用parted工具替代fdisk,操作逻辑类似但命令略有不同(如mkpart创建分区)。


3、实际PV路径怎么查看?


要查看实际的物理卷(PV)路径,可以使用 LVM 管理工具中的相关命令,这些命令会清晰显示系统中所有物理卷的信息,包括它们的路径。


常用的查看命令如下:


  1. pvdisplay
    这是最常用的命令,会显示所有物理卷的详细信息,包括 PV 路径、所属卷组(VG)、大小、已分配空间等。
    示例输出:

--- Physical volume --- PV Name               /dev/sda2  # 这就是物理卷的实际路径 VG Name               centos     # 所属卷组 PV Size               29.51 GiB / not usable 3.00 MiB Allocatable           yes PE Size               4.00 MiB Total PE              7554 Free PE               1024 Allocated PE          6530 PV UUID               XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

其中 PV Name 后面的路径(如 /dev/sda2)就是你需要的实际 PV 路径。

pvs

这是一个简化版命令,以列表形式显示物理卷的关键信息,更简洁。
示例输出:

PV         VG     Fmt  Attr PSize   PFree   /dev/sda2  centos lvm2 a--  <29.51g 1024.00m

第一列 PV 就是物理卷路径(如 /dev/sda2)。


结合 lsblk 辅助确认

如果需要确认 PV 对应的磁盘分区信息(比如该 PV 是磁盘的哪个分区),可以用 lsblk 命令:

lsblk

示例输出:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda               8:0    0   40G  0 disk ├─sda1            8:1    0    1G  0 part /boot └─sda2            8:2    0   39G  0 part  ├─centos-root 253:0    0   20G  0 lvm  /  └─centos-app  253:1    0   19G  0 lvm  /app


这里可以看到 /dev/sda2 是一个分区,并且被用作 LVM 的物理卷(属于 centos 卷组)。


通过以上命令,你可以准确找到实际的物理卷路径,再结合之前提到的扩展步骤进行操作即可。


4、怎么查询app所在卷组(如centos)有没有空闲空间?


要查询app目录所在卷组(如centos)的空闲空间,可以使用 LVM 管理工具查看卷组(VG)的详细信息,重点关注剩余可用空间


具体命令如下:

1. 直接查看指定卷组的空闲空间

如果已知卷组名称(如centos),用 vgdisplay 命令加卷组名:

vgdisplay centos  # centos 替换为实际卷组名


在输出结果中,找到 Free PE / Size 这一行,例如:

--- Volume group --- VG Name               centos ... Total PE              7554       # 总物理扩展单元数量 Alloc PE / Size       6530 / 25.51 GiB  # 已分配空间 Free  PE / Size       1024 / 4.00 GiB    # 空闲空间(这里是4GB) ...

其中 Free PE / Size 就是卷组的空闲空间(上例中为 4GB)。


2. 若不知道卷组名称,先关联app目录与卷组

如果不清楚app所在的卷组,可按以下步骤关联:


  1. 先查app目录的挂载设备:

df -h /app

输出示例(关注Filesystem列):

Filesystem               Size  Used Avail Use% Mounted on /dev/mapper/centos-app   20G   5G   15G   25% /app

可知app所在设备为 /dev/mapper/centos-app


  1. 从设备名提取卷组名:
    设备名格式通常为 卷组名-逻辑卷名,因此上例中卷组名为 centos
  2. 再用vgdisplay查看该卷组的空闲空间(同步骤 1)。


3. 更简洁的列表查看方式

用 vgs 命令可以以列表形式显示所有卷组的空闲空间,更直观:

vgs

输出示例:

VG     #PV #LV #SN Attr   VSize   VFree   centos   1   2   0  wz--n- <29.51g 4.00g  # VFree列即为空闲空间

其中 VFree 列直接显示卷组的空闲空间(上例中为 4GB)。


通过以上方法,可快速确认app所在卷组是否有足够的空闲空间用于扩展。如果空闲空间充足,可直接扩展逻辑卷;如果不足,则需要先扩展物理卷(PV)或添加新的物理卷到卷组中。


本文地址:https://dockerworld.cn/?id=427
版权声明:本文为原创文章,版权归 Docker君 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

 发表评论


表情

还没有留言,还不快点抢沙发?