개발자는 오늘도 달립니다.
[Vagrant] Vagrant VM 디스크 용량 늘리기 with CentOS 본문
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 명령어가 설치되어 있지 않는 경우)
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