一、修改指定的虚拟机磁盘大小
两种方式,一种是关掉检查点,一种不关掉检查点。
关检查点方式(建议采用这个,不关会有其他余留问题,暂时未知)
1. 关掉检查点
2. 选中检查点
点击删除检查点
或删除检查点子树
,删除后注意观查一下右下角的提示,提示在合并中,那里可以取消
合并。
3. 扩展磁盘空间
(有时关闭检查点后,编辑还是未出情况,需要等待,关闭后台还未结束)
不关检查点方式
二、操作内部虚拟机修改磁盘容量,并采用修改容量
执行以下步骤前,首先要执行第一步,修改磁盘容量。
0. 主要流程
- 通过
fdisk
创建新LVM
分区 - 通过
pgcreate
创建物理卷 - 通过
vgextend
将物理卷加入根分区卷组 - 通过
lvextend
进行卷扩容 - 通过
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
评论区