2011년 7월 25일 월요일

135 테라 스토리지를 단지 $7,384 에 만든다. 그 비밀은?

몇일전 흥미로운 글 하나를 보았다. 효율적인 인프라구성에도 많은 관심을 가지고 있는데, BackBlaze 라는 곳에서 직접 만든 스토리지 박스에 대해서 세부적으로 공개했다. 각 사용된 부붐과 케이스 설계도등을 포함해 모두 공개되어 있어 이와 같은 스토리지 박스를 만들고자 하는 사용자에게는 도움이 될것 같다. 여기서 처음에 만든 박스는 67 테라바이트 였고, 이번에 만든것은 135 테라 바이트이다.

Storage Pod 1.0, 2.0 이름으로 나뉘며 4U 서버에 구성되어 있다. Storage Pod 2.0 135 테라 바이트는 제작하는데 $7,384 가 들었다고 한다. BackBlzae 는 온라인 백업 서비스를 제공하는 업체이며, 늘어나는 스토리지 용랴에 대한 고민을 하다 직접 스토리지 박스를 제작하게 되었다. EMC, NetApp 등과 같은 전문 스토리지 제작업체에서 판매하는 스토리지는 고가이다 보니 그들만의 효율적인 스토리지 필요하였던 것이다.

아래 그래프를 보면 3년동안 1 페타바이트를 운영했을때의 비용을 산출한 것이다. BackBlaze 는 $56,696 인데 비해 델은 $378,500 비용이 들었다. 델이 그나마 저가의 스토리지 임을 감안했을때 다른 스토리지는 더 큰 비용의 차이가 발생할 것이다. 필자도 패킷파일을 보관하기 위해 수테라의 스토리지를 운영하는데, 빠르게 증가하는 패킷파일의 보관을 생각하면 스토리지 비용을 무시할 수가 없다. 물론, 아주 큰 스토리지 용량을 필요로 하는 것은 아니기 때문 단일 제품을 구매해 사용하는 것이 효과적일 수도 있지만, 데이터센터와 같이 아주 큰 용량을 필요로 하는 곳에서는 이와 같이 직접 스토리지를 직접 만들어 사용하면 큰 비용절감을 가져올 수 있을 것이다.


[출처] Backblaze : 3년간 페타바이트 운영비용

아래 그림은 데이터센터에 설치된 스토리지이고, 하나의 랙에 1 페타바이트 구성으로 $56,696 이 소요되었다.


소개된 블로그 내용을 기준으로 기술적으로 조금 살펴보면, 히타치 3테라 디스크가 사용되었다. 웨스턴디지털, 시게이트 드라이브도 테스트 하였지만, 히타치 제품이 좋은 성능을 보였다고 한다.

인텔 i3 540 CPU 를 사용하였고 메모리는 1.0 버전 2배 크기인 8 기가로 확장하였다. 더 많은 램은 디스크 캐쉬를 더 많이 할 수있어, 성능을 높일 수 있었다고 한다. SATA 카드에서 I/O 를 줄이기 위하여, 4개의 SATA 포트가 달린 3개의 SATA 카드를 장착하였다. 이로인해 45 개의 디스크를 꼽을 수 있었다.


[출처] Backblaze : Pod 2.0 SATA Wiring Diagram

64비트 데비안 5가 설치되었고, 1.0 에서 사용한 JFS 파일시스템 대신, ext4 파일시스템을 선택하였다. 신뢰성, 성능면에서 좋은 면을 보여주었기 때문인데 16테라의 볼륨 크기 제한이 있다는 단점이 있다. 그래서 LVM(Logical Volumne Manager) 으로 볼륨을 묶었고 RAID 6 로 구성하였다. RAID 6 는 보통 많이 사용하는 RAID 5 에 추가로 한개의 패리티가 더 있는 것으로, RAID 로 묶인 디스크에서 최대 2개까지의 디스크 Fail 까지는 보장한다.
성능적으로 1.0 보단 많이 향상되어서 67 테라 바이트트를 채우는데 25일이 걸렸는데, 2.0 인 135 테라바이트로도 25일이 걸렸다고한다.

즉, 기술적으로만 보면 크게 어려운 부분은 없다. 물리적으로 45개의 디스크를 커버할 수 있는 것이 필요하고 그 이후는, 똑같이 운영체제 시스템 관점에서 디스크를 묶고 관리하는 기술이 필요한 것이다. 하지만 스토리지를 만드는 것을 떠나, 더 중요한 것은 이것을 어떻게 사용하고 관리를 하느냐 하는 것이다. 안정적으로 운영할 수 있는 노하우도 있을 것이며, 모니터링이며 기타 관리적 부분을 생각하면 생각보다 검토해야 할 사항이 많아진다.

이들이 얘기하기에 대략 주당 10개의 디스크를 교체한다고 한다. 이것은 전체 디스크에서 년간 약 5% 정도의 디스크 Fail 이 있다고 한다. Storage Pod 2.0 에서는 히타치 디스크를 사용하였고, 1% 이하로 실패율을 보고 있다. 이렇게 운영하기 까지 수 많은 테스트와 경험에서 계속 발전시켜 나가고 있는 것이다. 이외, 랙에서 제일 하단에 있는 스토리지 박스보다 상단에 있는 것이 평균적으로 3도 정도 온도가 높았고 온도와 디스크 오류와는 큰 상관관계를 발견하지는 못했다고 한다. 직접 디스크를 구매하여 운영하는 장점중의 하나는 구성된 모든 파트가 3년의 워런티를 가지고 있다는 것이다. 예를 들어, 디스크가 Fail 나면 그냥 무상으로 디스크를 교체받기 때문에 3년동안 이런 비용은 크게 작용한다. 스토리지 리셀러의 경우는 지원 비용 같은게 있기 때문에 운영비용은 더 높아질 수 있다고 볼 수 있다.

이번 소개된 글을 보고 간접적으로 많이 배울 수 있었다. 어떻게 보면  45개 디스크 사다가 꼽아서 구성하면 되는거 아니냐고 쉽게 이야기하는 사람도 있을 것이다. 또는, 상업용 서비스로 사용하기에 RAID 6 로는 부족하고 기타 안정적으로 운영할 수 있겠냐고 반문하는 사람도 분명 있다. 하지만, 나는 그렇게 생각하지 않는다. 이렇게 공유한 경험이 단순해 보일지 모르지만 실제 구성하기 까지 많은 시행착오를 겪었을 것이고, 이런 데이터를 통해 앞으로 스토리지를 계획하고 있는 사람들에게 충분히 큰 도움이 되는 것이라고 본다. 그리고 RAID 6 가 부족해 보일지 모르지만, 이것은 실제로 어떤 방식으로 구성하여 운영할지 모르기 때문일 것이다. 단순히 구성한 물리적인 RAID 6 구성 만이 아닌, 로지컬적인 구성을 통해 충분히 Disk Fail 을 커버할 수 있는 디자인을 하면 된다. 하둡같은 것을 통해 각 디스크를 구성해 Copy 본 3개 정도 유지하면 된다. 실제로 서비스를 운영하는 입장에서는 보통 3개정도의 복사본을 유지하고 있는 것으로 알고 있다.

이들이 공유한 것에서 무엇을 배울 수 있었고, 내가 사용하는 인프라에 어떻게 녹여들일 수 있을까를 한번 생각해 보자. 필자는 이들의 이런 Experience 공개에 대해 박수를 쳐주고 싶다.
가끔 보면, 인프라를 구성할때 용도에 맞지 않게 아주 큰 시스템을 장만하거나, 단지 업체가 제안해 주는 형태로만 디자인을 하는 경우가 많다. 운영할 대상에 따라 이것은 아주 달라진다. 최고의 효율을 내기 위해 고민해야 할 부분이 많다는 것이다. 스토리지라는 관점에서만 봐도, 어떤 RAID 구성을 할 것이며, 파일 시스템은 무엇을 쓰며, 하드웨어 RAID 구성일 경우 Striping 사이즈는 무엇이 적당하며, Read/Write 중 무엇이 더 중요한지등 다양한 요소가 있다.

그런데 많은 경우가 Default 설정을 그대로 이용한다. 당신이 프로라고 생각한다면 다시 한번 무엇이 최고의 효율을 가져다 줄 수 있는 것인지 생각해 보아야 할 것이다.

이상, 필자의 넋두리를 끝내며 아래 도표는 Storage Pod 2.0 에서 사용한 각 부품 가격이다.



[출처] Backblaze : 각 부품별 가격

[참고]
1. BackBlaze Storage Pod 2.0
http://blog.backblaze.com/2011/07/20/petabytes-on-a-budget-v2-0revealing-more-secrets/

댓글 1개: