ntfs-3g `big_writes` 마운트 옵션의 단점

ntfs-3g `big_writes` 마운트 옵션의 단점

man ntfs-3gbig_writes마운트 옵션을 좋은 것처럼 보이게 만드세요 .

   big_writes
          This option prevents fuse from splitting write buffers into 4K
          chunks, enabling big write buffers to be transferred from the
          application in a single step (up to some system limit, generally
          128K bytes).

나열된 단점이 없습니다. 언제 설치를 피하고 싶습니까 big_writes?

답변1

정말 좋은 질문이네요. 제가 여기에서 본 바에 따르면 아마도 단점이 없을 것입니다.

big_writes2008년 당시 ,먼저 FUSE에 추가하세요.미클로스는 이렇게 말했습니다.

2.6.26 이전에는 통합이 단일 페이지 쓰기 요청만 지원했습니다. 이론적으로 모든 회로 차단기 파일 시스템은 4k보다 큰 쓰기를 지원할 수 있어야 합니다. 이를 방지하는 API에는 아무것도 없기 때문입니다. 불행하게도 NTFS-3G에는 상위 쓰기 작업으로 인해 파일 시스템이 손상될 수 있는 알려진 상황이 있습니다. 대규모 쓰기 요청에 대한 테스트가 부족하여 오류가 발생할 수 있는 다른 파일 시스템도 있을 수 있습니다.

커널 업그레이드 시 이러한 문제를 방지하려면 기본적으로 대문자 작업을 비활성화하고 파일 시스템에서 이를 켜도록 플래그를 설정하십시오.

특정 문제는 NTFS-3G에 다음 param.h과 같이 문서화되어 있습니다.

/*
 *        Use of big write buffers
 *
 *    With small volumes, the cluster allocator may fail to allocate
 *    enough clusters when the volume is nearly full. At most a run
 *    can be allocated per bitmap chunk. So, there is a danger when the
 *    number of chunks (capacity/(32768*clsiz)) is less than the number
 *    of clusters in the biggest write buffer (131072/clsiz). Hence
 *    a safe minimal capacity is 4GB
 */

#define SAFE_CAPACITY_FOR_BIG_WRITES 0x100000000LL

현재는 big_writes를 요청하기 전에 fs 용량이 최소 4GB인지 확인하여 이 제한을 방어합니다. 그래서 안전합니다.

사실 툭셀라는열어보시는 걸 추천드려요NTFS-3G가 CPU를 많이 사용하는 경우:

해결 방법: 쓰기를 요청하는 소프트웨어가 큰 블록을 지원하는 경우 마운트 옵션 "big_writes"를 사용하면 일반적으로 CPU 사용량이 줄어듭니다.

미래

~부터libfuse 3.0.0(2016) big_writes항상 켜짐:

설치 -o big_writes옵션이 제거되었습니다. 이제는 항상 활성화되어 있습니다. 쓰기 요청의 크기를 제한하려는 파일 시스템은 이 -o max_write=<N>옵션을 사용해야 합니다.범죄

그러나 libfuse3은 완전히 새로운 세대이며 ntfs-3g는 이에 대한 빌드를 전혀 지원하지 않습니다. 실수로 새로운 1MiB 쓰기 버퍼(libfuse 3.6.0)를 ntfs-3g의 내부 미니 libfuse2로 백포트했습니다. 이를 사용하려면 여기에서 가져올 수 있습니다.

  1. https://github.com/AOSC-Dev/ntfs-3g/commit/96f6fbedaf7aad70b4a4c39d8dd4a637a63beec1
  2. https://github.com/AOSC-Dev/ntfs-3g/commit/6aa576ae2a13fb636bff65bcb2701e731d2f5a94

예, 쓰기 크기/볼륨 크기 제한을 리팩토링한 것을 기억합니다. 예, 최신 Ryzen에서도 대용량 파일 쓰기가 더 빠릅니다.

PS: ntfs-3g에 libfuse3 지원을 추가할 계획이지만 실제 마감 기한은 없습니다. Tuxera는 ​​분명히 그러한 변화에 관심이 없으며 포크에 이름을 부여하는 것은 나에게 약간 과한 일입니다.

관련 정보