FUSE 메타데이터 캐싱으로 인해 `bindfs --mirror=user1:user2:...`가 손상되었습니까?

FUSE 메타데이터 캐싱으로 인해 `bindfs --mirror=user1:user2:...`가 손상되었습니까?

https://bindfs.org/docs/bindfs.1.html

-m, --mirror=user1:user2:..., -o mirror=...

자신을 모든 파일의 소유자라고 생각하는 사용자의 쉼표 또는 콜론으로 구분된 목록입니다. 여기에 나열되지 않은 사용자는 권한이 허용하는 경우 계속해서 마운트에 액세스할 수 있습니다.

그룹의 모든 구성원을 미러링하기 위해 "@" 접두사가 붙은 그룹 이름을 제공할 수도 있습니다. 파일이 표시되는 그룹은 변경되지 않습니다.

이것이 파일 메타데이터의 Linux 커널 캐시(VFS inode 캐시)에서 어떻게 작동하는지 의심스럽습니다...

운이 나쁘면 '잘못된' 주인을 만날 수도 있나요? 아니면 bindfsVFS inode 캐시가 모든 사용자 공간 액세스에 대해 inode 소유권 세부 정보를 다시 가져오도록 강제하는 Linux 커널 FUSE 구현의 일부 기능을 사용하는 것이 적절 합니까 ?

FUSE 커널은 기본적으로 3초마다 사용자 공간 FUSE 프로세스의 inode 속성을 새로 고칩니다. 이는 퓨즈.conf 파일의 퓨즈.attr.timeout 매개변수를 통해 조정할 수 있습니다. 퓨즈.attr.timeout 매개변수는 inode 속성이 커널에서 새로 고쳐지는 시간 간격을 지정하고 캐시를 플러시하는 데 필요한 시간을 최소화하는 데 사용할 수 있습니다.

https://maprdocs.mapr.com/home/AdministratorGuide/MapRfusePOSIXClient-TuneCache.html

attr_timeout=T

파일/디렉터리 속성 캐싱에 대한 시간 초과(초)입니다. 기본값은 1.0초입니다.

http://man7.org/linux/man-pages/man8/mount.fuse.8.html

답변1

binfs가 이를 처리합니다.

https://github.com/mpartel/bindfs/blob/1.13.9/src/bindfs.c#L2248

/* We need to disable the attribute cache whenever two users
   can see different attributes. For now, only mirroring can do that. */
if (is_mirroring_enabled()) {
    fuse_opt_add_arg(&args, "-oattr_timeout=0");
}

attr_timeout이것이 커널 inode 캐시의 동작으로 정확히 어떻게 변환되는지 잘 모르겠습니다 . 그러나 비슷한 질문이 파일 서버에서 변경되는 경우 inode 세부 정보를 다시 검증할 수 있기를 원하는 모든 네트워크 파일 시스템에 적용된다고 생각합니다.

관련 정보