JENKINS_HOME is almost full 해결 - VM 용량확장

동아리 활동 관련해서 CI/CD를 구축할 일이 생겨서 간만에 젠킨스에 접속해 보았는데, 디렉토리 공간이 부족하다는 경고가 떠서 이를 해결해보도록 하겠다.

각 프로젝트의 오래된 로그를 제거

빌드할때마다 로그라던지를 기록하는데, 로그를 삭제하지 않기 때문에 가만히 내버려두고 있으면 파일이 점점 쌓인다.

Pipeline > 구성 > 오래된 빌드 삭제 를 통해서 먼저 사용하지 않는 파일들부터 비워주도록 하자.

이렇게 삭제하려고 하는데 오류가 발생한 경우는 보다 까다로운 경우로, 거의 다 찬 것이 아니라 꽉 찬 것이기 때문에 더이상 jenkins 내부에서 해결할 수 없다.

VM 용량 확장하기

나 같은 경우는 /var/jenkins_home 경로를 bind를 통해서 로컬 머신이랑 묶어놓았기 때문에, 도커 환경 내부에서 용량이 부족했던 것이 아니라 도커를 구동하고 있는 호스트 머신에서의 용량까지 전부 사용하면서 문제가 발생한 것이었다.

호스트 머신 자체도 proxmox 위에서 가상화되어서 운영되고있기 때문에, 가장 먼저 proxmox 상에서 저장공간 확장을 진행했다.

VM > Hardware > Hard Disk (sata0) > Disk Action > Resize 항목에서 용량을 추가로 할당해주면 된다.

나는 넉넉하게 128기가로 잡아줬다.

이 후 재부팅 하면 용량 확장 자체는 되지만, 그 공간을 제대로 사용하지 못하기 때문에 추가적인 설정이 필요하다. VM의 터미널에 붙어서 lsblk 명령어로 공간을 확인해 보면, 몇번의 수정을 거치면서 용량이 엉망진창이다만, 간단히 보자면

ubuntu--vg-ubuntu--lv 가 jenkins가 사용하게 되는 logical volume인데, 여기에 공간이 제대로 할당되지 않은 것이다.

cfdisk

우선 이 문제를 해결하기 위해서, 128기가로 설정해준 용량을 sda3에 할당해주어야 한다.

sudo cfdisk 를 입력, 파티션 크기를 확장한다.
/dev/sda3 선택 후 Resize 를 고르면, 알아서 확장 가능한 가장 큰 용량을 제시해주니 그대로 선택해준다.

/dev/sda3 이 126기가로 용량이 확장된 것을 확인한 뒤, WriteQuit 으로 나오면 된다.

파일시스템 변경 후에는 시스템 재시작을 한번 해주도록 하자.

파일시스템 변경 후에 용량을 확보해 주기 위해서,

sudo pvresize /dev/sda3

을 입력해 준다.

lvextend

이제 논리 볼륨(logical volume) 이 들어갈 물리적인 공간이 마련되었으니, 실제로 논리 볼륨의 크기를 키워주면 된다. 논리 볼륨의 크기를 확장시키는 명령어는 lvextend로, 대부분의 경우 확장해야 하는 논리 볼륨이 ubuntu--vg-ubuntu--lv 이기 때문에 아래 명령어를 입력해서 확장해주도록 하자.

sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

남는 공간의 100%를 전부 해당 논리 볼륨에 추가하라는 명령어다.

이 모든 과정을 거친 뒤에 LV가 정상적으로 126기가의 넓은 공간을 확보한 것을 확인해주고, jenkins를 재시작 해본다.

경고 메시지가 온데간데 없고, 보안패치하라는 문구만이 남아있는것을 확인할 수 있다.

결론

사실 캐시가 뭐 엄청나게 많이 쌓였다기 보다는 기존에 할당했던 공간인 32기가가 너무 물리적으로 작지 않았나 하는 생각이 든다. 128기가로 조금 널널하게 할당해 두었으니 오래 버티지 않을까 싶고 이번에도 용량이 꽉 차게 된다면 뭔가 구조적인 문제로 인할 가능성이 높으니 그때 가서 추가적인 조치를 취해봐도 괜찮을 것 같다.

docker system prune -a -f

명령어를 통해서 이미지 캐시도 일부 날려봤는데, 나에게 딱히 큰 효과는 없었으나 빌드 기록이 꽤나 많이 쌓였다면 유용할 것 같다.

위 명령어는 도커에서 빌드할때 사용하는 이미지들을 싹 날려버리는 명령어이기 때문에, 타 이미지를 구동시킬때 영향을 줄 수도 있으니 주의해야 할 것이다. 내 환경 상에서는 현재 사용중인 이미지 4개를 제외한 이미지를 모두 삭제한 것을 확인할 수 있다.

이제 마저 CI/CD를 구축하러 가보도록 하겠다...

Read more

말이 샐러드가 되어가 / なみぐる

얘는 그냥 장르폭이 넓음... 보카코레 출품곡인 즌다몬머시기들로 접했었는데 다양하게 잘 만드시는거같아요 M/V 영상 Lyrics 가사 また頭の中身がまとまらなくて 마타 아타마노 나카미가 마토마라나쿠테 또다시 머릿속이 정리되지 않아서 言葉がサラダになっていく 코토바가 사라다니 낫테이쿠 말이 샐러드가 되어가 出力された無意味の羅列で 슈츠료쿠사레타 무이미노 라레츠데 출력되어지는 무의미한 나열으로 視界が緑になっていく 시카이가 미도리니 낫테이쿠 시야가 초록색이 되어가 とりとめのない孤独な言葉が 토리토메노 나이 코도쿠나

By 박성훈

당신밖에 보이지 않아 / r-906

r-906의 따끈따끈한 신곡 간간히 나오는 사진이라던지 중간의 멜로디파트 등을 통해서 Catchy?! 의 후속곡임을 쉽게 알아볼 수 있습니다 M/V 영상 Lyrics 가사 きっと運命の寵児 킷토 운메이노 초우지 분명 운명에게 사랑받아 まるで魔性の物語(ストーリー) 마루데 마쇼우노 스토리 마치 마성과 같은 스토리 誰もが釘付けの一等星 다레모가 쿠기즈케노 잇토우세이 모두가 점찍어둔1 일등성 でもね 데모네 그치만 あなたも知らないあなたを 아나타모

By 박성훈

boj 24915 센터가 돋보여야 해

금광세그와 boj 16993최근 ett/hld도 그렇고, 구간에 대해서 다루는 쿼리에 대해서 좀 깊게 공부해보고 있다. 일반적인 부분합 세그먼트 트리와는 다른 형태의 문제들을 해결해보고 있기에, 발상을 좀 정리해보고자 한다. 세그먼트 트리와 구간 세그먼트 트리의 주요 조건 및 세그트리가 주로 필요한 장소는 * 구간에 대한 쿼리를 진행하면서 * 각 쿼리당 처리시간이 빨라야 하고 * 인접한

By 박성훈

금광세그와 boj 16993

최근 ett/hld도 그렇고, 구간에 대해서 다루는 쿼리에 대해서 좀 깊게 공부해보고 있다. 일반적인 부분합 세그먼트 트리와는 다른 형태의 문제들을 해결해보고 있기에, 발상을 좀 정리해보고자 한다. 세그먼트 트리와 구간 세그먼트 트리의 주요 조건 및 세그트리가 주로 필요한 장소는 * 구간에 대한 쿼리를 진행하면서 * 각 쿼리당 처리시간이 빨라야 하고 * 인접한 두 구간이

By 박성훈