侧边栏壁纸
博主头像
Ivan Zhang

所谓更牛,就是换个罪受

  • 累计撰写 48 篇文章
  • 累计创建 54 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

Hyper 磁盘空间扩容 - 扩容卷组空间

Ivan Zhang
2024-01-15 / 0 评论 / 0 点赞 / 544 阅读 / 9,308 字
温馨提示:
本文最后更新于 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
有什么问题或观点欢迎评论留言,或者 交流。
如果觉得文章对您有所帮助,可以给博主打赏鼓励一下。

一、修改指定的虚拟机磁盘大小

两种方式,一种是关掉检查点,一种不关掉检查点。
关检查点方式(建议采用这个,不关会有其他余留问题,暂时未知)

1. 关掉检查点

关掉检查点

2. 选中检查点

点击删除检查点删除检查点子树,删除后注意观查一下右下角的提示,提示在合并中,那里可以取消合并。

3. 扩展磁盘空间

(有时关闭检查点后,编辑还是未出情况,需要等待,关闭后台还未结束)

编辑虚拟磁盘

扩展虚拟磁盘

调整磁盘容量

完成磁盘扩展

不关检查点方式

二、操作内部虚拟机修改磁盘容量,并采用修改容量

执行以下步骤前,首先要执行第一步,修改磁盘容量。

0. 主要流程

  1. 通过 fdisk 创建新 LVM 分区
  2. 通过 pgcreate 创建物理卷
  3. 通过 vgextend 将物理卷加入根分区卷组
  4. 通过 lvextend 进行卷扩容
  5. 通过 xfs_growfs 使卷扩容生效

1. 查看磁盘分区信息

查看现在使用的磁盘分区信息,根分区是 36G

[root@k8s ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 876M     0  876M   0% /dev
tmpfs                    887M     0  887M   0% /dev/shm
tmpfs                    887M  9.1M  878M   2% /run
tmpfs                    887M     0  887M   0% /sys/fs/cgroup
/dev/mapper/centos-root   36G   33G  2.6G  93% /
/dev/sda1               1014M  239M  776M  24% /boot
tmpfs                    178M     0  178M   0% /run/user/1000
tmpfs                    178M     0  178M   0% /run/user/0

2. 查看新增磁盘信息

查看新增加的磁盘信息,/dev/sda: 137.4GB。

[root@k8s ~]# fdisk -l

Disk /dev/sda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x0009be6e

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

Disk /dev/mapper/centos-root: 37.7 GB, 37706792960 bytes, 73646080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/centos-swap: 4160 MB, 4160749568 bytes, 8126464 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

3. 新建磁盘分区

根据上面的信息,对磁盘未分区的部分空间进行分区。这一步比较复杂,必须注释才能明白这些操作。

# 对新增未分区的部分磁盘空间进行分区
[root@k8s ~]# fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
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.

# 输入 p,意思是查看分区
Command (m for help): p

Disk /dev/sda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x0009be6e

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

# 输入 n,意思是创建新分区
Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended

# 输入 p,意思是创建主分区
Select (default e): p
# 磁盘可以最多有 4 个主分区,1 个扩展分区,扩展分区还能再分逻辑分区。这里默认即可,或者指定可用的分区号
Selected partition (3-4, default 3)
# 起始扇区,默认即可
First sector (83886080-268435455, default 167772159):
Using default value 83886080
# 结束扇区,也可用 +size{K,M,G} 方式指定大小,如指定创建 +40G 分区
Last sector, +sectors or +size{K,M,G} (83886080-268435455, default 268435455): +40G
Partition 3 of type Linux and of size 40 GiB is set

# 输入 t,更改分区格式,默认为 Linux,我们这里要更换为 Linux LVM
Command (m for help): t
Partition number (1-3, default 3): 3

# 输入字母 l,列出所有格式(非必须,LVM 为 8e)
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'

# 输入p,查看分区
Command (m for help): p

Disk /dev/sda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x0009be6e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM
/dev/sda3        83886080   167772159    41943040   8e  Linux LVM

# 输入 w,意思是保存并退出,如果没有这步操作,前面的部分就白做了。如果中途想退出,输入 q
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.

重启 CentOS 后再继续
当然,其实我们不想要重启,所以这里我们用 partprobe
查看是否能看到新分区信息:ls -la /dev/sd*
查看所有可用块设备信息:lsblk
查看分区信息:cat /proc/partitions

4. 创建物理卷

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

5. 查看物理卷信息

[root@k8s ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <39.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              9983
  Free PE               0
  Allocated PE          9983
  PV UUID               79quet-2NpM-dlEE-H2Yz-Vusg-9tfJ-Jn8YX1

  # 这是 pvcreate 新创建的物理卷
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name
  PV Size               40.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               1itAhy-GALN-9wy5-X1rE-4BdZ-AeXD-VqwbPM

[root@k8s ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  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               38.99 GiB
  PE Size               4.00 MiB
  Total PE              9983
  Alloc PE / Size       9983 / 38.99 GiB
  Free  PE / Size       0 / 0
  VG UUID               MufIWk-g4Oz-ebja-wT42-de3y-D0PT-WEuWYf

6. 扩展卷组

将新创建的分区 /dev/sda3 加入到根目录分区 centos

# 这里的 centos 既上一步中 vgdisplay 出现的 VG Name
[root@k8s ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

报错: Couldn't create temporary archive name

检查 vgextend 对应的卷组已使用是不是 100%,如果是 100% 需先释放一些空间出来。大概释放个 300~400M 即可。

7. 重新查看卷组信息

[root@k8s ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  # 容量增大了
  VG Size               78.99 GiB
  PE Size               4.00 MiB
  Total PE              20222
  Alloc PE / Size       20222 / 78.99 GiB
  Free  PE / Size       0 / 0
  VG UUID               MufIWk-g4Oz-ebja-wT42-de3y-D0PT-WEuWYf

8. 进行卷扩容

# 这里的 centos-root 中的 centos 要根据自身机器 vgdisplay 命令查看的 VG Name 对应的值
[root@k8s ~]# lvextend -l +100%FREE /dev/mapper/centos-root

9. 使扩容生效

# 确认扩展组的文件系统类型
[root@k8s ~]# lsblk -f
# xfs 文件系统
[root@k8s ~]# xfs_growfs /dev/mapper/centos-root
# ext4 文件系统
[root@k8s ~]# resize2fs /dev/mapper/centos-root

10. 确认磁盘信息

最后,查看磁盘信息,根目录分区大小 76G,扩容完美成功

[root@k8s ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 876M     0  876M   0% /dev
tmpfs                    887M     0  887M   0% /dev/shm
tmpfs                    887M  9.0M  878M   2% /run
tmpfs                    887M     0  887M   0% /sys/fs/cgroup
/dev/mapper/centos-root   76G   33G   43G  44% /
/dev/sda1               1014M  239M  776M  24% /boot
tmpfs                    178M     0  178M   0% /run/user/1000

三、提醒:扩展逻辑边界时,如有以下报错修复即可,没有则跳过

[root@k8s ~]# resize2fs -p /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时
找不到有效的文件系统超级块.

首先想到使用 fsck 进行修复下,并没有用,看到错误信息,才知道 xfs 文件要使用 xfs_repair 进行修复

[root@localhost ~]# fsck /dev/mapper/centos-root
fsck,来自 util-linux 2.23.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).

然后尝试修复下,然而并没有用,需要卸载才能进行修复,而此文件系统是挂载到 / 下的,所以想都别想。

[root@localhost ~]# xfs_repair /dev/mapper/centos-root
xfs_repair: /dev/mapper/centos-root contains a mounted filesystem
xfs_repair: /dev/mapper/centos-root contains a mounted and writable filesystem

fatal error -- couldn't initialize XFS library

最后在网上查了一番后,才知道 xfs 文件系统在进行逻辑扩展后,还要进行一步才能完成:

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

[root@localhost ~]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 46G 42G 4.5G 91% / ------------>46G
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 164K 1.9G 1% /dev/shm
tmpfs 1.9G 8.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root #执行调整,扩展后需要执行此步骤
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=2987776 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=11951104, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=5835, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 11951104 to 24903680

[root@localhost ~]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 95G 42G 54G 44% / ------------>已经完成扩展
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 164K 1.9G 1% /dev/shm
tmpfs 1.9G 8.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot

xfs 相关常用命令

xfs_admin: 调整 xfs 文件系统的各种参数
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
xfs_check: 检测 xfs 文件系统的完整性
xfs_bmap: 查看一个文件的块映射
xfs_repair: 尝试修复受损的 xfs 文件系统
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系统的磁盘配额
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
xfs_freeze 暂停(-f)和恢复(-u)xfs 文件系统
xfs_logprint: 打印xfs文件系统的日志
xfs_mkfile: 创建xfs文件系统
xfs_info: 查询文件系统详细信息
xfs_ncheck: generate pathnames from i-numbers for XFS
xfs_rtcp: XFS实时拷贝命令
xfs_io: 调试xfs I/O路径

注意:对 xfs 文件系统使用 mke2fs 命令后变为 ext2,需要修改文件 /etc/fstab 中对应的文件系统类型!

is not a mounted XFS filesystem

扩展分区非 xfs 格式,如 ext4

$ cat /etc/fstab
UUID=d4694886-0ae6-4a70-afed-f7625e6ea9fc   /data   ext4   defaults   0   0

参考链接

0

评论区