Btrfs 파일 시스템이 성능 향상을 목표로 대용량 데이터 폴리오에 대한 실험적 지원을 도입하고 있습니다. 이 개발은 David Sterba의 'for-next' 브랜치의 일환으로, btrfs_end_repair_bio() 함수에서 폴리오 크기에 대한 ASSERT() 제거와 최대 폴리오 순서를 설정하는 헬퍼 추가와 같은 중요한 변경 사항을 포함하고 있습니다. 현재 시스템은 비트맵 콘텐츠를 가져오는 방식 때문에 각 비트맵에 대해 BITS_PER_LONG 블록만 지원할 수 있습니다.
하지만 이 새로운 기능에는 제한 사항이 있습니다. 대용량 폴리오는 데이터 이동 인오드에 대해 지원되지 않으며, 이동 코드가 여전히 페이지 크기 폴리오를 요구합니다. 이 제한은 데이터 이동이 일반적인 버퍼링된 I/O에 비해 흔하지 않은 작업이기 때문에 성능에 큰 영향을 미치지 않을 것으로 예상됩니다. 이 실험적 기능은 CONFIG_BTRFS_EXPERIMENTAL이 활성화되어야 하며, 모든 폴리오 관련 작업이 블록 크기보다 큰 폴리오를 처리할 때 btrfs_subpage 구조를 확인해야 합니다.
물리적 머신에서의 성능 테스트는 현재 제공되지 않지만, 구현이 XFS 및 EXT4와 같은 다른 파일 시스템에서 관찰된 성능 향상과 유사하게 실제 시나리오에서 한 자릿수 퍼센트의 개선을 가져올 것으로 예상됩니다. 대용량 데이터 폴리오 지원 테스트가 진행됨에 따라 추가 최적화가 기대됩니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.