문제점 분석

예전과 달리, 이제는 NVMe 등과 같은 빠른 디바이스가 활용될 것으로 보고 scalable한 파일 시스템 연구가 필요하다. 그 동안 파일 시스템 분야의 연구는 데이터 관리의 견고성과 처리량 향상에 초점이 되었다. 추가적으로 이젠 매니코어 시대를 대비하여 파일 시스템 성능의 스케일러빌러티 문제도 다루어야 할 분야이다.

먼저 리눅스 파일 시스템 구현물의 흐름을 파악하기 위해서 70여개 파일 시스템을 비교하였다. 비교의 대상은 파일 시스템의 흐름과 locking 방식 등이다. 보다 편리하고 정확하게 비교 분석하기 위해서 분석 도구(JUXTA)를 만들어 진행한다. 이 활동을 통해 아래과 같이 130여개 이상의 버그를 발견하고 버그 패치를 리눅스 커뮤니티에 제출하였습니다.

Juxta

두번째로 리눅스 파일 시스템의 스케일러빌러티 실험을 진행하였다. Fxmark 벤치마크 슈트를 만들어 다양한 실험을 진행 한 결과, 다음과 같은 리눅스 파일 시스템의 병목원인과 해결방안을 찾았다.

Solution

또 한 가지의 교훈으로 그 동안 운영체제 설계에서는 locality와 cache hit를 고려하여 자료구조 등을 설계하였지만, 이 점들이 매니코어 시스템에서는 오히려 성능 저하의 원인이 되고 있다.

향후 계획

상기의 문제점 분석을 통하여 다음과 같은 절차와 방법으로 스케일러블 파일 시스템을 개발하고자 한다.

  • 먼저, 비휘발성 메모리를 저장시스템으로 사용하므로써 파일 시스템의 많은 기능을 제거하고 잠금 문제를 해결하는 메모리 기반 파일 시스템을 개발(메모리기반 파일 시스템 부분을 참조)
  • 두번째 방법은 새로운 스케일러블 spinlock과 block synchronization primitive를 개발하여 기존 리눅스 파일 시스템에 적용하고, 다음으로 저널링 등 순차적인 기능을 스케일러블하게 개선하는 방법으로 스케일러블 파일 시스템을 개발

결과물