1. 程式人生 > 其它 >LVM擴容操作-Centos7

LVM擴容操作-Centos7

生產環境要擴容,太久沒試過LVM,記錄一下走過的坑

[root@archive ~]# df -h  #檢視磁碟掛載,對/dev/mapper/vgnfs-lvdata進行擴容
檔案系統                  容量  已用  可用 已用% 掛載點
devtmpfs                  909M     0  909M    0% /dev
tmpfs                     919M     0  919M    0% /dev/shm
tmpfs                     919M  8.6M  911M    1% /run
tmpfs                     919M     0  919M    0% /sys/fs/cgroup
/dev/vda2                  39G  1.5G   38G    4% /
/dev/vda1                1014M  199M  816M   20% /boot
/dev/mapper/vgnfs-lvdata  290G   30G  261G   11% /nfs
tmpfs                     184M     0  184M    0% /run/user/0

[root@archive ~]# fdisk /dev/vdc   #分割槽新磁碟
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁碟識別符號 0xb5c088cb 建立新的 DOS 磁碟標籤。

命令(輸入 m 獲取幫助):p

磁碟 /dev/vdc:107.4 GB, 107374182400 位元組,209715200 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0xb5c088cb

   裝置 Boot      Start         End      Blocks   Id  System

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分割槽號 (1-4,預設 1):
起始 扇區 (2048-209715199,預設為 2048):
將使用預設值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-209715199,預設為 209715199):
將使用預設值 209715199
分割槽 1 已設定為 Linux 型別,大小設為 100 GiB

命令(輸入 m 獲取幫助):t
已選擇分割槽 1
Hex 程式碼(輸入 L 列出所有程式碼):L

 0  空              24  NEC DOS         81  Minix / 舊 Linu bf  Solaris        
 1  FAT12           27  隱藏的 NTFS Win 82  Linux 交換 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隱藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 擴充套件      c7  Syrinx         
 5  擴充套件            41  PPC PReP Boot   86  NTFS 卷集       da  非檔案系統資料 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 純文字    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可啟動      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 訪問       
 a  OS/2 啟動管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 擴充套件 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隱藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 診斷     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隱藏的 FAT16 <3 61  SpeedStor       ab  Darwin 啟動     f2  DOS 次要       
16  隱藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隱藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智慧睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自動
1b  隱藏的 W95 FAT3 70  DiskSecure 多啟 bb  Boot Wizard 隱  fe  LANstep        
1c  隱藏的 W95 FAT3 75  PC/IX           be  Solaris 啟動    ff  BBT            
1e  隱藏的 W95 FAT1 80  舊 Minix       
Hex 程式碼(輸入 L 列出所有程式碼):8e
已將分割槽“Linux”的型別更改為“Linux LVM”

命令(輸入 m 獲取幫助):p

磁碟 /dev/vdc:107.4 GB, 107374182400 位元組,209715200 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0xb5c088cb

   裝置 Boot      Start         End      Blocks   Id  System
/dev/vdc1            2048   209715199   104856576   8e  Linux LVM

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁碟。

[root@archive ~]# partprobe #更新分割槽表資訊
[root@archive ~]# partx /dev/vdc  #檢視磁碟資訊
NR START       END   SECTORS SIZE NAME UUID
 1  2048 209715199 209713152 100G      

[root@archive ~]# pvcreate /dev/vdc1   #建立PV
  Physical volume "/dev/vdc1" successfully created.
[root@archive ~]# vgdisplay 
  --- Volume group ---
  VG Name               vgnfs
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <300.00 GiB
  PE Size               4.00 MiB
  Total PE              76799
  Alloc PE / Size       74240 / 290.00 GiB
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               RcnxuP-1qDK-eDpv-c84O-lnPM-pU7s-29Zs9l
   
[root@archive ~]# vgextend vgnfs /dev/vdc1   #將新的pv加入到vgnfs組內
  Volume group "vgnfs" successfully extended

[root@archive ~]# pvs  #檢視pv資訊
  PV         VG    Fmt  Attr PSize    PFree   
  /dev/vdb1  vgnfs lvm2 a--  <300.00g  <10.00g
  /dev/vdc1  vgnfs lvm2 a--  <100.00g <100.00g

[root@archive ~]# lvdisplay   #檢視LV資訊
  --- Logical volume ---
  LV Path                /dev/vgnfs/lvdata
  LV Name                lvdata
  VG Name                vgnfs
  LV UUID                nMpYOj-nBsC-TEdw-aL2n-PpU7-Lk1p-NTbryM
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-07-27 17:33:44 +0800
  LV Status              available
  # open                 1
  LV Size                290.00 GiB
  Current LE             74240
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0

[root@archive ~]# lvextend -L +99G /dev/vgnfs/lvdata   #將lvdata增加99G,這裡少個+號會很坑
  Size of logical volume vgnfs/lvdata changed from 290.00 GiB (74240 extents) to 389.00 GiB (99584 extents).
  Logical volume vgnfs/lvdata successfully resized.

[root@archive ~]# xfs_growfs /dev/vgnfs/lvdata   #同步檔案系統
meta-data=/dev/mapper/vgnfs-lvdata isize=512    agcount=4, agsize=19005440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=76021760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=37120, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 76021760 to 101974016

[root@archive ~]# 
[root@archive ~]# df -h  #擴容後檢視
檔案系統                  容量  已用  可用 已用% 掛載點
devtmpfs                  909M     0  909M    0% /dev
tmpfs                     919M     0  919M    0% /dev/shm
tmpfs                     919M  8.6M  911M    1% /run
tmpfs                     919M     0  919M    0% /sys/fs/cgroup
/dev/vda2                  39G  1.5G   38G    4% /
/dev/vda1                1014M  199M  816M   20% /boot
/dev/mapper/vgnfs-lvdata  389G   30G  360G    8% /nfs
tmpfs                     184M     0  184M    0% /run/user/0

LVM擴容是運維工作常有的活,記錄一下,在使用lvextend擴容的時候,必須用到+號,否則會有下面的錯誤:

 [root@archive ~]# lvextend -L 99G /dev/vgnfs/lvdata 
  New size given (25344 extents) not larger than existing size (74240 extents)

說明:最新指定的硬碟大小不大於原來分割槽大小,extend是進行擴大硬碟大小,這裡指定的大小比原分割槽大小還要小,所以報錯。這裡如果需要增加lv的大小,是需要用+號進行指定的,這裡要非常注意。

在擴容lv之後,會出現同步檔案系統的操作,由於這裡centos7使用了xfs的檔案系統,是不能用resize2fs進行同步操作的。需要用到xfs_grows命令。說明:

如果使用xfs檔案系統

xfs_growfs /dev/vgnfs/lvdata 
如果使用ext4  ext3檔案系統

resize2fs /dev/vgnfs/lvdata 
Don't forget the beginner's mind