F2FS가 Linux 7.4에서 선택적 멀티-그레인 타임스탬프와 기타 개선 사항을 추가
LINUX STORAGE
Linux 6.4의 F2FS는 전용 메타데이터 캐시를 도입하여, 다른 Linux 파일 시스템에서도 진행되고 있는 작업과 유사하게 페이지 크기가 블록 크기와 달라질 수 있도록 지원하는 데 도움을 줍니다. 또한 향후 더 큰 folio도 사용할 수 있는 길을 열어주었습니다.
F2FS는 이제 선택적 멀티-그레인 타임스탬프(multi-grain timestamps) 지원을 제공합니다. 멀티-그레인 타임스탬프는 성능 저하 없이 NFS 캐시 일관성(cache coherency) 향상과 같은 사용 사례를 위해 거친(coarse) 및 세밀한(fine-grained) 타임스탬프를 혼합하여 사용할 수 있게 합니다. EXT4, Btrfs, XFS 등 다른 파일 시스템들도 이미 멀티-그레인 타임스탬프를 지원합니다.
이 코드 병합을 통해 Linux 7.4에는 다양한 F2FS 버그 수정 및 기타 개선 사항들이 포함되었습니다.
"이번 라운드에서 핵심 개선 사항은 전용 메타데이터 캐시 인프라를 도입하고, 온디스크 블록 레이아웃과 지오메트리 매크로를 동적으로 파라미터화하는 데 중점을 두었습니다. 메타(meta), 노드(node), 압축 블록을 VFS 페이지 캐시에서 제거함으로써, 메타데이터에 대한 '페이지 크기 == 블록 크기'라는 가정을 없앴으며, 이는 동적 블록 레이아웃 설명과 함께 향후 대형 folio 및 페이지 != 블록 지원의 길을 닦았습니다. 또한 멀티-그레인 타임스탬프를 선택적으로 도입하고, 비동기 write_end_io 완료에 대한 bio entry-count 스로틀링을 추가했으며, sysfs를 통해 resizable_tail 기능을 노출했습니다.
이러한 기능들과 더불어, 중요한 버그 수정들은 압축, mmap 쓰기 오류(write faults), 체크포인트/종료, 파일 시스템 동결에 걸친 경합 조건(race conditions)을 해결하고, 순차적인 영역 장치(sequential zoned devices)에서 쓰기 bio 분할 및 GC 홀(GC holes)을 방지하며, SIT/NAT 비트맵, 읽기 전용 curseg 항목, 장치 별칭 지정(device aliasing)에 대한 온디스크 무결성 검사(sanity checks)를 강화했습니다. 추가적인 안정성 패치는 온라인 크기 조정(online resize), 롤-포워드 복구(roll-forward recovery), 원자적 파일 작업(atomic file operations), 할당량 처리, 더티 inode 동기화 라이블록(dirty inode syncing livelocks) 등을 다루었습니다."
이 모든 것은 Linux 7.4용 F2FS 업데이트를 통해 이루어진 일련의 점진적인 개선 사항들입니다.