data=journal이 있는 ext4는 CoW 파일 시스템과 어떻게 다릅니까?

data=journal이 있는 ext4는 CoW 파일 시스템과 어떻게 다릅니까?

문서를 읽어보면 새로운 데이터가 로그에 기록되기 때문에 더 이상 그 자리에서 업데이트되지 않는 것 같습니다.기술적으로CoW 파일 시스템과 동일한 "원자성"을 달성합니다.

그렇다면 data=journal을 사용하는 ext4보다 CoW 파일 시스템을 더 "원자적"으로 만들 수 있는 방법은 무엇일까요?

하나가 다른 것보다 더 많은 충돌 안전을 제공할 것이라는 이론이나 입증된 사례가 있습니까?

아니면 CoW가 더 나은 성능을 제공하는 "구현 세부 사항"으로 간주될 수 있습니까? 성능 문제로 인해 data=journal은 기본 설정이 아닙니다.

답변1

data=journal로 실행하는 것은 모든 데이터를 쓴다는 점에서 COW와 다릅니다.두 배매번 - 로그에서 트랜잭션이 커밋된 다음 파일 시스템에 체크포인트되고 로그에서 해제됩니다. COW 파일 시스템은 각 쓰기에 대해 새 블록을 할당하고, 이러한 새 블록을 쓰고, 트랜잭션을 커밋한 다음 (결국) 이전 블록을 해제합니다(모듈로 스냅샷).

기본적으로 data=journal을 저널 구조 파일 시스템 모드로 만드는 SMR 드라이브용으로 개발된 ext4 패치 시리즈가 있습니다. 여기서 저널은 매우 크고 메타데이터와 데이터 페이지는 RAM에 고정되지 않습니다. 로그의 블록은 파일 시스템이 로그에서 "가득 차서" 로그가 오래된 트랜잭션을 검사해야 할 때까지 파일 시스템에서 검사되지 않고 오랫동안 그곳에 존재할 수 있습니다. 이로 인해 블록이 결국 파일 시스템에 기록되거나 새 트랜잭션에 다시 기록됩니다.

이 SMR 패치 시리즈는 다음에서 제공됩니다.

https://github.com/tytso/ext4-patch-queue/blob/master/series

관련 정보