Btrfs 파일 시스템에서 No_COW 파일 속성을 가진 파일은 데이터 체크섬을 유지합니까?

Btrfs 파일 시스템에서 No_COW 파일 속성을 가진 파일은 데이터 체크섬을 유지합니까?

추가 마운트 옵션을 호출하지 않는다고 가정합니다.노다타 소그리고노드 데이터 세트. 아래 시간에만 운행합니다파일 속성lsattr레벨은 / 에 의해 제어됩니다 chattr.

  1. 설정 여부아니요_COW파일에 (chattr +C)은 데이터 체크섬을 비활성화한다는 의미입니까? 마운트 옵션(노다타 소힌트노드 데이터 세트).
  2. 새로 작성된 범위에 대해서만 체크섬을 비활성화하고 기존 범위를 계속 읽을 수 있습니까?

답변1

1. 네, 설정했어요아니요_COW존재하다비어 있는파일은 실제로 데이터 체크섬을 비활성화하기 위한 것입니다.

이는 데이터와 체크섬을 자동으로 업데이트할 수 없기 때문입니다. 쓰기 프로세스 중 특정 시점에 일관성이 없어야 하기 때문입니다. 이것은 나쁜 것으로 간주됩니다.

환경아니요_COW존재하다비어 있지 않음현재 파일을 생성할 수 없습니다(#2 참조).

결론은 파일별로 CoW를 비활성화하면 해당 파일의 체크섬 정확성도 상실된다는 것입니다. 이것은 Btrfs의 새로운 사용자에게는 분명하지 않으며 다음 항목에 추가되어야 한다고 생각합니다.Btrfs 위키.

2. 아니요,아니요_COW에서는 설정할 수 없습니다.비어 있지 않음파일이므로 chattr +C범위의 체크섬이 트리거될 수 없습니다.

범위가 없는 파일에만 +C를 효과적으로 설정할 수 있습니다.

따라서 정의에 따라 파일에는 기존 체크섬 범위가 없습니다.


이 답변은 다음 내용의 요약을 기반으로 합니다.Btrfs 메일링 리스트 토론.

관련 정보