NFS 마운트 볼륨에서 열린 파일의 링크를 해제 할 수 있습니까?


9

NFS에서 로컬 파일 시스템으로 할 수있는 것처럼 열린 파일을 링크 해제 / 삭제할 수 있습니까?

내가 묻는 이유는 여러 서버에서 실행되고 NFS에 백엔드로 액세스 할 수있는 것을 개발하고 있기 때문입니다. 열려있는 파일에서 연결을 해제 할 수 있다면 다소 단순화합니다.

이것은 열려있는 파일을 링크 해제 할 수있는 Linux (unix?) 파일 시스템의 유용한 기능입니다. 단순히 디렉토리 항목을 제거합니다. 파일은 파일이 열려있는 동안 계속 열어 둘 수 있습니다. 일단 닫히면 inode가 파괴됩니다.

NFS 마운트에서 열린 파일에 대해서도 동일한 기능이 적용됩니까?


당신은 언뜻보기에 당신이 NFS를 사용하여 파일을 삭제할 수 있는지 묻고있는 것처럼 보입니다 (투표를 방지하기 위해). 있다. :-)
Red Tux

답변:


9

짧은 대답은 입니다.

NFSv3는 상태 비 저장이므로 NFS 클라이언트 드라이버는 "silly rename"이라는 이름으로이를 수행합니다. 여기서 삭제 된 파일의 이름은 .nfsXXXXXXXXXX와 같은 이름으로 바뀝니다. 이것은 일반적으로 작동하지만 로컬 파일 시스템과 비교할 때 몇 가지주의 사항이 있습니다. 예를 들어, 클라이언트가 충돌하면 해당 .nfsXXXX 파일은 삭제되지 않으므로 수동으로 정리해야합니다.

NFSv4.1부터 프로토콜에 바보 같은 이름을 바꾸지 않고 마지막에 삭제를 구현하는 데 필요한 기능이 있다고 생각하지만 클라이언트 / 서버가 아직 이것을 구현하고 있는지 여부는 알 수 없습니다.


NFS는 상태 비 저장이므로 파일을 연결 해제하는 동일한 클라이언트에서 파일을 열 때만 작동합니다.
Quentin Casasnovas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.