다빈치 SW 공모전

'언택트 시대에 유용한 앱 혹은 서비스를 주제로한 SW 공모전으로
2020-2학기 비공학 전공 재학생 2인 이상이면 참가 가능합니다.

자세히 알아보기

캡스톤 디자인 경진대회

캡스톤 디자인 교과목 수행 결과물 또는 졸업 작품 심사
2019년 2학기, 2020년 1학기 중 한 학기 이상 캡스톤 디자인 교과목을
수강한 학생만 참가 가능합니다.

자세히 알아보기

PE연구활동 발표대회

PE연구/개발 활동을 수행하면서 얻어진 다양한 형태의 결과물
(논문형태의 결과보고서, 논문, 발명품, 작품, 콘텐츠 등)을 심사

자세히 알아보기

SW·AI 창업아이디어경진대회

SW 관련 전공 학부생 여러분!
반짝이는 SW창업 아이디어로 여러분의 미래를 바꾸십시오!

자세히 알아보기

SW·AI융합우수성과 발표회

SW융합전공 / 복수 전공 학생 여러분!
SW융합전공 / 복수전공을 이수하는 과정에서 얻어진 성과를 뽐내 주세요.

자세히 알아보기

다빈치 주니어 SW 작품대회

창의적인 아이디어와 소프트웨어를 활용한
멋진 SW 작품을 만들어 보세요!

자세히 알아보기

다빈치오픈소스 SW·AI 딥러닝 해커톤

4차 산업혁명을 견인하는 심층학습을 주제로한 SW·AI 딥러닝 해커톤으로
소프트웨어대학 재학생으로 구성된 2인 이하 팀으로 참가 가능합니다.

자세히 알아보기

코딩경진대회

소프트웨어 중심 대학으로서 중앙대학교의 소프트웨어 관련
교육 프로그램 성과를 공유합니다.

자세히 알아보기

PE연구활동 발표대회

  • 컴퓨터시스템연구실

    등록자
    조민규 (소프트웨어학부 | 4학년)
좋아요 16

작품사진

  • 참여 목적 및 참여 당시 활동 목표
  • Ceph는 Facebook, 구글 등 글로벌 기업들이 기여하였고, Intel, Dell 등의 여러 기업에서 사용하고 있는 오픈소스 스토리지 플랫폼이다. 박상오 교수님이 맡고 계시는 컴퓨터 시스템 연구실에서는 Ceph를 단순히 기업의 데이터 센터로만 사용하는 것이 아닌 전국, 전세계 단위로 확장할 수 있도록 하는 연구를 진행하고 있다. 과거에 공부했었던 포그 컴퓨팅과 분산 처리/저장에 공통점을 가지고 있다고 생각하여 관심을 가지고 PE를 통해 프로젝트에 참여하게 되었다.

     

    하지만 Ceph라는 플랫폼은 학생의 입장에서 매우 생소한 플랫폼이었기 때문에 이번 PE를 통해서는 Ceph에 대한 기본적인 공부를 하는 것을 목표로 삼았다. 먼저 Ceph의 기본적인 개념과 요구사항에 대해 알아보고 Vagrant를 통해 테스트 클러스터를 배포하는 방법을 공부한다. 이후 Ceph의 오브젝트 저장소인 Bluestore에 대해서 알아볼 것이다. 추가적으로 클러스터 구성을 위한 CRUSH 알고리즘과 Paxos 합의 알고리즘에 대해 공부할 것이다.

  • 연구 및 학습활동 결과
  • Ceph는 오픈소스로 개발되고 있는 분산 스토리지이다. 네트워크로 연결된 분산 스토리지이므로 Single Point Of Failure(SPOF) 문제가 발생하지 않으며 노드를 늘리면서 쉽게 업그레이드가 가능하다. 효율적으로 하드웨어를 선택하여 클러스터를 구성할 경우 중앙 집중형 스토리지의 업그레이드보다 비용이 더 낮게 업그레이드를 할 수 있다.

     

    효율적인 하드웨어 구성을 위해선, 개인용 SSD는 쓰기 안정성이 매우 낮은 편이라 어느정도 쓰기 안정성이 보장된 기업용 SSD를 사용하여 교체 주기를 길게 가져가는 것이 더 경제적이다. 또한 SSD로만 저장장치를 구성하는 것보다 NvME로 저널링을, SSD로 핫 데이터를, HDD로 콜드 데이터를 저장하게 된다면 더 경제적이고 효율적으로 저장소를 구성할 수 있게된다. Ceph에서는 저장장치 1TB당 1GB의 RAM, 1GHz의 CPU 클럭을 권장하고 있다. 하지만 이는 권장사항으로 OSD가 종료되는 상황 등을 위해 클러스터 관리가 필요하며 이때 추가적인 리소스가 필요한 경우가 있으므로 이를 명심해야한다.

     

    Ceph에서 데이터는 오브젝트 단위로 Placement Group(PG)에 할당된 뒤 Object Storage Device(OSD)라고 불리는 저장소에 분산되어 저장되고 이 OSD와 데이터의 mapping 정보는 Monitor라는 노드들에 의해 관리된다. 메타데이터는 추가적으로 Metadata Sever(MDS)에 저장되며 위에서 나열한 클러스터 노드들을 총체적으로 관리하는 것이 Manager 노드이다.

    이러한 구조를 Vagrant를 통해 확인해보았다. 자세한 과정은 보고서에 기록되어 있으며 첨부 파일을 통해 결과를 확인할 수 있다.

     

    Ceph는 OSD에 데이터를 저장할 때 자체 개발한 Filesystem인 Bluestore를 사용한다. 기존  POSIX 호환 파일 시스템(btrfs, ext4 등)을 사용하였을 때는 데이터가 저널링을 위해 쓰이고 저장장치에 다시 한번 쓰이는 Double Writes 문제와 User Space에서 저널링 로그가 파일 시스템에서 저널링 되는 Journaling Of Journaling 문제 등 대역폭을 감소시키는 여러 문제들이 있었다. Bluestore는 파일 시스템을 직접 구현하여 이런 문제를 해결하여 대역폭을 증가시켰고, 메타 데이터를 RocksDB를 통해 효율적으로 관리함으로써 데이터-메타데이터 일관성을 구현하고 쓰기 속도도 높였다.

  • 참여 소감 및 향후 계획
  • 학부 과정에서 다뤄보기 어려운 주제인 분산 컴퓨팅/저장소에 대해 배우고, 직접 구축해보면서 좋은 경험을 쌓은 것 같다. 기존 파일시스템의 문제와 Bluestore가 BlueFS을 통해 어떻게 해결하였는지에 대해 심도있게 다루었기 때문에 학부 과정에서 궁금했던 파일 시스템에 대해 깊이 있는 지식을 쌓을 수 있었고 계획하고 있는 대학원 과정에 도움을 줄 것이라고 생각한다.

     

    다만 약 두달의 시간 동안 큰 규모의 플랫폼을 전부 분석하고 이해하는 것은 달성하기 어려운 계획이었다. PE 기간 동안 Bluestore 이해를 위해 많은 시간을 투자하여 연구실 프로젝트의 주제인 광역망 환경에서의 분산 스토리지를 위한 연구를 깊게 진행하지 못한 점은 아쉽다. 앞으로 Ceph의 클러스터 관리를 위한 Paxos 알고리즘을 광역망 환경에서 사용할 수 있게 하는 연구를 진행할 것이다.

  • 증빙자료

좋아요 참여 16

  • 학년 별

  • 학과 별

중앙대학교 다빈치 sw tech fair 참가신청 닫기