Centos7 虚拟机扩展磁盘

在 上一篇 中介绍了如何释放内存空间、磁盘空间,但磁盘空间实在不够用的时候,该如何处理呢?本文档主要介绍 Vmware 扩展磁盘的方法。

Centos7 虚拟机扩展磁盘

    • 扩展磁盘
    • 扩展分区
    • 执行 `partprobe` 或者重启
    • 分区确认
    • 扩展 vg
    • 扩展 lv
    • `df` 状态确认
    • `xfs_growfs`

创建 Linux 虚拟机时会分配磁盘空间,但随着使用的增加,使用率逐渐升高,此时需要在添加或者扩展一下磁盘。比如: /dev/mapper/centos-home 的磁盘为 19G ,目前已经使用到 77% 。

[eln@localhost ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   39G   24G   16G   61% /
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G   24M  3.8G    1% /dev/shm
tmpfs                    3.9G   26M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop1               134M  134M     0  100% /var/lib/snapd/snap/mathpix-snipping-tool/35
/dev/loop0                90M   90M     0  100% /var/lib/snapd/snap/core/6673
/dev/mapper/centos-home   19G   15G  4.4G   77% /home
/dev/sda1                497M  215M  283M   44% /boot
tmpfs                    781M   60K  781M    1% /run/user/1000

[eln@localhost ~]$ sudo fdisk -l

扩展磁盘

扩展磁盘需要在此虚拟机停止的状态下进行,同时扩展的数字是扩展后的预期大小,比如事前为 20G ,希望扩展 10G ,应该输入 30 。(参考下图)
Centos7 虚拟机扩展磁盘_第1张图片

扩展后,重新启动 linux ,发现 df 状态没有变化,使用 fdisk 确认磁盘空间是否已经扩展。可以看到 Disk /dev/sda: 75.2 GB ,已经扩展了 10G 空间。

[eln@localhost ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   39G   24G   16G   61% /
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G   24M  3.8G    1% /dev/shm
tmpfs                    3.9G   26M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop1               134M  134M     0  100% /var/lib/snapd/snap/mathpix-snipping-tool/35
/dev/loop0                90M   90M     0  100% /var/lib/snapd/snap/core/6673
/dev/mapper/centos-home   19G   15G  4.4G   77% /home
/dev/sda1                497M  215M  283M   44% /boot
tmpfs                    781M   60K  781M    1% /run/user/1000

[eln@localhost ~]$ sudo fdisk -l
[sudo] eln 的密码:

磁盘 /dev/sda:75.2 GB, 75161927680 字节,146800640 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000472b1

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   125829119    62401536   8e  Linux LVM

扩展分区

[eln@localhost ~]$ sudo fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (125829120-146800639,默认为 125829120):
将使用默认值 125829120
Last 扇区, +扇区 or +size{K,M,G} (125829120-146800639,默认为 146800639):
将使用默认值 146800639
分区 3 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
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 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)
正在同步磁盘。

执行 partprobe 或者重启

执行 partprobe 命令用于将磁盘分区表变化信息通知内核,并请求操作系统重新加载分区表,可以避免必须重新启动的问题。也可以 reboot 一下。

[eln@localhost ~]$ sudo partprobe

分区确认

通过 fdisk 可以确认到已经添加了 sda3

 [eln@localhost ~]$ sudo fdisk -l

 磁盘 /dev/sda:75.2 GB, 75161927680 字节,146800640 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 磁盘标签类型:dos
 磁盘标识符:0x000472b1

    设备 Boot      Start         End      Blocks   Id  System
 /dev/sda1   *        2048     1026047      512000   83  Linux
 /dev/sda2         1026048   125829119    62401536   8e  Linux LVM
 /dev/sda3       125829120   146800639    10485760   8e  Linux LVM

扩展 vg

基本 LVM 知识,进行 vg 扩展。

[eln@localhost ~]$ sudo pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.
[eln@localhost ~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   3   0 wz--n- <59.51g 64.00m
[eln@localhost ~]$ sudo vgextend centos /dev/sda3
  Volume group "centos" successfully extended
[eln@localhost ~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   2   3   0 wz--n- 69.50g <10.06g

扩展 lv

[eln@localhost ~]$ sudo lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- 18.84g
  root centos -wi-ao---- 38.60g
  swap centos -wi-ao----  2.00g
[eln@localhost ~]$ sudo lvextend /dev/centos/home /dev/sda3
  Size of logical volume centos/home changed from 18.84 GiB (4824 extents) to <28.84 GiB (7383 extents).
  Logical volume centos/home successfully resized.
[eln@localhost ~]$ sudo lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao---- <28.84g
  root centos -wi-ao----  38.60g
  swap centos -wi-ao----   2.00g

df 状态确认

此时 df 状态还没有变化:

[eln@localhost ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   39G   24G   16G   61% /
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G   26M  3.8G    1% /dev/shm
tmpfs                    3.9G   26M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop1               134M  134M     0  100% /var/lib/snapd/snap/mathpix-snipping-tool/35
/dev/loop0                90M   90M     0  100% /var/lib/snapd/snap/core/6673
/dev/mapper/centos-home   19G   15G  4.4G   77% /home
/dev/sda1                497M  215M  283M   44% /boot
tmpfs                    781M   60K  781M    1% /run/user/1000

xfs_growfs

使用 xfs_growfs 可以将 xfs 文件系统进行 online 方式的扩展,它会将 data block 进行调整。

[eln@localhost ~]$ sudo xfs_growfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=256    agcount=4, agsize=1234944 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4939776, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
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 4939776 to 7560192

再次确认 df 状态,添加的 10G 空间已经有效,使用率也降到了 51% 。

[eln@localhost ~]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   39G   24G   16G   61% /
devtmpfs                 3.8G     0  3.8G    0% /dev
tmpfs                    3.9G   26M  3.8G    1% /dev/shm
tmpfs                    3.9G   26M  3.8G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop1               134M  134M     0  100% /var/lib/snapd/snap/mathpix-snipping-tool/35
/dev/loop0                90M   90M     0  100% /var/lib/snapd/snap/core/6673
/dev/mapper/centos-home   29G   15G   15G   51% /home
/dev/sda1                497M  215M  283M   44% /boot
tmpfs                    781M   60K  781M    1% /run/user/1000

至此, Centos7 虚拟机扩展磁盘已完成。

你可能感兴趣的:(linux)