사월의눈의 DevBlog

Azure Ubuntu Server Disk 100% 해결하기 본문

Google Compute Engine/Ubuntu VM

Azure Ubuntu Server Disk 100% 해결하기

Snowapril 2020. 4. 11. 14:49

개인적인 사정으로 Azure Ubuntu Server에서 개발활동을 하게 되면서, Ubuntu를 이렇게 제대로 써보기는 처음인데 오늘 새로운 git 프로젝트를 하려고 여러가지 소스를 클로닝하다가 문제가 발생해서 그 해결 과정을 기록 해놓고자 한다.

 

옥찬호님의 하스스톤 RL 시뮬레이터인 RosettaStone을 보고 영감을 받아, 내가 즐겨 하는 게임인 TFT 시뮬레이터에 대한 프로젝트를 시작해보려고 필요한 소스를 클로닝했다.

git clone https://github.com/utilforever/baba-is-auto --recursive 

하지만 다음과 같은 에러가 발생했다.

fatal: could not create work tree dir 'baba-is-auto': No space left on device

 

분명히 Azure VM을 처음 세팅할 때, 1024 Gib 짜리 디스크를 추가로 연결했던 것으로 기억하는데 벌써 꽉찼다고? 라고 생각하며 df -h 명령어를 쳤는데

Filesystem      Size  Used Avail Use% Mounted on
udev             28G     0   28G   0% /dev
tmpfs           5.6G  150M  5.4G   3% /run
/dev/sda1        29G   29G     0 100% /
tmpfs            28G     0   28G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            28G     0   28G   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           5.6G     0  5.6G   0% /run/user/1000

sda1이 100%로 꽉차있었다. 찾아보니 내가 얼마나 azure vm과 ubuntu에 대해 공부를 안하고 시작을 했는지 알 수 있었는데, Auzre Linux Optimization 문서를 보면 다음과 같은 문구가 있다.


Azure OS 디스크

Azure에서 Linux VM을 만들면 이에 연결된 두 개의 디스크가 있습니다. /dev/sda는 OS 디스크이며/dev/sdb는 임시 디스크입니다. 빠른 VM 부팅 시간에 최적화되어 워크로드에 대한 좋은 성능을 제공하지 않으므로 운영 체제를 제외한 모든 것에 대해 기본 OS디스크(/dev/sda)를사용하지 마십시오. 데이터에 대한 영구적이고 최적화된 스토리지를 얻기 위해 VM에 하나 이상의 디스크를 연결하려고 합니다.

 


sda는 OS 디스크이며 VM 설정때 넣은 1024GiB 디스크도 Temporary Disk로 이용되고 있었다. 일단 OS Disk의 용량 확보를 위하여 다음과 같이 수행하였다.

1. Git에 업로드 되어있지 않은 소스를 제외하고는 rm 명령어로 삭제.

2. " dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less " 명령어로 설치되어있는 페키지들을 크기 순으로 정렬한 뒤 필요없는 페키지는 sudo apt-get autoremove 명령어로 삭제.

3. " dpkg --get-selections | grep linux-image  " 명령어로 오래된 커널을 확인한 후 sudo apt-get purge 명령어로 purge 시킨다.

Filesystem      Size  Used Avail Use% Mounted on
udev             28G     0   28G   0% /dev
tmpfs           5.6G 1020K  5.6G   1% /run
/dev/sda1        29G   24G  5.5G  82% /
tmpfs            28G     0   28G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            28G     0   28G   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           5.6G     0  5.6G   0% /run/user/1000

위와 같은 과정으로 불필요한 파일과 페키지 등을 지워 OS Disk 용량을 82%로 줄이는데 성공하였다.

 

다음으로 Azure Linux VM에서 데이터 디스크 연결하는 방법에 대한 문서를 보고 /datadrive 폴더에 /dev/sdc1 을 마운트 시켜준 뒤 이 폴더를 codeserver의 workspace 폴더로 이용한다.

 

그 결과.

 

Filesystem      Size  Used Avail Use% Mounted on
udev             28G     0   28G   0% /dev
tmpfs           5.6G  1.3M  5.6G   1% /run
/dev/sda1        29G   25G  4.9G  84% /
tmpfs            28G     0   28G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            28G     0   28G   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdc1      1007G   77M  956G   1% /datadisk
tmpfs           5.6G   12K  5.6G   1% /run/user/127
tmpfs           5.6G     0  5.6G   0% /run/user/1000
Comments