创建虚拟机的时候,一般选择 动态扩展虚拟硬盘,N 多年以来,一直没有关心过他是如何动态扩展的,直到最近折腾大文件 SQL 导入任务,遇到了磁盘空间占满的情形

以下这 2 个就体现了动态扩展空间,扩展起来很容易

  1. Centos7 以 200G 为例
    /dev/mapper/centos-root 50G ,type:lvm
    /dev/mapper/centos-home 剩下的可浮动空间 150G ,type:lvm
    可以将 /home 空间转给 /root 空间

    Hyper-V创建 centos7 虚拟机 ,将 /home 空间转移到 /root

  2. Ubuntu 以 200G 为例
    ubuntu–vg-ubuntu–lv 已经分配了空间 99G (Alloc PE / Size ),type:lvm
    保留了可供扩展的空间 99G ( Free PE / Size ),lsblk 看不到,vgdisplay 才可以看到
    如果 ubuntu–vg-ubuntu–lv 满了,可以直接扩展到 99G + 99G

    ubuntu20.04磁盘满了 /dev/mapper/ubuntu–vg-ubuntu–lv 占用 100%

问题

如果动态扩展空间也已经用完了,就需要在虚拟机管理中扩展虚拟硬盘,新扩展出来的空间,和以上保留好的的空间的扩展,做法稍有不同

Centos 7 200G 扩展到 600G 操作过程

已经记录在这里 Hyper-V 扩展磁盘后,如何扩容到 root

简单总结一下:

  1. 增加分区 (/dev/sda3)
  2. 重载分区表
  3. 格式化新分区 (/dev/sda3)
  4. 在新分区上(/dev/sda3)创建新 PV (pvcreate)
  5. 扩展磁盘卷组 ( Volume group 简称 vg )centos ,加入新分区 /dev/sda3(vgextend)
  6. 扩展 LV

Ubuntu 200G 扩展到 400G 的过程

友情提示,如果怕搞错,开始之前给徐不疾增加一个检查点(快照)

Lvm 文档

  1. 开始之前

     $ sudo lsblk
     [sudo] password for dhbm: 
     NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
     loop0                       7:0    0 63.3M  1 loop /snap/core20/1828
     loop1                       7:1    0 49.9M  1 loop /snap/snapd/18357
     loop2                       7:2    0 63.5M  1 loop /snap/core20/1974
     loop3                       7:3    0 53.3M  1 loop /snap/snapd/19457
     loop4                       7:4    0 91.9M  1 loop /snap/lxd/24061
     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  /
     sr0                        11:0    1 1024M  0 rom 
    
  2. 增加分区 (/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  
    
  3. 重载分区表
    ubuntu 不需要 partprobe

  4. 格式化新分区 (/dev/sda3)
    ubuntu 不需要 mkfs ?

  5. 在新分区上(/dev/sda3)创建新 PV (pvcreate)

     $ sudo pvcreate /dev/sda4
     	  Physical volume "/dev/sda4" successfully created.
     
     $ sudo pvdisplay
     	  --- Physical volume ---
     	  PV Name               /dev/sda3
     	  VG Name               ubuntu-vg
     	  PV Size               <198.00 GiB / not usable 0   
     	  Allocatable           yes 
     	  PE Size               4.00 MiB
     	  Total PE              50687
     	  Free PE               25343
     	  Allocated PE          25344
     	  PV 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/sda4
     	  VG Name               
     	  PV Size               200.00 GiB
     	  Allocatable           NO
     	  PE Size               0   
     	  Total PE              0
     	  Free PE               0
     	  Allocated PE          0
     	  PV UUID               K0dCvg-i75I-nfe6-X5Le-2nS2-GhAX-hYqi11
    
  6. 扩展磁盘卷组 ( Volume group 简称 vg )centos ,加入新分区 /dev/sda3(vgextend)

     $ sudo vgextend ubuntu-vg /dev/sda4
       Volume group "ubuntu-vg" successfully extended
    
  7. 扩展 LV

     $ sudo lvextend -l +100%FREE  /dev/mapper/ubuntu--vg-ubuntu--lv
       Size 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--lv
     resize2fs 1.45.5 (07-Jan-2020)
     Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
     old_desc_blocks = 13, new_desc_blocks = 50
     The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 104331264 (4k) blocks long.
    

    另一次,直接扩充全部空间

     $ sudo lvextend -l +100%FREE  /dev/mapper/ubuntu--vg-ubuntu--lv
       Size of logical volume ubuntu-vg/ubuntu-lv changed from 99.00 GiB (25344 extents) to <198.00 GiB (50687 extents).
       Logical volume ubuntu-vg/ubuntu-lv successfully resized.
     
     $ lsblk
     NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
     ...
     sda                         8:0    0  200G  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  198G  0 lvm  /
     sr0                        11:0    1 1024M  0 rom  
    
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐