创建LVM

# 创建物理卷
[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

# 创建卷组
[root@localhost ~]# vgcreate vg_example /dev/sdb
  Volume group "vg_example" successfully created
[root@localhost ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  centos       1   2   0 wz--n- <15.00g      0
  vg_example   1   0   0 wz--n- <10.00g <10.00g

# 创建逻辑组
[root@localhost ~]# lvcreate -l 100%free -n lv_example vg_example
  Logical volume "lv_example" created.
[root@localhost ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  centos       1   2   0 wz--n- <15.00g    0
  vg_example   1   1   0 wz--n- <10.00g    0
[root@localhost ~]# lvs
  LV         VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root       centos     -wi-ao----  13.39g

  swap       centos     -wi-ao----   1.60g

  lv_example vg_example -wi-a----- <10.00g

# 格式化逻辑组
[root@localhost ~]# mkfs.xfs /dev/vg_example/lv_example
meta-data=/dev/vg_example/lv_example isize=512    agcount=4, agsize=655104 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2620416, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# blkid grep vg_example
/dev/mapper/vg_example-lv_example: UUID="83b3262d-d7d1-429e-ab04-67022e91865a" TYPE="xfs"

# 创建挂载点
[root@localhost ~]# mkdir /data
[root@localhost ~]# cat /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=95ef0912-08e6-4fc9-9dc1-179e47ffe304 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=83b3262d-d7d1-429e-ab04-67022e91865a       /data   xfs     defaults        0 0

[root@localhost ~]# mount -a
[root@localhost ~]# df -Th grep /data
/dev/mapper/vg_example-lv_example xfs        10G   33M   10G   1% /data

扩容LVM

# 磁盘扩容10G
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

# PV扩容
[root@localhost ~]# pvresize /dev/sdb
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

[root@localhost ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree 
  /dev/sda2  centos     lvm2 a--  <15.00g     0 
  /dev/sdb   vg_example lvm2 a--  <20.00g 10.00g

# VG自动扩容
[root@localhost ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree 
  centos       1   2   0 wz--n- <15.00g     0 
  vg_example   1   1   0 wz--n- <20.00g 10.00g

# LV扩容
# 因为磁盘换算问题导致失败
[root@localhost ~]# lvextend -L +10G /dev/vg_example/lv_example
  Insufficient free space: 2560 extents needed, but only 2559 available
[root@localhost ~]# lvextend -L +9.99G /dev/vg_example/lv_example
  Rounding size to boundary between physical extents: 9.99 GiB.
  Size of logical volume vg_example/lv_example changed from 10.00 GiB (2560 extents) to 19.99 GiB (5118 extents).
  Logical volume vg_example/lv_example successfully resized.

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

# 文件系统扩容
[root@localhost ~]# xfs_growfs /dev/vg_example/lv_example 
meta-data=/dev/mapper/vg_example-lv_example isize=512    agcount=4, agsize=655104 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2620416, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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 2620416 to 5240832
[root@localhost ~]# df -Th grep /data
/dev/mapper/vg_example-lv_example xfs        20G   33M   20G   1% /data

# 扩容完成

使用xfs文件格式只能扩容磁盘,使用EXT4格式才能扩容和缩减磁盘。