LVM (Logical Volume Manager) 使用示例

// TODO: 待整理更新…

1. VG 扩容

例如已有 VG 名为centos,新加的磁盘为/dev/sdb,用来扩容根目录/

使用下列命令会自动将整块/dev/sdb创建为一个新的 PV,并将其加入centos以供使用:

> vgextend centos /dev/sdb

> pvdisplay /dev/sdb
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               centos
  PV Size               223.57 GiB / not usable <4.59 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              57233
  Free PE               5266
  Allocated PE          51967
  PV UUID               d1SdU8-r927-8b0r-Q5qs-zGl9-XhZu-SE8rSw

> vgdisplay centos
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  12
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <326.13 GiB
  PE Size               4.00 MiB
  Total PE              83489
  Alloc PE / Size       78223 / <305.56 GiB
  Free  PE / Size       5266 / 20.57 GiB
  VG UUID               O2IM4T-7sbU-ONuI-maTG-Zrkq-paGl-5f054x

2. LV 扩容

:CentOS 7 默认文件系统XFS, 须使用xfs_growfs替代resize2fs

# 当前有三个 LV, 计划为 root 扩容
> lvs centos
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- <34.81g                                                    
  root centos -wi-ao---- 263.00g                                                    
  swap centos -wi-a-----   7.75g 

# 为 root 这个 LV 增加 10G 的空间
> lvextend -L +10G /dev/centos/root

# CentOS 7 默认文件系统为 XFS, 须使用 xfs_growfs 替代 resize2fs 
> resize2fs /dev/centos/root

3. 调整 /home 可用空间至根分区

参考 CentOS 6.5 重新调整 /home 和根目录 / 大小 - FEFJay | 博客园

查看各分区使用情况:

> df -hT -t xfs
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs   283G  144G  140G  51% /
/dev/sda6               xfs  1014M  167M  848M  17% /boot
/dev/mapper/centos-home xfs    35G  360M   35G   2% /home

卸载/home目录:

> umount /home

如果提示无法卸载,则是有进程占用/home目录,可使用fuser命令查看并终止占用的进程:

# 查看占用 /home 目录的进程
> fuser -m /home

# 查看占用 /home 目录的进程
> fuser -k /home

调整/home分区大小至30G

> resize2fs -p /dev/mapper/centos-home 30G

xfsCentOS 7默认的文件系统,只能扩大不能缩小,所以在必须缩小文件系统时,需要利用xfsdumpxfsrestore工具来备份和还原资料。具体参见:CentOS 7 调整 XFS 格式的 LVM 大小 | CSDN

可能会提示要先运行e2fsck对文件系统进行检查:

> e2fsck -f /dev/mapper/centos-home

之后再重新执行命令:

> resize2fs -p /dev/mapper/centos-home 30G

挂载上/home,查看该目录的空间是否变为30G

> mount /home
> df -hT /home

此时文件系统已经缩减到30G,但centos-home这个Logical Volume的大小还没有进行调整。使用lvreduce命令减少centos-home的空间大小:

# 将 centos-home 这个 LV 调整至 30G
> lvreduce -L 30G /dev/mapper/centos-home

# 以下的语法是相对加减的语法,仅作示例
> lvreduce -L +5G /dev/mapper/centos-home
> lvreduce -L -5G /dev/mapper/centos-home

最后把闲置空间增加给centos-root,并生效至文件系统:

> lvextend -L +5G /dev/mapper/centos-root

> resize2fs -p /dev/mapper/centos-root
# 或者 xfs_growfs /dev/centos/root

参考文章

  1. CentOS 7 中使用 LVM 管理磁盘和挂载磁盘 | 博客园
  2. 使用 lvm 管理磁盘分区 | 且听风吟
  3. Linux 使用 lvm 管理磁盘 | 阿文的博客
  4. Linux 磁盘管理系列三:LVM的使用 | Linux 运维日志
  5. 一张图让你学会 LVM | Linux 就该这么学
  6. LVM - ArchWiki
  7. 3 分钟看懂 Linux 磁盘划分 | 知乎
  8. Linux 系统 /dev/mapper 目录浅谈 | CSDN
  9. XFS vs EXT4 | 夏天的风
  10. CentOS 6.5 重新调整 /home 和根目录 / 大小 - FEFJay | 博客园
  11. CentOS 7 调整 XFS 格式的 LVM 大小 | CSDN