场景

Linux 服务器磁盘不够用了,原来200G左右,CentOS7,需要扩容至 350G

步骤

1、EXSi 编辑设置将 200GB 修改为 350GB
Linux 虚拟机磁盘扩容(ESXi 7.0 为例)_分区表
Linux 虚拟机磁盘扩容(ESXi 7.0 为例)_分区表_02
2、重启服务器

[root@harbor soft]# reboot

3、确认修改已生效

[root@harbor ~]# fdisk -l

Disk /dev/sda: 375.8 GB, 375809638400 bytes, 734003200 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
Disk label type: dos
Disk identifier: 0x000d4fd7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   419430399   208665600   8e  Linux LVM

Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 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


Disk /dev/mapper/centos-swap: 16.9 GB, 16911433728 bytes, 33030144 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


Disk /dev/mapper/centos-home: 143.1 GB, 143067709440 bytes, 279429120 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

Disk /dev/sda: 375.8 GB

4、扩展分区操作

[root@harbor ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (419430400-734003199, default 419430400): 
Using default value 419430400
Last sector, +sectors or +size{K,M,G} (419430400-734003199, default 734003199): 
Using default value 734003199
Partition 3 of type Linux and of size 150 GiB is set

Command (m for help): t
Partition number (1-3, default 3): 
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / 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 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 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 hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

注意仔细看每一步的具体操作

5、加载分区表

[root@harbor ~]# partprobe

执行 partprobe命令用于将磁盘分区表变化信息通知内核,并请求操作系统重新加载分区表,此方法可以不用重启系统;
或者使用 reboot 重启服务器也是可以的。

6、查看加载的分区表

[root@harbor ~]# fdisk -l

Disk /dev/sda: 375.8 GB, 375809638400 bytes, 734003200 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
Disk label type: dos
Disk identifier: 0x000d4fd7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   419430399   208665600   8e  Linux LVM
/dev/sda3       419430400   734003199   157286400   8e  Linux LVM

Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 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


Disk /dev/mapper/centos-swap: 16.9 GB, 16911433728 bytes, 33030144 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


Disk /dev/mapper/centos-home: 143.1 GB, 143067709440 bytes, 279429120 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

可以看到已经添加了 /dev/sda3

7、扩展 vg

先创建PV

[root@harbor ~]# sudo pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

命令 pvs、pvscan 和 pvdisplay 可以查看 pv 的相关信息

然后使用vgs查看

[root@harbor ~]# sudo vgs
  VG     #PV #LV #SN Attr   VSize    VFree
  centos   1   3   0 wz--n- <199.00g 4.00m

8、把sda3加入到LVM组中

先添加

[root@harbor ~]# sudo vgextend centos /dev/sda3
  Volume group "centos" successfully extended

然后查看 vgs

[root@harbor ~]# sudo vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   2   3   0 wz--n- 348.99g 150.00g

其中 centos 为vg组名称,请根据具体情况填写

9、扩展lv

先将 /dev/sda3 扩展到 /dev/mapper/centos-home(这个根据你自己需要扩展的目标填写)

[root@harbor ~]# lvextend /dev/mapper/centos-home  /dev/sda3
  Size of logical volume centos/home changed from 133.24 GiB (34110 extents) to <283.24 GiB (72509 extents).
  Logical volume centos/home successfully resized.

其中 /dev/sda3 为 pv 的名称
不带参数默认扩展所有Free空间,可以通过 -L 参数指定具体扩容的大小(单位为“kKmMgGtT”字节)
例如扩展1024兆空间的命令为:lvextend -L +1024M /dev/mapper/centos-home /dev/sda3

然后使用 lvs 查看情况,可以发现已经增长为 283.24g 了

[root@harbor ~]# sudo lvs
  LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- <283.24g                                                    
  root centos -wi-ao----   50.00g                                                    
  swap centos -wi-ao----   15.75g         

然后使用 df -kh 查看,空间并不会变化,下面继续…

10、xfs在线扩容

[root@harbor ~]# df -T
(略)

[root@harbor ~]# xfs_growfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=8732160 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=34928640, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=17055, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 34928640 to 74249216

11、最终确认

最后使用 df -kh 确认扩容已经生效,至此结束。


(END)