1. 程式人生 > >邏輯卷lvm創建、擴展、縮小

邏輯卷lvm創建、擴展、縮小

locate sync 行動 nbsp data nts row ctu reat

系統環境:CentOS Linux release 7.3.1611 (Core)  3.10.0-514.el7.x86_64

CentOS6與7配置方法大同小異。通常是在系統安裝的時候創建lvm,然後在後期進行動態擴展分區容量。

新建lvm

安裝lvm2

# yum install lvm2

創建初始化物理卷,物理卷可以是一個分區,也可以是一整塊硬盤

# pvcreate /dev/sda2

查看物理卷

[root@centos7 etc]# pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/sda2  cl lvm2 a--  29.00g 4.00m
[root@centos7 etc]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name cl PV Size 29.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7423 Free PE 1 Allocated PE
7422 PV UUID TN6Hvw-4C4D-pceR-Beqx-CTUm-7L7b-8oFozr

創建卷組,可指定多個硬盤

# vgcreate VGNAME /dev/sda2

查看卷組

[root@centos7 etc]# vgs
  VG #PV #LV #SN Attr   VSize  VFree
  cl   1   2   0 wz--n- 29.00g 4.00m
[root@centos7 etc]# vgdisplay 
  --- Volume group ---
  VG Name               cl
  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 29.00 GiB PE Size 4.00 MiB Total PE 7423 Alloc PE / Size 7422 / 28.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID 3Wspeg-DuBe-V4yu-QuIk-90eS-D0TC-FLwOaU

創建邏輯卷

# lvcreate -n LVNAME -L 20G VGNAME

查看邏輯卷

[root@centos7 etc]# lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl -wi-ao---- 26.99g                                                    
  swap cl -wi-ao----  2.00g                                                    
[root@centos7 etc]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                2TMxpT-Ed6t-OJNr-rKbJ-Fep6-3kQO-A30ntK
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-09-04 15:30:26 +0800
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                UfjHjv-bWzI-FMKs-ze0A-7GoI-Z3ho-oguZ61
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-09-04 15:30:26 +0800
  LV Status              available
  # open                 1
  LV Size                26.99 GiB
  Current LE             6910
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

格式化邏輯卷並掛載使用

# mkfs.ext4 /dev/VGNAME/LVNAME
# mount /dev/VGNAME/LVNAME /mnt

刪除lvm,先後順序lv->vg->pv

# lvremove /dev/VGNAME/LVNAME
# vgremove VGNAME
# pvremove /dev/sdb

動態擴展lvm

新增物理卷

# pvcreate /dev/sdd

新增物理卷到卷組

# vgextend VGNAME /dev/sdd

增加邏輯卷容量,增加邏輯卷容量的操作是熱操作,無需停用任何設備或分區

# lvextend -L +10G /dev/VGNAME/LVNAME  #增加10G到LVNAME卷中
# lvextend -l +100%FREE /dev/VGNAME/LVNAME  #增加剩余所有容量到卷中

更新文件系統之後,新增容量才能生效

# resize2fs /dev/VGNAME/LVNAME  #適用於ext2、3、4文件系統
# xfs_growfs /dev/VGNAME/LVNAME  #適用於xfs文件系統

縮小lv、vg,刪除pv

卸載邏輯卷。要執行邏輯卷縮小操作,必須先取消掛載,且操作順序必須是umount>resize2fs>lvreduce

# umount /dev/VGNAME/LVNAME

重新指定邏輯卷大小

# resize2fs /dev/VGNAME/LVNAME 10G

把邏輯卷減少9G容量,為防數據丟失,減少的容量盡量少於實際計算的減少容量

# lvreduce -L -9G /dev/VGNAME/LVNAME 

把邏輯卷減少到9G,縮小後的容量必須大於已經使用的空間

# lvreduce -L 9G /dev/VGNAME/LVNAME

重新掛載邏輯卷

# mount /dev/VGNAME/LVNAME /mnt

縮小卷組容量,退出物理卷(物理硬盤)。縮小前確認vg空閑空間大於/dev/sdd,否則可能造成數據丟失

# vgreduce VGNAME /dev/sdd 
# pvremove /dev/sdd

邏輯卷lvm創建、擴展、縮小