티스토리 뷰

스토리지 & 파일시스템

glusterfs & SSD 최적화

초보의 CHOMAN 2018.08.30 13:51


glusterfs (SSD 최적화)




이미지 출처 및 원문



SSD 환경 아래에서 GlusterFS 성능 최적화 2016년 (논문)

http://www.dbpia.co.kr/Journal/ArticleDetail/NODE06599145

김덕상, 엄현상, 엄현영

 





이슈



HARD DISK 기반으로 설계, SSD 성능 100% 활용 여부


SSD : I/O-cache, Read-ahead, Write-behind Translator 






방법론?



hot data : ssd 에 저장

cold data : harddisk 저장






glusterfs



메타 서버 없음 (메타 데이터 요청시 병목현상 발생하지 않음), DHT (Distributed Hash Table) 이용


brick 저장소의 기본 단위

 





* 일반적으로 FUSE (Filesystem in Userspace) 를 이용하여 마운트




하드디스크를 위한 기능



I/O cache

캐시의 페이지 크기만큼 블록을 읽어오며, glusterfs 의 기본 페이지 사이즈는 128KB

4KB, 64KB 등의 작은 블록 사이즈로 I/O 를 하여도 128KB씩 데이터를 읽음

순차 I/O 에서는 큰 문제가 없지만 랜덤 I/O 의 경우 불필요한 데이터를 읽어오기 때문에 성능 저하의 원인

데이터 크기가 작으면 작을수록 불필요한 데이터를 더 많이 가져와 성능 하락의 영향


Read-ahead

I/O 시 여러페이지를 미리 읽어오는 기능


Write-behind 

128KB 단위로 배치하고 쓰기를 처리 하는 기능

 





하드디스크



순차적으로 읽을때 유리 (물리적인 seek time 이 있으므로 랜덤 I/O 보다 순차 I/O 에서 월등한 성능 보여줌)

SSD : 랜덤 I/O 성능과 순차적인 I/O 성능이 하드디스크에 비해 차이남

 






glusterfs 클라이언트의 I/O 요청은 epoll 이라는 폴링하는 쓰레드의 해서 처리



1. I/O 정보 가져옴

2. RPC (remote Procedure Call) 를 통해 동기적으로 서버에 I/O 작업

 


* 클라이언트가 낼수 있는 최대 성능은 이 쓰레드에 의해 결정





FUSE를 통해 glusterfs 마운트시 epoll 쓰레드는 1개 생성


여러개의 클라이언트가 I/O 요청을 보내야 SSD 여러 채널들에 I/O 전송이 됨

 






SSD 환경에서 glusterfs 최적화



I/O-cache, Read-ahead, Write-behind 기능 제거 -> I/O 를 처리하기 위한 Translator 과정이 단순화



 -> 4KB, 64KB 등의 작은 랜덤 I/O 에서 성능 향상




* 멀티 쓰레드 epoll (3.7 부터 추가)

'스토리지 & 파일시스템' 카테고리의 다른 글

pNFS(Parallel Network File System)  (0) 2018.09.04
분산파일 시스템 종류 및 특징  (0) 2018.09.04
glusterfs & SSD 최적화  (0) 2018.08.30
순차 및 랜덤 엑세스  (0) 2018.08.30
cifs mount glusterfs  (0) 2018.08.28
nfs mount glusterfs  (0) 2018.08.27
댓글
댓글쓰기 폼