centos7中使用vg方式扩充root分区

本文详细介绍如何通过LVM(逻辑卷管理)进行磁盘分区的扩展操作,包括创建物理卷(PV)、卷组(VG)及逻辑卷(LV),并演示具体的命令流程。

 pv、vg、lv的意思

物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。

卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。

逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。

1.首先查看我们的根分区大小是多少

[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        18G  1.1G   17G    6% /
devtmpfs                devtmpfs  479M     0  479M    0% /dev
tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
tmpfs                   tmpfs     489M  6.7M  483M    2% /run
tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1               xfs       497M  125M  373M   25% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
可以看到我们的根分区大小为17G

 2.添加一块物理的磁盘。在虚拟机中添加

 3.查看磁盘编号

ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
可以看到sdb就是我们刚才添加的磁盘

 4.创建pv

[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

 5.把pv加入vg中,相当于扩充vg的大小

    先使用vgs查看vg组

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 19.51g 40.00m
可以看到现在就一个vg组其中有两个lv卷,若不确定可以通过lvs查看是否是我们需要扩展的分区
[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 17.47g                                                    
  swap centos -wi-ao----  2.00g                                                   
可以看到这就是我们需要扩展的根分区,我这里还有个swap分区

 扩展vg,使用vgextend命令

[root@localhost ~]# vgextend centos /dev/sdb
  Volume group "centos" successfully extended
vgextend名字命令接的vg的名字,后面是磁盘的位置

 6.我们成功把vg卷扩展了,在用vgs查看一下

[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   2   2   0 wz--n- 39.50g 20.04g
[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 17.47g                                                    
  swap centos -wi-ao----  2.00g  

虽然我们把vg扩展了,但是lv还没有扩展

7.扩展lv,使用lvextend命令

[root@localhost ~]# lvextend -L +20G /dev/mapper/centos-root 
  Size of logical volume centos/root changed from 17.47 GiB (4472 extents) to 37.47 GiB (9592 extents).
  Logical volume root successfully resized.
-L 指定扩展多大的空间到lv中去,后面的/dev/mapper/centos-root是指定扩展的文件位置,可在df -h中看见

 查看lv大小

[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 37.47g                                                    
  swap centos -wi-ao----  2.00g   

 查看df  -h中变化没有

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  1.1G   17G    6% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0

没有变化。

 那么我们要使用[root@localhost ~]# xfs_growfs /dev/mapper/centos-root 命令使系统重新读取大小

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1144832 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=4579328, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4579328 to 9822208

 再使用df  -h查看

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   38G  1.1G   37G    3% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0

 到这里我们就成功扩展了。

 

 

 

备注:我们可以自行生产vg组以及在新的vg中生成lv

vgcreate       创建新的vg组

lvcreate        在新的vg中创建新的lv,但是要指定对vg名字

vgreduce      把pv从vg中移除,若vg中只有一个pv则直接使用vgremove

 

转载于:https://www.cnblogs.com/liutao97/p/6775093.html

<think>好的,用户现在需要解决CentOS 7虚拟机中/dev/mapper/centos-root分区空间不足的问题。之前我已经给出过Linux虚拟机系统盘扩容的步骤,但现在用户提到了具体的LVM分区,需要更针对性的指导。首先,我得回顾之前的回答和用户提供的引用。 用户引用中提到了使用lvextend来扩展逻辑卷,但之前可能遇到了文件系统扩容的问题,比如引用[2]中的resize2fs出错,可能是因为文件系统类型不是ext4而是xfs。需要确认用户的文件系统类型,正确的命令应该是xfs_growfs而不是resize2fs。此外,用户提到的是CentOS 7,默认使用xfs,所以可能在之前的步骤中混淆了命令。 另外,引用[4]的场景描述了LVM扩容时需要卸载挂载点的问题,但根目录无法卸载,所以需要确保在挂载状态下扩展。对于xfs文件系统,可以在线扩容,不需要卸载,这可能是一个关键点。 接下来需要整理步骤:首先扩展虚拟机磁盘,然后扩展物理卷、逻辑卷,最后调整文件系统。确保每一步都针对CentOS 7和LVM结构,避免误操作。同时,用户之前可能遇到super-block错误,需强调正确使用xfs_growfs命令。此外,要提醒用户备份数据或创建快照,防止操作失误导致数据丢失。最后,验证步骤用df -h和lsblk确认扩展成功。可能还需要检查VG是否有足够的空间,如果PV没有扩展,需要先扩展PV部分。用户可能在扩展PV时遇到问题,比如未正确创建新分区或未添加到VG中,这需要详细说明fdisk或parted的使用步骤。</think>--- ### **CentOS 7 LVM逻辑卷扩容分步指南** --- #### **第一步:虚拟机磁盘扩容(以VMware/VirtualBox为例)** 1. **关闭虚拟机** -> 在虚拟机设置中将系统盘容量从原值(如20GB)调整为更大值(如50GB) 2. **启动虚拟机**,通过以下命令验证磁盘是否识别新增空间: ```bash lsblk # 查看磁盘总容量是否增加(如/dev/sda) ``` --- #### **第二步:扩展LVM物理卷(PV)** 1. **创建新分区**(若未自动分配): ```bash sudo fdisk /dev/sda ``` - 输入`n`新建分区 -> 选择默认起始扇区 -> 分配全部剩余空间 - 输入`t`修改分区类型 -> 输入`8e`标记为LVM分区 - 输入`w`保存退出[^4] 2. **刷新并扩展物理卷**: ```bash partprobe /dev/sda # 强制重读分区pvresize /dev/sda2 # 假设原LVM物理卷为sda2(通过pvdisplay确认) ``` --- #### **第三步:扩展逻辑卷(LV)** 1. **检查可用空间**: ```bash vgdisplay # 确认"Free PE / Size"有可用空间 ``` 2. **扩展逻辑卷**: ```bash lvextend -l +100%FREE /dev/mapper/centos-root # 占用全部空闲空间[^1] ``` --- #### **第四步:文件系统在线扩容** 1. **根据文件系统类型操作**: ```bash # 查看文件系统类型(CentOS 7默认XFS): df -Th | grep /dev/mapper/centos-root # XFS文件系统扩容: xfs_growfs / # 直接作用于挂载点[^1] # EXT4文件系统扩容(如特殊配置): resize2fs /dev/mapper/centos-root ``` --- #### **第五步:验证结果** ```bash df -h # 确认根分区容量 lsblk # 查看层级结构 pvdisplay # 检查物理卷利用率 ``` --- #### **关键故障处理** 1. **当出现`resize2fs: Bad magic number`错误**[^2]: - 表明文件系统是XFS而非EXT4,改用: ```bash umount /dev/mapper/centos-root # 若允许卸载 xfs_repair /dev/mapper/centos-root mount -a xfs_growfs / ``` 2. **LVM空间未刷新**: ```bash vgchange -ay # 激活卷组 ``` --- #### **操作风险规避** 1. 强制创建快照: ```bash virsh snapshot-create-as centos7-pre-resize ``` 2. 使用`dracut`重建initramfs(仅当分区表变更时): ```bash dracut --force ``` --- #### **图形化替代方案** ```bash sudo yum install system-storage-manager sudo ssm list # 查看存储结构 sudo ssm resize -s +100%FREE /dev/mapper/centos-root ``` --- ### **相关问题** 1. 如何无损调整LVM物理卷的分区结构? 2. 当`xfs_growfs`报"not a mounted XFS filesystem"时如何解决? 3. LVM快照在扩容操作中的具体应用场景是什么? --- **[关键引用验证]** - LVM扩展必须通过`lvextend`+文件系统扩容两步完成[^2] - XFS文件系统支持在线扩容特性 - 分区类型必须标记为8e(LVM)才能被识别[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值