2013년 11월 25일 월요일

FreeBSD 10.0-BETA3 에서 하드웨어 RAID5 + zfs raid0 와 JBOD + zfs raidz 성능비교



새로 ftp.kr.freebsd.org 서버를 셋업하게 되어서, 기존 방식대로 ufs2 로 할까 하다가 10.0-BETA3 을 설치하게 되면서 zfs root 라든가 기존에 해 보지 않았던 것을 해 보고 있습니다. 그중에 FTP 미러 파티션을 무엇으로 해 볼까가 중요한 문제인데, 서버에 내장된 RAID 카드 (mfid) 의 하드웨어 RAID5 를 사용해 보느냐 아니면 디스크는 모두 JBOD로 지정하고 zfs 의 동급 기능인 raidz 를 써 볼까 하다가 간단히 성능 비교를 해 보기로 했습니다.

기본적으로는 ZFS Raidz Performance, Capacity and Integrity 을 읽고서 제 환경에 맞도록 따라한 것입니다. 자세한 설명은 해당 사이트를 읽어 주세요.

테스트 환경은 다음과 같습니다. 중요한 것만 나열 합니다.

하드웨어

  • DELL 2950
  • Xeon E5405 2.0Ghz x 2 (총 8코어)
  • 16G RAM
  • DELL PERC6 - LSI MegaRAID SAS
  • 디스크: SAS ST1000NM0023/HS0[A9] 953344MB x 4

OS

  • FreeBSD 1.0-BETA3 (amd64)
  • 커널 변경 없음

테스트


다음과 같은 4가지를 비교합니다

  • Hardware RAID5 (writeback):  PERC5 설정에서 디스크 4를 모아서 RAID5로 설정하고, Physical Disk의 write 설정을 writeback 으로 지정한 것입니다. zfs 에서는 zfs create disk 으로 설정.
  • ZFS raidz + HW writethrough: PERC5 설정에서는 디스크 4개를 각각 하나의 Virtual Disk 로 지정하고 해당 Virtual Disk 에는 하나의 Physical Disk 만 추가, Physical Disk 의 write설정을 writethrough 로 지정합니다. zfs는 zfs create raidz 로 설정합니다.
  • ZFS raidz + HW writeback: PERC5 설정에서는 디스크 4개를 각각 하나의 Virtual Disk 로 지정하고 해당 Virtual Disk 에는 하나의 Physical Disk 만 추가, Physical Disk 의 write설정을 writeback 로 지정합니다. zfs는 동일하게 zfs create raidz 로 설정합니다.
  • ZFS raidz + lz4 HW writeback: PERC5 설정에서는 디스크 4개를 각각 하나의 Virtual Disk 로 지정하고 해당 Virtual Disk 에는 하나의 Physical Disk 만 추가, Physical Disk 의 write설정을 writeback 로 지정합니다. zfs는 zfs create raidz 로 설정합니다. 추가로, LZ4 compression도 테스트하고 싶어져서 lz4 compression 을 pool 에 추가합니다. zfs set compression=lz4 로 간단히 할 수 있습니다. LZ4 compression 은 9.2 부터 추가된 기술로, 기존의 lzjb 보다 빠르고, 압축율이 낮으면 자동으로 압축을 하지 않는 기능이 있어서 압축 파일, 이미지, 동영상에서도 안심하고 사용할 수 있다고 합니다.

테스트에는 bonnie++ (benchmarks/bonnie++)을 사용합니다. 명령은 다음과 같습니다.
즉 단일 프로세스 테스트과 4개 프로세스 동시 테스트를 수행합니다.


## 1 proc
bonnie++ -u 101 -r 8192 -s 81920 -d /disk -f -b -n 1

## 4 proc

bonnie++ -u 101 -r 8192 -s 81920 -d /disk -f -b -n 1 -p 4 &
bonnie++ -u 101 -r 2048 -s 20480 -d /disk -f -b -n 1 -y s &
bonnie++ -u 101 -r 2048 -s 20480 -d /disk -f -b -n 1 -y s &
bonnie++ -u 101 -r 2048 -s 20480 -d /disk -f -b -n 1 -y s &
bonnie++ -u 101 -r 2048 -s 20480 -d /disk -f -b -n 1 -y s &


결과


1 프로세스의 결과입니다.  y 축은 bonnie++ 에서 측정된 전송 속도 (Mbytes/sec) 입니다. 하드웨어 RAID5 와 zfs raidz 의 차이가 거의 없고, writethrough 보다는 writeback 이 더 빠른 것으로 볼 수 있습니다. lz4 compression 은 sequential read에서는 큰 향상이 없지만 write 에서 거의 두배 이상, 그리고 무엇보다 random r/w 에서의 효과가 어마어마한 것으로 나타납니다.




4 프로세스의 결과입니다. 4개 결과의 평균 값입니다. raidz+writeback 이 H/W raid5 보다 더 좋고, compression 의 효과가 더 높은 것을 볼 수 있습니다. 거의 3배 빠르군요.



결론

생각보다 하드웨어 RAID5 보다 zfs raid5 가 성능상 떨어지지 않고, 새로 추가된 lz4 compression 이 sequential write 및 random I/O 에서 큰 효과를 볼 수 있다는 점을 알 수 있습니다. 특히 동시에 여러개가 있는 경우 random I/O에서의 효과는 어마어마하군요. CPU 를 사용한다는 단점은 있지만 크게 CPU intensive 한 어플리케이션이 아닌 경우 lz4 를 기본 사용하는 것도 무리가 없지 않을까 합니다. 제 경우는 zfs raidz+lz4 로 해 보려 합니다.






2013년 11월 17일 일요일

[책 소개] 꾸준히, 자유롭게, 즐겁게 - 한국 오픈 소스 개발자들 이야기

무료 공개판: http://osdi.insightbook.co.kr/
책 정보: http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8966260896

국내 오픈소스 개발자 6인의 인터뷰 집입니다. 제 인터뷰는 맨 마지막에 수록되어 있습니다.
6인중에 저 포함 4명이 직접 만나본  아는 사람 및 예전 직장 동료까지 있어서 뿌듯하기도 하네요.

프로그램을 직업의 일부로 작성하긴 합니다만 경력상 일천한 지라 개발자라 하기에는 부족한 점도 많습니다. 제 인터뷰의 부제는 제가 정한 것이 아닙니다 :)

책에도 나와 있지만 구글코리아 권순선씨의 제안으로 시작된 것인데, 리눅스 커널, 자바 네트워킹, 리눅스 배포판, 웹 브라우저 등등에서 현역으로 뛰고 있는 분들의 인터뷰들이 수록되어 있습니다. 제 경우 FreeBSD라는 마이너한 OS를 다루는 일을 오래 했던 것이 선정 이유의 하나일 듯 싶습니다만 (밸런스일까요) 요즘에는 오픈소스 일을 쉬고 있는 입장에서는 조금 부끄럽기도 하군요.

내용 자체는 개인적인 경험 및 느낌이 위주가 되고, 기술적 전문용어가 난무합니다만 굳이 모두 이해하고 있지 않아도 읽는데 큰 지장은 없습니다. 물론 해당 분야에 대해서 어느정도 아는 분들이라면 더 실감나게 읽을 수 있겠지요.

저는 제 내용만 출판 전에 리뷰를 했었지 다른 분은 대략 선정된 분들만 이야기를 들었고 글은 실제로 출간 이후에 읽어 보았는데, 아는 분은 아는 분 대로, 몰랐던 분은 몰랐던 분 대로 재미가 있네요. 아무래도 시대가 대부분 겹치고 관련 용어들도 대부분 알고 하니 개인적으로는 재미 있게 읽었습니다.

이런 류의 책이 기획 의도는 좋지만 실제 읽는 사람 입장에서는 얼마나 마음에 와 닿을까 하는 걱정이 항상 있습니다. 오래 전에 참여하였던 "프로그래머 그들만의 이야기" 에서도 그랬는데, 아무래도 이런 일을 직접 하고 있는 사람의 경험에서 나오는 이야기는, 실제 참여해 보지 않은 사람들의 입장에서는 자신의 세계와는 동떨어진 이야기로 들려 답답해 보일 가능성도 있지 않나 싶습니다.

이런 책을 읽어 주셨으면 하는 분들은 현직의 전문 개발자이기 보다는 자라나는 세대 (아마 컴퓨터가 좋은 고등학생이나 대학 초년생)가 될 것입니다만 그런 경우 너무나 멀어보이는 느낌이 들 수도 있고, 전문 용어에 주눅이 들 수도 있습니다. 부디 그런 선입견 없이 읽어 주셨으면 하군요. 책 내용은 출판사 사이트에 공개되어 있고 (맨 첫줄 참조) 판매도 하고 있습니다. 저는 이 책으로 인해 아무런 금전적 이득은 받지 않았으므로, 읽는 방법에 대해서는 자유롭게 선택해서 읽어 주시면 좋겠군요. 물론 구매하시는 편이 향후에 이런 책이 더 나올 가능성이 있지 않을까요. :)

요즘에 정부 사업으로 오픈 소스 커미터 육성 및 지원이라든가 하는 일들이 있는 것으로 아는데, 참 어려운 것이 방석을 깔아 준다고 잘 되는 것도 아니고, 누가 가이드를 해 준다고 해도 본인의 의지가 없으면 돈을 받고 일하는 것 이상이 되지 않습니다. 스스로 재미를 붙이는 일이 무엇보다 중요한데, 그런 것은 누가 가르쳐 줄 수 있는 건 아니므로 답답하게 느껴질 수 있겠습니다. 부디 10년 전부터 이런 길을 걸었던 선대 및 현역 오픈 소스 개발자의 경험담에서 그런 답을 얻어 한 사람이라도 오픈 소스 개발자가 늘어 난다면 이 책에 참여한 사람으로써 더 이상의 영광은 없겠습니다.