반응형


오늘은 하둡 서버 장비를 구성할 때 디스크 RAID를 사용하는 것은 어떤지에 대해 포스팅하도록 하겠습니다.


해당 내용은 '하둡 완벽 가이드(4판)'의 내용을 정리한 것입니다.


[ 하둡(Hadoop) 장비에 RAID를 사용하는 것은 어떨까? ] 

HDFS 클러스터는 데이터노드 저장소로 RAID(Redundant Array of Independent Disks)를 사용하더라도 얻을 수 있는 이익이 거의 없다(메타데이터의 손상을 막기 위해 네임노드의 디스크에 RAID를 사용하는 것은 권장한다). HDFS는 각 블록을 여러 대의 노드에 복제하는 기능을 제공하므로 RAID 장치가 지원하는 중복성(redundancy)은 필요하지 않다.


더욱이 성능 향상을 위해 흔히 사용하는 RAID 스트라이핑(RAID 0) 방식은 HDFS 블록을 모든 디스크에 라운드 로빈(round-robin, 순차 순환) 방식으로 배열하는 HDFS의 JBOD(Just a Bunch Of Disks) 방식보다 더 느리다는 것이 밝혀졌다. 'RAID 0'의  읽기와 쓰기 동작은 RAID 배열의 가장 느린 디스크 속도에 의해 제한받기 때문이다. 반면 JBOD는 각 디스크가 독립적으로 동작하므로 디스크 동작의 평균 속도는 가장 느린 디스크보다 빠르다. 실제 환경에서 디스크의 성능은 같은 기종이라도 종종 큰 편차를 보인다. 야후 클러스터에서 수행한 벤치마크에서 JBOD는 'RAID 0'보다 Gridmix에서는 10%, HDFS 쓰기에서는 30% 정도 빨랐다.


마지막으로, 만약 JBOD 환경에서 디스크 하나가 고장나면 HDFS는 고장난 디스크 없이도 계속 동작할 수 있지만, RAID는 하나의 디스크 고장이 전체 디스크 배열을 불능 상태로 만들 수 있다. 

----------------------------------------------------------------------------------------------------


하둡 장비에서 RAID를 굳이 사용할 필요가 없다고 생각했지만(하둡 내부에서 replication factor를 보통은 3으로 설정 유지하기 때문) RAID 스트라이핑 방식도 더 성능이 안좋다는 것을 인지하게 되었다. 네임노드 서버의 디스크에만 RAID를 구성하면 될 것 같다.


오늘 포스팅도 끝~!!!

반응형

+ Recent posts