대학교 수업 '오픈소스 소프트웨어' 강의를 들으면서 프로젝트를 하게 되었다.
우리 팀은 오픈소스인 s3fs-FUSE를 탐구하고 I/O 속도 개선을 목표로 주제를 선정하였다.
인프라에 관심있는 나에게 흥미있는 주제였고 심층적으로 탐색하고 기록하려고 한다.
s3fs-FUSE는
Amazon S3 (Simple Storage Service)에 있는 데이터를 파일 시스템으로 마운트할 수 있게 해주는 FUSE(Foreign File System in User Space) 기반의 도구다.
S3는 분산된 객체 스토리지 서비스로, 대규모 데이터를 안정적으로 저장하고 검색할 수 있도록 설계되었다.
s3fs-FUSE를 사용하면 S3에 저장된 데이터를 일반적인 파일 시스템 명령어로 다룰 수 있어 편리하다.
이를 사용하면 S3에 저장된 객체(파일)를 로컬 파일 시스템처럼 쉽게 접근할 수 있다. FUSE는 사용자 공간에서 파일 시스템을 구현할 수 있게 하는 인터페이스를 제공한다.
이해를 쉽게 하기위하여 한가지 예시를 들자면,
s3fs-FUSE와 Apple - i cloud 서비스는 비슷한 개념이라는 것이다.
서비스하는 규모에서의 차이는 있지만,
두 서비스 모두 데이터를 저장하고 관리하는 클라우드 기반의 스토리지 솔루션이다.
우리는 Github의 오픈소스인 s3fs-fuse를 사용할 것이고, 링크는 다음과 같다.
https://github.com/s3fs-fuse/s3fs-fuse
프로젝트의 목표는 느린 s3fs-fuse의 대용량 파일에서의 입출력 성능을 향상 시키는 것이다.
고려한 방안
- 최적화된 FUSE 설정 - Max-read, Max-write값 조절로 성능 변화 확인해보기
- 빠른 입출력을 위해 Unix File system의 i-node 등을 모방하여 기술 접목
- 인근 Region 설정 및 속도 최적화
- C++의 다중 스레드 및 병렬 처리 하기
하지만 한계점도 분명 존재한다.
- 대역폭 한계
- 지연시간 대기시간
- 프로토콜 한계
프로젝트 완수를 위해 앞으로의 계획은 다음과 같다.
- Github의 코드 전체 흐름 분석
- Trilio사의 Docs 분석 후 모방 할 수 있는 기술 확인
- 개발 환경 구축 [LG gram 우분투 싱글 부팅 설치 예정]
'AWS' 카테고리의 다른 글
[AWS S3] s3fs-fuse 오픈소스 분석 (0) | 2023.11.16 |
---|