목적
Multipass 인스턴스를 사용하는 도중 아래와 같이 Disk를 거의다 사용하게 되었다.
steven@steven-ubuntu:~$ multipass info master
Name: master
State: Running
IPv4: 10.112.125.79
Release: Ubuntu 20.04.4 LTS
Image hash: 7bd0d8d14260 (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 4.3G out of 4.7G
Memory usage: 212.3M out of 15.6G
Mounts: --
Master Instance의 Disk Size를 증가 시키고자 한다.
(Disk Size 증가 법과 Memory/Cpu 증가법은 거의 같다)
버전 Upgrade
Multipass는 1.10버전 이전에는 별도의 Size 증가 기능을 제공하지 않았다.
그래서 qemu-img를 사용해서 인스턴스 이미지를 수정하였는데, 사용 방법이 개인적으로 어려웠다.
그래서 조금더 찾아본 결과 Multipass 1.10버전 이후 부터는 이런 사이즈 변경 기능(qemu-img를 내부적으로 사용)을 제공하였다.
https://multipass.run/docs/modify-an-instance
그래서 본 포스팅 내용을 따라하려면 1.10 이후 버전으로 Multipass를 Update 해야 한다.
버전 확인하기
$ multipass --version
multipass 1.9.2
multipassd 1.9.2
현 버전은 1.9.2이다. 버전을 업데이트 해보자.
Snap을 이용한 버전 Update
$ sudo snap refresh multipass
"multipass"에 대한 필수 구성 요소를 사용할 수 있는지 확인
...
snap "multipass" (7478) 서비스 시작 snap "multipass" (7478) 서비스 시작 snap "multipass" (7478) 서비스 시작
multipass 1.10.0 from Canonical✓ snap 패키지가 새로 고쳐졌습니다
'sudo snap refresh multipass' 명령어를 통해 버전을 업데이트 가능하다.
업데이트 후 패키지를 실행한다.
$ sudo snap start multipass
Started.
버전을 다시 확인하자.
$ multipass version
multipass 1.10.0
multipassd 1.10.0
상기와 같이 버전이 정상적으로 업데이트 된것을 확인할 수 있다.
인스턴스 정보 변경하기
인스턴스 정보 얻기
우선 인스턴스 정보를 얻기 위해서 다음과 같이 명령어를 실행하자.
$ multipass info master
Name: master
State: Running
IPv4: 10.112.125.79
Release: Ubuntu 20.04.4 LTS
Image hash: 7bd0d8d14260 (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 4.3G out of 4.7G
Memory usage: 212.3M out of 15.6G
Mounts: --
여기에서 master가 인스턴스 명이다. 주의해야 할것은 info를 확인 하기 위해서는 해당 인스턴스가 실행 중이어야 한다.
위에 Disk Size를 보면 4.7G(5G) 중 4.3G를 사용중인 것을 확인 가능하다.
이제 이 Disk Size를 증가 시켜 보자.
Key정보 확인하기
$ multipass get --keys
client.gui.autostart
client.gui.hotkey
client.primary-name
local.bridged-network
local.driver
local.master.cpus
local.master.disk
local.master.memory
local.node1.cpus
local.node1.disk
local.node1.memory
local.node2.cpus
local.node2.disk
local.node2.memory
local.passphrase
local.primary.cpus
local.primary.disk
local.primary.memory
local.privileged-mounts
'multipass get --keys'를 통해서 현 multipass의 인스턴스에 대한 keys를 모두 확인 가능하다.
위는 master, node1, node2 인스턴스가 존재 한다는 것을 확인할 수 있다.
여기서 master의 Disk 정보를 확인해 보자.
$ multipass get local.master.disk
5.0GiB
master는 5GiB의 용량을 활용 중이다.
이것을 10GiB로 늘려보자.
용량 늘리기
$ multipass set local.master.disk=10240MiB
위에서 알게된 key인 local.master.disk의 value를 set명령어를 통해서 변경해 준다.
용량 변경단위는 MiB(메가바이트)이다. GiB 변경을 해보려고 했으나 아직 지원하지 않는듯 하다.
- 10G = 10240MiB = 1MB * 1024 * 10
이렇게 10G를 계산하고 MiB 단위로 변경해 주었다.
늘어난 용량 확인하기
정상적으로 용량이 늘었는지 다음과 같이 확인해 보자.
$ multipass get local.master.disk
10.0GiB
key value는 정상적으로 수정되었다.
Master를 실행 후 info를 확인하자.
$ multipass start master
$ multipass info master
Name: master
State: Running
IPv4: 10.112.125.79
Release: Ubuntu 20.04.4 LTS
Image hash: 7bd0d8d14260 (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 4.3G out of 9.5G
Memory usage: 213.8M out of 15.6G
Mounts: --
용량이 9.5G로 변경되었다.
이제 shell 접속을 통해 Disk가 확장 되었는지 확인하자.
$ multipass shell master
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-122-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Jul 17 10:37:09 KST 2022
System load: 0.07 Processes: 196
Usage of /: 45.6% of 9.51GB Users logged in: 0
Memory usage: 5% IPv4 address for ens3: 10.112.125.79
Swap usage: 0% IPv4 address for tunl0: 192.168.219.64
* Super-optimized for small spaces - read how we shrank the memory
footprint of MicroK8s to make it the smallest full K8s around.
https://ubuntu.com/blog/microk8s-memory-optimisation
1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
Last login: Thu Jul 14 00:06:09 2022 from 10.112.125.1
ubuntu@master:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 1.7M 1.6G 1% /run
/dev/sda1 9.6G 4.4G 5.2G 46% /
Usage of의 정보나 df를 통해 /dev/sda1의 정보를 보아도 Size가 정상적으로 확장 된 것을 볼 수 있다.
'AWS' 카테고리의 다른 글
Calico FailedCreatePodSandBox Unauthorized (2) | 2022.07.11 |
---|---|
Multipass를 이용한 Kubernetes 환경 구성 (2) | 2022.07.10 |
AWS 요금 확인 및 리소스 정리하기 (0) | 2022.07.09 |
RDS 리소스 삭제하기 (0) | 2022.07.09 |
kubectl 1.24 error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" (0) | 2022.06.11 |