본문 바로가기

개발자는 오늘도 달립니다.

[Vagrant] Vagrant VM 디스크 용량 늘리기 with CentOS 본문

유틸/Vagrant

[Vagrant] Vagrant VM 디스크 용량 늘리기 with CentOS

✍21시간 2021. 9. 10. 14:21

Vagrant 는 버추얼 시스템을 쉬운 방법으로 프로비저닝 구성을 도와주는 툴입니다.
VirtualBox 또는 VMware 등을 지원하고 있고 처음에는 생소하고 어렵다고 느껴질 수 있지만 쓰면 쓸수록 놀라운 기능에 매력을 느낄 겁니다!

 

이 포스팅에서는 Vagrant 사용 시 vm 디스크 용량 증설에 대한 내용을 남깁니다.
( To increase the capacity of disk for Vagrant Base Box )

 

 

 

1. vagrant plugin 설치 및 Vagrantfile 수정

 

 

1.1 vagrant plugin 설치

vagrant plugin install vagrant-disksize

위 명령어로 vagrant plugin vagrant-disksize 를 설치해줍니다.

 

 

1.2 Vagrantfile 설정 파일 수정

Vagrant.configure('2') do |config|
  생략...
  config.disksize.size = '60GB'
  생략...
end

vagrant configuration 파일 안에 config.disksize.size 옵션으로 현재 용량 + 늘리고자 하는 용량을 입력해 주세요.

1.3 vm 재시작

vagrant halt && vagrant up

 

(참고로 vagrant reload 를 사용하시면 안 됩니다. 꼭 종료 후 시작하세요!)

아래와 같이 Vagrantfile 설정이 반영되어 올라가는 모습.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'learner/centos' version '7.7.1908' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
...
==> default: Resized disk: old 32768 MB, req 61440 MB, new 61440 MB
...
==> default: flag to force provisioning. Provisioners marked to run always will still run.

 

 

 

2. VM 작업

 

 

2.1 현재 용량 확인

$ df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         1.9G     0  1.9G   0% /dev
tmpfs                            1.9G     0  1.9G   0% /dev/shm
tmpfs                            1.9G   17M  1.9G   1% /run
tmpfs                            1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos_centos7-root   29G   28G  1.4G  96% /
/dev/sda1                       1014M  130M  885M  13% /boot
vagrant                          834G  203G  632G  25% /vagrant
tmpfs                            379M     0  379M   0% /run/user/1001

저는 /dev/mapper/centos_centos7-root 파일 시스템을 29G -> 60G가 늘리도록 할 거예요!
(96% 찬 상태!)

 

 

2.2 이전 사이즈 확인

$ sudo vgdisplay
  --- Volume group ---
  VG Name               centos_centos7
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <31.00 GiB
  PE Size               4.00 MiB
  Total PE              7935
  Alloc PE / Size       7934 / 30.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               BgDs3n-aogc-b0X1-0D3h-JGWf-4VDP-4wvH7X

 

 

2.3 논리 파티션의 크기 조정

$ sudo parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  34.4GB  33.3GB  primary               lvm

(parted) resizepart 2 60GB
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  60.0GB  58.9GB  primary               lvm

(parted) quit
Information: You may need to update /etc/fstab.

저는 디바이스 이름 /dev/sda로 진행했습니다. 웬만하면 디바이스 이름이 저와 같을 거예요!

 

 

2.4 LVM 수정 사항 확인 및 확장

$ sudo pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
$ sudo lvresize -l +100%FREE /dev/mapper/centos_centos7-root
  Size of logical volume centos_centos7/root changed from 28.99 GiB (7422 extents) to <52.88 GiB (13536 extents).
  Logical volume centos_centos7/root successfully resized.

 

(lvresize 명령어가 설치되어 있지 않는 경우)

https://tmjb.tistory.com/64

 

[Disk] centos lvresize 또는 lvextend 설치 방법

파일시스템을 늘리려고 할 때 사용하는 명령어 인 lvresize 또는 lvextend 가 설치가 안되어있을 경우 아래와 같이 설치하시면 됩니다. 1. $yum whatprovides */lvextend 2. $sudo yum install lvm2

tmjb.tistory.com

 

2.5 파일 시스템 크기 조정 ( xfs type = xfs_growfs , ext2, ext3, ext4 type = resize2fs )

sudo xfs_growfs /dev/mapper/centos_centos7-root
meta-data=/dev/mapper/centos_centos7-root isize=512    agcount=4, agsize=1900032 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7600128, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3711, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7600128 to 13860864

 

 

디스크가 증설이 되었는지 확인하시면 완료입니다!

df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         1.9G     0  1.9G   0% /dev
tmpfs                            1.9G     0  1.9G   0% /dev/shm
tmpfs                            1.9G   17M  1.9G   1% /run
tmpfs                            1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos_centos7-root   53G   28G   26G  53% /
/dev/sda1                       1014M  130M  885M  13% /boot
vagrant                          834G  203G  632G  25% /vagrant
tmpfs                            379M     0  379M   0% /run/user/1001
tmpfs                            379M     0  379M   0% /run/user/0

 

 

* 쉘 스크립트 (위 내용을 스크립트로 정리해봤어요.)

sudo parted /dev/sda resizepart 2 60GB
sudo pvresize /dev/sda2
sudo lvresize -l +100%FREE /dev/mapper/centos_centos7-root
sudo xfs_growfs /dev/mapper/centos_centos7-root
Comments