创建虚拟机的时候,一般选择 动态扩展虚拟硬盘,N 多年以来,一直没有关心过他是如何动态扩展的,直到最近折腾大文件 SQL 导入任务,遇到了磁盘空间占满的情形
以下这 2 个就体现了动态扩展空间,扩展起来很容易
-
Centos7 以 200G 为例
/dev/mapper/centos-root 50G ,type:lvm
/dev/mapper/centos-home 剩下的可浮动空间 150G ,type:lvm
可以将 /home 空间转给 /root 空间Hyper-V创建 centos7 虚拟机 ,将 /home 空间转移到 /root
-
Ubuntu 以 200G 为例
ubuntu–vg-ubuntu–lv 已经分配了空间 99G (Alloc PE / Size ),type:lvm
保留了可供扩展的空间 99G ( Free PE / Size ),lsblk 看不到,vgdisplay 才可以看到
如果 ubuntu–vg-ubuntu–lv 满了,可以直接扩展到 99G + 99Gubuntu20.04磁盘满了 /dev/mapper/ubuntu–vg-ubuntu–lv 占用 100%
问题
如果动态扩展空间也已经用完了,就需要在虚拟机管理中扩展虚拟硬盘,新扩展出来的空间,和以上保留好的的空间的扩展,做法稍有不同
Centos 7 200G 扩展到 600G 操作过程
已经记录在这里 Hyper-V 扩展磁盘后,如何扩容到 root
简单总结一下:
- 增加分区 (/dev/sda3)
- 重载分区表
- 格式化新分区 (/dev/sda3)
- 在新分区上(/dev/sda3)创建新 PV (pvcreate)
- 扩展磁盘卷组 ( Volume group 简称 vg )centos ,加入新分区 /dev/sda3(vgextend)
- 扩展 LV
Ubuntu 200G 扩展到 400G 的过程
友情提示,如果怕搞错,开始之前给徐不疾增加一个检查点(快照)
Lvm 文档
-
开始之前
$ sudo lsblk[sudo] password for dhbm: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 63.3M 1 loop /snap/core20/1828loop1 7:1 0 49.9M 1 loop /snap/snapd/18357loop2 7:2 0 63.5M 1 loop /snap/core20/1974loop3 7:3 0 53.3M 1 loop /snap/snapd/19457loop4 7:4 0 91.9M 1 loop /snap/lxd/24061sda 8:0 0 400G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot└─sda3 8:3 0 198G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 99G 0 lvm /sr0 11:0 1 1024M 0 rom
-
增加分区 (/dev/sda4)
$ sudo fdisk /dev/sda
以下分别是 p (当前分区表)和 n (新建分区表)之后的结果......Device Start End Sectors Size Type/dev/sda1 2048 4095 2048 1M BIOS boot/dev/sda2 4096 4198399 4194304 2G Linux filesystem/dev/sda3 4198400 419428351 415229952 198G Linux filesystem......Device Start End Sectors Size Type/dev/sda1 2048 4095 2048 1M BIOS boot/dev/sda2 4096 4198399 4194304 2G Linux filesystem/dev/sda3 4198400 419428351 415229952 198G Linux filesystem/dev/sda4 419428352 838860766 419432415 200G Linux filesystem
$ lsblk
多出来 sda4 (200G)NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT......sda 8:0 0 400G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 2G 0 part /boot├─sda3 8:3 0 198G 0 part │ └─ubuntu--vg-ubuntu--lv 253:0 0 99G 0 lvm /└─sda4 8:4 0 200G 0 part sr0 11:0 1 1024M 0 rom
-
重载分区表
ubuntu 不需要 partprobe -
格式化新分区 (/dev/sda3)
ubuntu 不需要 mkfs ? -
在新分区上(/dev/sda3)创建新 PV (pvcreate)
$ sudo pvcreate /dev/sda4Physical volume "/dev/sda4" successfully created.$ sudo pvdisplay--- Physical volume ---PV Name /dev/sda3VG Name ubuntu-vgPV Size <198.00 GiB / not usable 0 Allocatable yes PE Size 4.00 MiBTotal PE 50687Free PE 25343Allocated PE 25344PV UUID gQJF2h-gcUA-ZxwC-D8XZ-Nju3-xs2A-jlHqE8"/dev/sda4" is a new physical volume of "200.00 GiB"--- NEW Physical volume ---PV Name /dev/sda4VG Name PV Size 200.00 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID K0dCvg-i75I-nfe6-X5Le-2nS2-GhAX-hYqi11
-
扩展磁盘卷组 ( Volume group 简称 vg )centos ,加入新分区 /dev/sda3(vgextend)
$ sudo vgextend ubuntu-vg /dev/sda4Volume group "ubuntu-vg" successfully extended
-
扩展 LV
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lvSize of logical volume ubuntu-vg/ubuntu-lv changed from 99.00 GiB (25344 extents) to 397.99 GiB (101886 extents).Logical volume ubuntu-vg/ubuntu-lv successfully resized.$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lvresize2fs 1.45.5 (07-Jan-2020)Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing requiredold_desc_blocks = 13, new_desc_blocks = 50The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 104331264 (4k) blocks long.