1、VM虚拟机安装的centos7系统,有个app目录。怎么在不影响使用的情况下扩展下app的目录大小?
前提准备
步骤 1:扩展虚拟机磁盘(VM 层面)
步骤 2:在 CentOS 中识别新增磁盘空间
lsblk # 检查磁盘(如sda)的总容量是否已增加
刷新磁盘分区表(无需重启):
partprobe # 让系统识别磁盘容量变化
步骤 3:扩展 LVM 逻辑卷(核心步骤)
3.1 扩展物理卷(PV)
# 查看物理卷现状(确认PV名称,如/dev/sda2) pvdisplay # 扩展物理卷(将新增空间加入已有PV) pvresize /dev/sda2 # /dev/sda2为实际PV路径,需根据lsblk结果修改
3.2 扩展卷组(VG)
# 查看卷组现状(确认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:验证结果
df -h /app # 查看可用空间是否增加
注意事项
2、创建分区 /dev/sda3
步骤 1:确认磁盘及空闲空间
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 /dev/sda # 操作sda磁盘
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
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)
pvcreate /dev/sda3 # 初始化sda3为PV
成功输出:
Physical volume "/dev/sda3" successfully created.
步骤 5:将新 PV 加入卷组(VG)
vgextend centos /dev/sda3 # 将sda3加入centos卷组
成功输出:
Volume group "centos" successfully extended
验证结果
vgdisplay centos # 检查Free PE / Size是否增加
# 或更简洁的:vgs centos
3、实际PV路径怎么查看?
--- 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)有没有空闲空间?
1. 直接查看指定卷组的空闲空间
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
目录与卷组
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
。
3. 更简洁的列表查看方式
vgs
输出示例:
VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <29.51g 4.00g # VFree列即为空闲空间
发表评论