희소 파일 지원 루프 장치에 대해 직접 I/O를 활성화하는 것이 안전합니까?

희소 파일 지원 루프 장치에 대해 직접 I/O를 활성화하는 것이 안전합니까?

스파스 파일을 가져와서 파일 시스템으로 마운트하고 싶습니다. 성능 오버헤드가 무시할 정도라면 좋겠지만, 이로 인해 데이터 손실 위험이 발생하지 않는 경우에만 가능합니다! 직접 I/O 루프 장치를 사용하여 스파스 파일을 마운트하는 것이 안전합니까?

한편으로는,LWN에 대한 이번 발표사용자가 파일 지원 루프 장치에서 직접 I/O를 활성화하도록 권장되는 것 같습니다. 정말 좋은 일입니다!

반면에,직접 I/O에 관한 ext4 wiki 기사상태:

...예를 들어 쓰기가 파일 크기를 확장하거나 쓰기 시스템 호출이 이전에 블록이 할당되지 않은 희소 파일에 "구멍"을 쓰는 등 O_DIRECT 쓰기에 블록 할당이 필요한 경우 어떻게 되나요? . 일부 Linux 구현에서는 데이터가 페이지 캐시를 통과하도록 버퍼링된 I/O로 대체됩니다. 현재 구현에서는 I/O가 실행될 때까지 기다립니다(물론 저장 장치에서 안정적인 저장소에 데이터를 기록하는 데 반드시 장벽이 있는 것은 아닙니다). 그러나 Linux는 블록 할당과 관련된 메타데이터가 파일 시스템에 커밋될 때까지 기다리지 않습니다. 따라서 할당이 작성된 후 시스템이 충돌하는 경우 시스템 이후에 애플리케이션이 데이터에 액세스할 수 있다는 보장이 없습니다. 다시 시작되었습니다...

관련 정보