전원이 끊어지는 경우 디스크의 데이터를 매우 자주 업데이트해야하는 프로젝트가 있습니다. 동일한 길이의 데이터가있는 파일에서 정확히 512b (내 섹터 1 섹터)를 덮어 쓰면 파일 시스템이 변경된 섹터를 표시하고 플러시 할 준비가되면 디스크에서 디스크를 업데이트합니다. 또는 변경 사항이 플러시 될 때마다 전체 파일을 씁니까? 나는 주로 ext4에 관심이 있지만 모든 파일 시스템에서 동일하다면 궁금하다.파일 시스템 : 동일한 길이의 데이터 덮어 쓰기
표준이 변경 사항을 추적하지 않지만 전체 파일을 덮어 쓰려면이 방법을 변경하는 방법이 있습니까? 쓰기 옵션이 있습니까?
1MB 파일에서 512b 섹터 중 300b를 썼다면 여전히 하나의 섹터 만 덮어 쓰게됩니까? 덮어 쓸 섹터를 지우기 전에 다른 212b에 대한 읽기만 수행합니까? – Shenanigans
직접 I/O를 사용하는 경우 직접 I/O 읽기를 수행 한 후 직접 I/O 쓰기를 수행해야하며 직접 I/O 작업은 직접 I/O 규칙을 따라야합니다. 512 정렬 된 읽기를 수행하고 300 바이트를 수정 한 다음 직접 I/O 규칙을 따르는 직접 I/O 쓰기를 수행합니다. 따라서 버퍼가 512 바이트 경계에 정렬되어야하고 쓰기가 512 바이트 정렬이어야하며 길이는 512 바이트의 배수 여야합니다. –
버퍼링 된 쓰기를 수행하면 페이지 캐시를 통과하게되며 이는 4k 읽기/수정/쓰기주기를 의미합니다. –