0. 들어가는 말, Hudson이 Free Temp Space가 부족해서 Job의 Status를 off로 보고한다.
허드슨은 잘 알려진 CI 툴이다. 허드슨을 리눅스에 설치하여 사용할 때 만나기 쉬운 상황이다. 이는 리눅스의 /tmp 파티션이 1GB
이하의 크기로 잡혀 있을 때 발생하는 것으로 빌드 실행 상태가 오프라인으로 되어 빌드를 할 수 없는 상태이다. 아래 그림에서 빨간색으로
표시된 Free Temp Space 항목이 그것으로 리눅스 시스템에서 df -h 명령으로 /tmp 파티션의 크기를 확인해보면 알 수 있다.
그림1. Free Temp Space is too low
아래 그림은 df -h 명령으로 현재 리눅스 시스템의 파티션 정보이다. 마운트 포인트 /tmp에 마운트 된 파티션 /dev/sda7은
그 크기가 1008MB이다. 새로운 디스크를 추가하지 않고, 기존 파티션을 다시 포맷하지 않고 /tmp 파티션의 크기를 늘려주는
방법은 없을까? 이럴 때 사용할 수 있는 유틸리티가 바로 dd 이다.
그림2. /tmp 파티션의 현재 크기
작업의 순서는 이렇다. 빈 디스크 이미지 파일을 하나 생성하여 이 디스크를 ext4 타입으로 포맷하고 이를
블럭 디바이스로 인식하도록 가상 장치로 마운트 한다. 이 디스크를 마운트 포인트 /tmp에 마운트 하는 것이다.
1. 빈 디스크 이미지(Empty Disk Image)를 하나 생성한다
내용이 0으로 채워진(/dev/zero) 빈 디스크 이미지 파일 /temp를 하나 생성하는데 그 크기는 4GB로 한다.
다음과 dd 명령의 옵션으로 if, of, bs, count에 각각 값을 지정해준다.
dd if=/dev/zero of=/temp bs=1024M count=4
2. 포맷
그림3. 리눅스 파일 시스템으로 포맷하기
3. 이미지 파일을 블럭 디바이스로 마운트
포맷이 끝났으면 이제 이 디스크 이미지를 마운트 하자. 옵션 loop는 이미지 파일을 하나의 블럭 디바이스처럼
읽을 수 있도록 가상의 장치로 마운트 할 때 사용하는 옵션이다.
mount -t ext4 -o loop /temp /tmp
그림4. 블럭 디바이스로 마운트 하기
4. 자동 마운트 설정
/temp /tmp ext4 defaults,loop 0 0
5. /tmp에 쓰기 권한 주기
마지막으로 적절한 권한을 주지 않으면 hudson이 실행되질 않는다. 다음과 같은 읽기와 쓰기 권한을 추가하도록 한다.
chown a+wr /tmp
이제 모든 과정이 끝났다. 마지막으로 허드슨으로 돌아가 Status를 갱신하도록 하자.
Free Temp Space가 3GB로 1GB 이상이 된 것을 확인할 수 있다. master 노드로 가서
Online으로 설정해주면 된다.
'일하는 중에' 카테고리의 다른 글
CS 프로그램의 일부를 ActiveX로 포팅하기-어떻게 만들까? (0) | 2013.12.09 |
---|---|
CS 프로그램의 일부를 ActiveX로 포팅하기-들어가는 말 (0) | 2013.12.04 |
flume-ng를 이클립스로 빌드하기 (2) | 2013.05.26 |
flume-ng를 윈도에서 구동하려면 (4) | 2013.05.19 |
이클립스에서 메이븐을 이용한 하둡 프로젝트 생성하기 (8) | 2012.12.30 |