70 likes | 380 Views
Log-Structured File Systems. Flash Memory 2006. 2. Background. 기존 파일 시스템의 두 가지 문제점 read-write 의 head 와 디스크 rotation 의 movement 가 필요 long seek and rotational delays crash 후 메타데이터의 inconsistent 할 수 있는 위험 lazy-write file system, careful-write file system(Soft update)
E N D
Log-Structured File Systems Flash Memory 2006. 2
Background • 기존 파일 시스템의 두 가지 문제점 • read-write의 head와 디스크 rotation의 movement가 필요 • long seek and rotational delays • crash 후 메타데이터의 inconsistent할 수 있는 위험 • lazy-write file system, careful-write file system(Soft update) • Soft update는 수정된 메타데이터 블록을 캐쉬함 • journaling file system과 유사함 • Sun Solaris systems • Journaling file system • 메타데이터의 수정은 블록을 수정하기 전에 journal(or log)에 씀 • NTFS on Windows, JFS on AIX and Linux, XFS on IRIX and Linux, ext3 and reiserfs on Linux, HFS+ on MacOS
Log-Structured File System • LFS의 특징 • Journaling approach • 디스크는 로그(log)로 구성됨 • 로그는 linked-list로 연결된 디스크의 연속적인 구역의 fixed-sized segment로 이루어 짐 • 데이터와 메타데이터는 append-only로 로그 끝에 쓰여짐 • append-only의 두 가지 문제점 • how do you find the newly-written data? • 데이터의 포인터(logical inode)를 변경 • how do you reclaim disk space occupied by obsolete data? • cleaner process • 많은 obsolete 데이터를 가진 segment를 찾음 • 로그의 끝으로 valid 데이터를 복사 • segment 삭제, 로그의 끝에 추가
Log-Structured File System (Cont.) • Advantage • 좋은 write performance • append-only로 seek and rotational delays가 발생하지 않음 • Disadvantage • slow read performance • 파일의 블록이 디스크에 scatter 되기 때문에 느림 • cleaner process로 인해 system의 성능을 저하 • 많은 양의 valid data를 가진 segment를 clean할 때 overhead 발생 • 이런 이유로, LFS는 디스크에 잘 사용되지 않음 • but, flash memory에는 적합함
LFS on Flash Memory • Flash Memory의 특징 • in-place에 overwrite할 수 없음 • uniform-access-time random access • 따라서, LFS는 flash-specific file system으로 적당함 • Kawaguchi et al.[1995] • Kim and Lee[2002] : cleaning, allocation and clustering policies of LFS on flash memory • infrequently modified file을 찾는 정책 • fragmentation을 측정하는 정책 • collection 주기와 범위(size)를 선택하는 정책 • wear-leveling의 진보를 위한 clustering 정책 • collection 중 cold data에 대해서는 the most worn-out free unit 할당 • 일반적인 데이터 update에 대해서는 the least worn-out free unit 할당