文章目录

  • 1 根分区扩容
  • 2 lvextend之后需要还原


1 根分区扩容

给根分区/dev/mapper/cl-root扩容20G空间

centos7扩展root分区 centos7根分区扩容_lvm


1、先创建一个分区,并把其调整为8e LVM存储卷格式

centos7扩展root分区 centos7根分区扩容_hadoop_02


centos7扩展root分区 centos7根分区扩容_centos_03

# 重读分区表或重启服务器
[root@rsq-8-163 ~]# partprobe

# 格式化新分区之前先查看根分区是什么文件系统
[root@rsq-8-163 ~]# mount | grep /dev/mapper/cl-root
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

# 格式化新分区
[root@rsq-8-163 ~]# mkfs.xfs /dev/xvda4

# 接下来的操作都在lvm下操作
[root@rsq-8-163 ~]# lvm

# 创建pv
lvm> pvcreate /dev/xvda4
WARNING: xfs signature detected on /dev/xvda4 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/xvda4.
  Physical volume "/dev/xvda4" successfully created.
  
# 查看VG Name
lvm> vgdisplay 
  --- Volume group ---
  VG Name               cl
  
# 将新的pv加入到此vg中
lvm> vgextend cl /dev/xvda4
  Volume group "cl" successfully extended
  
# 扩展逻辑虚拟卷lv的容量,先查看目前有多少Free空间
lvm> vgdisplay 
  --- Volume group ---
  VG Name               cl
  ......
  Free  PE / Size       5120 / 20.00 GiB
lvm> lvextend -l +5120 /dev/mapper/cl-root
  Size of logical volume cl/root changed from 36.99 GiB (9470 extents) to 56.99 GiB (14590 extents).
  Logical volume cl/root successfully resized.
  
# 退出
lvm> quit
  Exiting.

lvextend指令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。其后有两个选项:

选项

说明

-L

指定逻辑卷的大小,单位为kKmMgGtT字节,也就是Size

-l

指定逻辑卷的大小,单位为PE数

2、上边的操作只是卷扩容,还需要对文件系统实现真正的扩容

# CentOS 7 下面 由于使用的是 XFS,所以要用
xfs_growfs /dev/mapper/cl-root

# CentOS 6 下面 要用
resize2fs /dev/mapper/cl-root

查看磁盘空间,检查扩容是否成功

centos7扩展root分区 centos7根分区扩容_centos7扩展root分区_04

2 lvextend之后需要还原

背景:

  • 根分区有1.75TB实际可用空间,需要把多余的两块8T的盘加入根分区,在lvextend之后发现原来8T的盘被格式化为ext4,然后根分区是xfs文件系统,这会导致xfs_growfs resizefs的时候报错,所以需要把加入的两个pv,分别是/dev/sda1和/dev/sdb1给删掉。

修复:
需要按照以下步骤严格执行,否则会造成文件系统错误

  1. 查看现有vg状态,使用命令:vgdisplay
[root@hadoop111 ~]# vgdisplay                                             
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <15.72 TiB
  PE Size               4.00 MiB
  Total PE              4120269
  Alloc PE / Size       4120269 / <15.72 TiB
  Free  PE / Size       0 / 0   
  VG UUID               3Z4pzJ-iXuk-RuhH-UU2w-JCZR-1Khy-ir35yb
  1. 需要找出之前的状态,查看之前的数据盘大小,翻历史记录发现之前的大小是1.75TB,这时候需要缩小lv的大小为1.7TB,保证有充足的扇区可以还原给/dev/sda1/dev/sdb1
[root@hadoop111 ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <1.75 TiB
  PE Size               4.00 MiB
  Total PE              457445
  Alloc PE / Size       457445 / <1.75 TiB
  Free  PE / Size       0 / 0   
  VG UUID               xDwaya-VH9C-wqLh-m2I3-j0SB-7Obe-cH53fK
  1. 缩小根分区lv大小,使用命令:lvreduce -L 1.7T /dev/mapper/centos-root 执行完命令之后再查看下vg,需要保证Alloc PE / Size的值小于等于原来的457445
[root@hadoop111 ~]# lvreduce -L 1.7T /dev/mapper/centos-root
  Rounding size to boundary between physical extents: 1.70 TiB.
  WARNING: Reducing active and open logical volume to 1.70 TiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/root? [y/n]: y
  Size of logical volume centos/root changed from <1.75 TiB (457445 extents) to 1.70 TiB (445645 extents).
  Logical volume centos/root successfully resized.
  

[root@hadoop111 ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <15.72 TiB
  PE Size               4.00 MiB
  Total PE              4120269
  Alloc PE / Size       446669 / 1.70 TiB
  Free  PE / Size       3673600 / 14.01 TiB
  VG UUID               3Z4pzJ-iXuk-RuhH-UU2w-JCZR-1Khy-ir35yb
  1. 还原/dev/sda1/dev/sdb1的pv大小为默认的
[root@hadoop111 ~]# pvresize /dev/sda1
  Physical volume "/dev/sda1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@hadoop111 ~]# pvresize /dev/sdb1
  Physical volume "/dev/sdb1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
  1. 把原来vgextend的两块盘去掉
[root@hadoop111 ~]# vgreduce centos /dev/sda1
  Removed "/dev/sda1" from volume group "centos"
[root@hadoop111 ~]# vgreduce centos /dev/sdb1
  Removed "/dev/sdb1" from volume group "centos"
  1. 删除pv
[root@hadoop111 ~]# pvremove /dev/sda1
  Labels on physical volume "/dev/sda1" successfully wiped.
[root@hadoop111 ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
  1. 扩容根分区为它原本的最大空间
[root@hadoop111 ~]# lvextend -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from 1.70 TiB (445645 extents) to 1.74 TiB (456421 extents).
  Logical volume centos/root successfully resized.
[root@hadoop111 ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  18
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <1.75 TiB
  PE Size               4.00 MiB
  Total PE              457445
  Alloc PE / Size       457445 / <1.75 TiB
  Free  PE / Size       0 / 0   
  VG UUID               3Z4pzJ-iXuk-RuhH-UU2w-JCZR-1Khy-ir35yb
# 对文件系统实现真正的扩容
[root@hadoop112 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=32, agsize=14605504 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=467375104, imaxpct=5
         =                       sunit=64     swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=228224, version=2
         =                       sectsz=512   sunit=64 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0