전체적인 구조는 Host OS인 Ubuntu 20.04에서 qemu Hypervisor를 통해 Guest OS인 Ubuntu 20.04를 올린 형태입니다.
가상 서버 상에서 작업할 흐름은 다음과 같습니다.
디스크를 먼저 만든 후 이를 가상 서버에 삽입합니다. 이후 삽입한 디스크의 파티션을 생성하고 해당 파일 시스템을 포맷합니다.
그리고 마운트를 진행한 후 리부팅 했을때도 파일 시스템의 연속성을 가져가기 위해 자동마운트를 설정합니다.
마지막으로 디스크의 용량을 증설해보고 이를 최종 확인합니다.
① 디스크 생성 및 삽입
가장 먼저 가상 서버 상에서 디스크를 생성하고 삽입합니다.
디스크는 10기가 짜리를 생성하도록 하겠습니다.
dd if=INPUT 파일 이름 of=OUTPUT 파일 이름 bs=바이트(크기) count=블럭을 복사할 횟수
dd if=/dev/zero of=ddtest bs=102400 count=102400
만든 디스크의 사이즈를 확인합니다.
qemu-img info ddtest -U
정상적으로 만들어 진 것을 확인했으니 디스크를 Guest서버에 추가해줍니다.
디스크 추가는 Host 서버에서 추가해주시면 됩니다.
virsh attach-disk [디스크 붙일 서버명] [붙인 디스크 경로] [파일명]
virsh attach-disk guestserver /home/whkim/test/ddtest vdb
디스크가 성공적으로 부착되었습니다.
디스크가 Guest서버에 정상적으로 붙었는지 확인하는 방법은 Guest 서버에 접속하여 fdisk -l을 명령어를 사용하는 방법과
virsh 명령어를 사용하는 방법이 있습니다. 여기서는 virsh를 통해 Host서버에서 Guest 서버의 디스크 부착 여부를 확인할 것입니다.
virsh domblklist guestserver
를 통해 확인해보면 Target vdb로 잘 삽입됬습니다.
이제 Guest 서버에 접속해서 fdisk -l
을 통해 확인해보면 약 10기가 정도 되는 디스크가 생긴 것을 알 수 있습니다.
② 파티션 생성
이전 까지의 과정이 디스크를 생성하고 삽입하는 과정입니다.
디스크가 잘 삽입된 것을 확인했으니 파티션을 생성할 차례입니다.
n -> p -> 1 ->enter -> enter -> w 순서로 입력하시면 됩니다.
n은 새로운 파티션 생성, p는 primary, 1은 파티션 번호, sector부분은 모두 엔터, w는 저장을 의미합니다.
fdisk [파티션을 생성할 장치명]
fdisk /dev/vda
③ 파일 시스템 포맷
이제 생성한 파티션에 대해 파일 시스템을 포맷해줍니다.
디스크 상태를 확인해준 후 파일 시스템을 포맷하고 UUID를 확인하는 순서로 진행합니다.
# 디스크 상태 확인
fdisk -l
# 파일 시스템 포맷
mkfs.ext4 /dev/vda1
# UUID 확인
blkid
④ 파티션 마운트
다음으로 포맷한 파티션을 마운트 해줍니다.
필자 같은 경우는 /home/whkim에 mkdir 명령어를 이용하여 mounttest1이라는 폴더를 만들고 여기에 마운트를 해줬습니다.
mount /dev/vda1 /home/whkim/mounttest1
⑤ 자동 마운트 설정
마운트 한 것을 자동마운트 설정해줍니다.
이는 윈도우와 달리 Ubuntu 의 경우 재부팅 했을 때 마운트가 풀려버리기 때문입니다.
즉, 자동마운트로 설정해놓으면 재부팅을 하더라도 마운트가 풀리지 않습니다.
위에서 blkid
로 확인한 UUID 값을 vi 편집기를 통해 /etc/fstab에 추가해줍니다.
이후 마운트가 잘 됬는지 파일 시스템 정보를 조회합니다.
확인해보면 위에서 마운트한 /dev/vda1의 장치가 /home/whkim/mounttest1 경로에 성공적으로 마운트 된 것을 알 수 있습니다.
⑥ 디스크 용량 증설
이제 디스크를 사용하다보면 용량이 부족한 순간이 있을 수 있습니다.
이러한 상황을 대비하기 위해 디스크 용량을 증설하는 방법에 대해 알아보겠습니다.
해당 작업은 Host server에서 진행합니다.
고려할 점은 사용 중인 디스크는 크기 수정이 불가능하기 때문에
용량을 추가하기 전에 삽입했던 디스크를 빼줘야 합니다.
virsh detach-disk guestserver vdb
이제 resize 명령어를 통해 원하는 용량만큼 늘려줍니다.
여기서는 20 G 정도 늘려보도록 하겠습니다.
qemu-img resize [guest 디스크] [+추가할 디스크 용량]
qemu-img resize ddtest +20G
이후 resize한 디스크를 삽입해줍니다.
virsh attach-disk guestserver /home/whkim/test/ddtest vdb
⑦ 최종 확인
마지막으로 Guest 서버에서 파티션 용량을 적용해줍니다.
resizepart -> 1 -> 10.5GB(본인 해당 장치에 쓰여있는 용량 그대로 입력) 순으로 입력하시면 됩니다.
parted [resize할 장치명]
parted /dev/vdb1
파일 시스템을 점검해줍니다.
e2fsck -f [점검할 장치명]
e2fsck -f /dev/vdb1
resize2fs 명령어를 통해 최종 resize 작업을 진행합니다.
resize2fs [resize할 장치명]
resize2fs /dev/vdb1
마지막으로 fdisk-l
을 통해 resize 하기 전의 디스크 용량과 resize 한 후 디스크 용량을 비교해봅니다.
확인해보면 위에서 추가한 20G 만큼 추가 되어 총 29.78GB로 증량 된 것을 확인할 수 있습니다.
해당 내용을 참고하시어 생성한 가상 서버에 디스크를 추가 및 제거하거나
파티션,포맷,마운트,디스크 용량 증설 등 다양한 작업을 해보시길 바라겠습니다.
https://idchowto.com/wp-admin/post.php?post=51746&action=edit