Linux 7.2, Windows NFS 등을 지원하기 위해 파일 시스템 Casefolding(대소문자 구분 무시) 정보를 더 잘 전달하도록
요약
Linux 7.2 커널 업데이트를 통해 파일 시스템의 Casefolding(대소문자 구분 무시) 정보를 더 정확하게 전달할 수 있게 되었습니다. 이는 Windows NFS 클라이언트와의 상호 운용성을 개선하여 불필요한 요청을 줄이고 성능을 최적화합니다.
핵심 포인트
- file_kattr 플래그를 통해 로컬 파일 시스템의 대소문자 동작 보고
- Windows NFS 클라이언트의 요구 사항 충족 및 상호 운용성 강화
- nfsd, ksmbd 및 사용자 공간 서버의 효율적인 정보 전달 지원
- fat, exfat, ntfs3, xfs 등 다양한 파일 시스템 지원
Linux 7.2, Windows NFS 등을 지원하기 위해 파일 시스템 Casefolding(대소문자 구분 무시) 정보를 더 잘 전달하도록 개선

Linus Torvalds는 오늘 Linux 7.2를 위한 많은 VFS(가상 파일 시스템) 관련 풀 리퀘스트(pull requests)를 병합했습니다. 주목할 만한 VFS 자료 중 하나는 이제 NFSD, KSMBD 및 사용자 공간(user-space) 서버 등을 위해 로컬 파일 시스템의 case-folding(대소문자 구분 무시) 동작을 훌륭하게 보고할 수 있게 되었다는 점입니다. 새로운 file_kattr 플래그를 통해 이 기능을 도입하게 된 동기는 Microsoft Windows NFS 클라이언트의 요구 사항을 해결하기 위함입니다.
Christian Brauner는 Linux 7.2의 이 case-folding 작업에 대해 다음과 같이 설명했습니다:
"이 기능은 로컬 파일 시스템의 case-folding 동작을 노출하여, 파일 서버(nfsd, ksmbd 및 사용자 공간 파일 서버)가 추측하는 대신 실제 동작을 클라이언트에 보고할 수 있도록 합니다.
파일 시스템은 fileattr_get 구현 내의 새로운 file_kattr 플래그를 통해 대소문자 구분 불가(case-insensitive) 및 대소문자 보존 불가(case-nonpreserving) 동작을 보고합니다. fat, exfat, ntfs3, hfs, hfsplus, xfs, cifs, nfs, vboxsf, isofs가 연결되었으며, 명시적으로 처리되지 않은 로컬 파일 시스템은 대소문자를 구분하고 보존하는 일반적인 POSIX 동작을 기본값으로 사용합니다. nfsd는 이를 사용하여 NFSv3 PATHCONF를 통해 case folding을 보고하고, NFSv4의 FATTR4_CASE_INSENSITIVE 및 FATTR4_CASE_PRESERVING 속성을 구현하는 데 사용합니다. 이 두 속성은 비 POSIX 시스템의 클라이언트를 지원하기 위해 수십 년 동안 NFS 프로토콜의 일부였습니다. 또한 ksmbd는 FS_ATTRIBUTE_INFORMATION을 통해 이를 보고합니다. fileattr uapi를 통해 정보를 노출함으로써 사용자 공간 파일 서버까지 커버합니다."
직접적인 동기는 상호 운용성(interoperability)입니다. Windows NFS 클라이언트는 Win32 애플리케이션이 올바르게 작동하기 위해 서버가 대소문자 구분 없음(case-insensitivity)을 보고할 것을 엄격히 요구하며, 서버가 대소문자를 구분하지 않는다는 것을 아는 클라이언트는 대소문자 변형을 찾는 여러 번의 LOOKUP/READDIR 요청을 피할 수 있습니다. Linux NFS 클라이언트는 이미 수년 전 Hammerspace NFS 서버를 지원하기 위해 대소문자 구분 없는 공유(case-insensitive shares)에 대한 지원을 확장한 바 있습니다. 이때 부정적 디엔트리 캐싱(negative dentry caching)은 비활성화되어야 하며(
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기