VMWare ESXi로 우분투 파일 시스템 크기를 온라인으로 확장

VMWare ESXi에서 HDD 용량을 늘린 후 서버를 재부팅하지 않고 OS 측에 반영하고 싶은 경우의 순서를 설명합니다.

환경


  • VMWare ESXi 7
  • OS: Ubuntu 20.04

  • 절차



    1. 현재 용량 확인


    df 명령으로 확인할 수 있습니다.
    #게스트OS(Ubuntu)측에서 실시
    이 경우 다음 명령 실행 결과 /dev/mapper/ubuntu--vg-ubuntu--lv의 15GB 용량을 늘리는 것을 목표로 합니다.
    root@test:~# df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    udev                               448M     0  448M   0% /dev
    tmpfs                               99M  1.2M   97M   2% /run
    /dev/mapper/ubuntu--vg-ubuntu--lv   15G  4.2G  9.8G  30% /
    tmpfs                              491M     0  491M   0% /dev/shm
    tmpfs                              5.0M     0  5.0M   0% /run/lock
    tmpfs                              491M     0  491M   0% /sys/fs/cgroup
    /dev/sda2                          976M  104M  806M  12% /boot
    /dev/loop0                          30M   30M     0 100% /snap/snapd/8542
    /dev/loop1                          55M   55M     0 100% /snap/core18/1880
    /dev/loop2                          72M   72M     0 100% /snap/lxd/16099
    tmpfs                               99M     0   99M   0% /run/user/1000
    

    2. 현재 디스크 구성 확인



    # 게스트 OS (Ubuntu) 측에서 parted -l 명령으로 확인합니다./dev/sda 에 물리 디스크(VMWare ESXi이므로 가상적인 할당입니다만)가, /dev/mapper/ubuntu--vg-ubuntu--lv 에 논리 디스크용의 공간이 설정되어 있는 것을 알 수 있습니다.
    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 17.2GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name  Flags
     1      1049kB  2097kB  1049kB                     bios_grub
     2      2097kB  1076MB  1074MB  ext4
     3      1076MB  17.2GB  16.1GB
    
    
    Model: Linux device-mapper (linear) (dm)
    Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 16.1GB
    Sector size (logical/physical): 512B/512B
    Partition Table: loop
    Disk Flags: 
    
    Number  Start  End     Size    File system  Flags
     1      0.00B  16.1GB  16.1GB  ext4
    

    3. VMWare ESXi로 HDD 용량 확장



    ESXi 측에서 가상 머신의 HDD 용량을 늘립니다.
    화면에서 실시하는 경우, 다음과 같이 가상 머신 > 편집 > 하드 디스크 1의 용량을 늘려 저장할 수 있습니다.


    4.게스트 OS(Ubuntu)측에서 설정 반영


    /dev/sda 이면 /sys/class/block/sda/device/rescan 에 쓰면 HDD 증설을 게스트 OS(Ubuntu) 측에 검지시킬 수 있습니다.
    root@ubuntu:~# echo 1 > /sys/class/block/sda/device/rescan
    

    5. 파티션 변경



    파티션을 변경하여 물리 디스크 설정을 변경합니다.parted /dev/sda 명령으로 /dev/sda의 파티션 변경 모드로 들어가고 print free에서 상태를 확인합니다.
    그 때 HDD 용량이 바뀌었기 때문에 경고가 나오지만 Fix 를 입력하면 표시됩니다.
    아래의 경우 16GB → 20GB로 늘었기 때문에 4GB 분 여유 공간이 태어나는 것을 알 수 있습니다.
    root@test:~# parted /dev/sda
    GNU Parted 3.3
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print free
    Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 8388608 blocks) or continue with the current setting? 
    Fix/Ignore? Fix                                                           
    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name  Flags
            17.4kB  1049kB  1031kB  Free Space
     1      1049kB  2097kB  1049kB                     bios_grub
     2      2097kB  1076MB  1074MB  ext4
     3      1076MB  17.2GB  16.1GB
            17.2GB  21.5GB  4296MB  Free Space
    
    

    이제 resizepart 명령을 사용하여 세 번째 영역을 확장합니다.
    종단의 지정이 들려지므로, 빈 영역의 종단의 위치를 ​​지정합니다.
    (parted) resizepart 3                                                     
    End?  [17.2GB]? 21.5GB
    

    이 상태에서 다시 print free 명령을 실행하면 여유 공간이 없어지고 디스크 공간이 결합되어 있음을 알 수 있습니다.
    (여기서 여유 공간이 나와 있는 경우는 unit s 로 단위를 섹터로 변경하고 나서 위의 작업을 하면 됩니다.)

    ※LVM이 아닌 경우는 parted /dev/sda 때 논리 파티션(File system이 logical인 것)도 마찬가지로 resize할 필요가 있습니다.
    (parted) print free
    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name  Flags
            17.4kB  1049kB  1031kB  Free Space
     1      1049kB  2097kB  1049kB                     bios_grub
     2      2097kB  1076MB  1074MB  ext4
     3      1076MB  21.5GB  20.4GB
    

    파티션 작업이 더 이상 없으므로 quit 명령으로 parted에서 빠져 나옵니다.
    (parted) q                                                                
    Information: You may need to update /etc/fstab.
    

    6.LVM 확장 설정



    LVM을 사용하는 경우 pvresize 명령으로 물리 디스크 공간을 확장하도록 설정합니다.
    root@test:~# pvresize /dev/sda3
      Physical volume "/dev/sda3" changed
      1 physical volume(s) resized or updated / 0 physical volume(s) not resized
    
    pvdisplay 명령으로 19GB를 확인할 수 있습니다.
    root@test:~# pvdisplay
      --- Physical volume ---
      PV Name               /dev/sda3
      VG Name               ubuntu-vg
      PV Size               <19.00 GiB / not usable 16.50 KiB
      Allocatable           yes 
      PE Size               4.00 MiB
      Total PE              4863
      Free PE               1024
      Allocated PE          3839
      PV UUID               JjKDI8-R3a6-selX-j7Az-QV68-HuSr-6u1kNg
    

    7. 논리 디스크 공간 확장



    지금까지의 작업으로 물리 디스크 공간은 확장할 수 있었지만 논리 디스크 공간은 확장할 수 없습니다.parted -l 명령으로 확인하면 /dev/mapper/ubuntu--vg-ubuntu--lv의 디스크가 16.1GB로 남아 있음을 알 수 있습니다.
    root@test:~# parted -l
    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name  Flags
     1      1049kB  2097kB  1049kB                     bios_grub
     2      2097kB  1076MB  1074MB  ext4
     3      1076MB  21.5GB  20.4GB
    
    
    Model: Linux device-mapper (linear) (dm)
    Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 16.1GB
    Sector size (logical/physical): 512B/512B
    Partition Table: loop
    Disk Flags: 
    
    Number  Start  End     Size    File system  Flags
     1      0.00B  16.1GB  16.1GB  ext4
    
    lsblk , lvdisplay 명령으로도 sda3 영역이 19GB인데 비해 ubuntu--vg-ubuntu--lv 의 영역은 15GB가 되어 버리고 있는 것을 확인할 수 있습니다.
    root@test:~# lsblk
    NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    loop0                       7:0    0 29.9M  1 loop /snap/snapd/8542
    loop1                       7:1    0   55M  1 loop /snap/core18/1880
    loop2                       7:2    0 71.3M  1 loop /snap/lxd/16099
    sda                         8:0    0   20G  0 disk 
    ├─sda1                      8:1    0    1M  0 part 
    ├─sda2                      8:2    0    1G  0 part /boot
    └─sda3                      8:3    0   19G  0 part 
      └─ubuntu--vg-ubuntu--lv 253:0    0   15G  0 lvm  /
    sr0                        11:0    1 1024M  0 rom  
    
    root@test:~# lvdisplay
      --- Logical volume ---
      LV Path                /dev/ubuntu-vg/ubuntu-lv
      LV Name                ubuntu-lv
      VG Name                ubuntu-vg
      LV UUID                Q584Io-Rri5-GLt3-r1br-AOJ7-ujvB-OnMk47
      LV Write Access        read/write
      LV Creation host, time ubuntu-server, 2021-03-07 08:31:02 +0000
      LV Status              available
      # open                 1
      LV Size                <15.00 GiB
      Current LE             3839
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    
    

    따라서 lvextend 명령으로 논리 디스크 공간을 확장합니다.
    root@test:~# lvextend --resizefs -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
      Size of logical volume ubuntu-vg/ubuntu-lv changed from <15.00 GiB (3839 extents) to <19.00 GiB (4863 extents).
      Logical volume ubuntu-vg/ubuntu-lv successfully resized.
    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 = 2, new_desc_blocks = 3
    The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 4979712 (4k) blocks long.
    
    lvdisplay 명령으로 확인합니다.
    root@test:~# lvdisplay
      --- Logical volume ---
      LV Path                /dev/ubuntu-vg/ubuntu-lv
      LV Name                ubuntu-lv
      VG Name                ubuntu-vg
      LV UUID                Q584Io-Rri5-GLt3-r1br-AOJ7-ujvB-OnMk47
      LV Write Access        read/write
      LV Creation host, time ubuntu-server, 2021-03-07 08:31:02 +0000
      LV Status              available
      # open                 1
      LV Size                <19.00 GiB
      Current LE             4863
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    

    8. 확장 후 용량 확인


    df 명령으로 확인합니다./dev/mapper/ubuntu--vg-ubuntu--lv 영역이 19GB로 변경되었음을 확인했습니다.
    root@test:~# df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    udev                               448M     0  448M   0% /dev
    tmpfs                               99M  1.2M   97M   2% /run
    /dev/mapper/ubuntu--vg-ubuntu--lv   19G  4.2G   14G  24% /
    tmpfs                              491M     0  491M   0% /dev/shm
    tmpfs                              5.0M     0  5.0M   0% /run/lock
    tmpfs                              491M     0  491M   0% /sys/fs/cgroup
    /dev/sda2                          976M  104M  806M  12% /boot
    /dev/loop0                          30M   30M     0 100% /snap/snapd/8542
    /dev/loop1                          55M   55M     0 100% /snap/core18/1880
    /dev/loop2                          72M   72M     0 100% /snap/lxd/16099
    tmpfs                               99M     0   99M   0% /run/user/1000
    

    결론



    VMWare ESXi에서 Ubuntu의 파일 시스템 크기를 온라인으로 확장하는 방법을 요약했습니다.

    좋은 웹페이지 즐겨찾기