Oddpoet's βetalog

詩를 쓰듯 코드를 써라

Docker Device-mapper Error

지난주에 빌드 서버에서 docker pull하다가 서버에 hang이 걸리는 문제가 발생했다.

시스템 담당자와 로그 뒤지면서 씨름하던 끝에 devicemapper가 원인이라는 것을 알았다. 시스템 로그에 보면 아래와 같은게 있는데, dm-1이라는게 docker의 devicemapper 이다.

1
2
3
4
...
Nov 10 16:55:56 my-server-01 kernel: EXT4-fs (dm-1): VFS: Can't find ext4 filesystem
Nov 10 17:06:40 my-server-01 kernel: EXT4-fs (dm-1): VFS: Can't find ext4 filesystem
...

MockHTable : HBase Testing

HBase 기반 시스템을 개발하면서 제일 아쉬운게 HSQL과 같이 테스트 시에 사용할 수 있는 embeded DB였다. HSQL은 실제 DB와 거의 동일한 기능을 제공하면서 로컬 머신에서 빠르게 동작하기 때문에 Unit Test 작성하고 확인할 때 빠르게 피드백을 받을 수 있게 도와주는 좋은 툴이었다.

하지만 HBase는 unit test 수행후 rollback 한다던가 하는 전략이 불가능하기 때문에 매 테스트마다 테이블을 생성하고 삭제해야 했다. 시간이 지날수록, 로직에 대한 시나리오 테스트가 늘어날 수록 테스트 수행시간은 늘어날 수 밖에 없었다.

그러다가 이 문제의 해결책으로 찾은 것이 바로 MockHTable이다.

Vagrant Box 패키징과 공유

개발환경에서 필요한 인프라적인 요소들(db, hbase 등)을 쉽게 구축하고 공유하기 위해서 vagrant를 종종 사용하게 되는데, 자기가 만든 vagrant box를 패키징하고 다른 사람들에게 쉽게 공유하는 방법을 정리한다.

Pow와 Apache를 함께 실행하기

OSX에서 개발할 때 호스트 설정 없이 로컬에 구동 중인 서버에 접근하기 위해 pow를 애용하는데, pow를 설치하고 나면 pow가 localhost 접근을 하이재킹하기 때문에 로컬 호스트의 apache에 접근할 수 없게 된다. 이에 대한 해결책은 다음과 같다.